L’éditeur de liens est une partie essentielle de la chaîne d’outils C ++ Builder – après tout, c’est la partie qui collecte la sortie du compilateur et crée votre binaire final, il est donc difficile de sous-estimer son importance! – et parce qu’il rassemble l’ensemble de l’application en même temps, il peut utiliser beaucoup de mémoire. C ++ Builder 10.4.2 n’est pas la première version dans laquelle nous avons introduit des améliorations de l’éditeur de liens: rendre l’éditeur de liens sensible aux grandes adresses , ajuster l’éditeur de liens aux applications typiques d’aujourd’hui et documenter des indicateurs utiles pour modifier le comportement de l’éditeur de liens si vous trouvez que l’éditeur de liens a du mal ton application. (Sans parler de l’ajout de fonctionnalités utiles telles que la détection de mélanges d’objets classiques et clangs lors de la liaison, ce qui vous aide à détecter un problème invisible affectant la stabilité d’exécution de votre application – c’est-à-dire utilisez-le pour vous assurer que votre application ne contient pas d’erreur courante et qu’elle est stable.)
Dans C ++ Builder 10.4.2, nous avons apporté une grande amélioration à l’éditeur de liens Win64 connu sous le nom de Split DWARF, quelque chose que nous apportons à Windows depuis le monde Unix.
Pourquoi les noms impairs?
Les fichiers objets – la forme compilée de chaque unité de compilation, c’est-à-dire chaque fichier .cpp – sont stockés dans différents formats d’objets. Sur Win64, C ++ Builder utilise ELF 64 bits, qui est normalement un format utilisé sous Linux. Il signifie Executable and Linkable Format, mais nous soupçonnons qu’il a sa véritable origine chez les fans de Tolkien – parce que le format d’informations de débogage auxiliaire, pour contenir les informations de débogage pour chaque objet, est nommé DWARF. Celui-ci est définitivement un jeu de mots (voir page 2 de ce PDF .)
Split DWARF n’est pas le résultat d’un combat de taverne D&D , ni même d’un roman de Calvino . En fait, c’est un moyen de diviser les informations de débogage afin que l’éditeur de liens n’ait pas à les gérer.
C’est le secret. Quel est le meilleur moyen de réduire la quantité de mémoire dont l’éditeur de liens a besoin lors de la liaison de votre application?
C’est presque ridiculement simple. Donner moins de lien.
Fractionnement des informations de débogage
En règle générale, lors de la création de votre application en mode débogage, ou avec des unités avec des informations de débogage activées, les informations de débogage sont contenues dans le fichier objet avec le code compilé. L’éditeur de liens lit les deux et crée le binaire final – votre EXE ou DLL – et qui, aussi, contient à la fois du code compilé et des informations de débogage. C’est la raison principale pour laquelle un EXE de débogage est tellement plus volumineux qu’une application en mode version normale.
Split DWARF traite le fichier objet et divise les informations de débogage dans son propre fichier qui se trouve côte à côte, un fichier .dwo. Un petit stub reste dans le fichier objet d’origine que le débogueur peut lire pour savoir où trouver les informations de débogage.
Pour l’activer, dans vos options de projet, allez dans Construction> Compilateur C ++> Débogage, et recherchez l’option «Utiliser DWARF divisé».
Allume ça.
Développez l’option (cliquez sur> caret) et choisissez un chemin absolu où les informations de débogage doivent aller – c’est-à-dire, créez un chemin qui n’est pas un chemin relatif, par exemple commence par c: ou d :. Cela est nécessaire pour garantir que le débogueur peut trouver les informations de débogage.
Et c’est tout. Pour plus d’informations, vous pouvez trouver notre documentation ici . Vous pouvez utiliser le nouveau débogueur Win64 (avec des fonctionnalités impressionnantes, comme l’ inspection des types STL – plus a été ajouté depuis ce blog) tout en donnant à votre éditeur de liens beaucoup moins de liens dans C ++ Builder 10.4.2!
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition