2017-08-17 6 views
0

Existe-t-il des cas où un exécutable Windows (écrit en C++ avec Visual Studio) peut contenir ses symboles de débogage complets? Ou l'ensemble complet des symboles de débogage est-il contenu uniquement dans son fichier .pdb?Exécutables Windows avec symboles de débogage intégrés complets?

Existe-t-il un moyen de configurer une application Windows pour pouvoir la déboguer sans avoir le fichier .pdb?

+0

Comment vous configurez la construction d'une application Windows depends, assez sans surprise, sur vos outils de construction. Utilisez-vous des compilateurs Microsoft C++ et 'link.exe'? Compilateurs .NET tels que 'csc.exe'? Classique VB? Fortran? Delphes? Compilateurs C++ d'un autre fournisseur (par exemple Intel ou GCC ou clang)? Il n'y a pas d'option magique reconnue par chaque chaîne d'outils. –

+0

J'ai clarifié comment l'application est écrite. – djcouchycouch

+0

Je suppose que vous avez déjà lu https://docs.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-debug-information-format? –

Répondre

1

De the documentation for your toolchain: Option

C7 de Le compilateur compatible (/ Z7) provoque le compilateur de laisser les informations de débogage dans les fichiers OBJ. Vous pouvez également utiliser l'option du compilateur Program Database (/ Zi) pour stocker les informations de débogage dans un PDB pour le fichier .obj. L'éditeur de liens recherche d'abord le PDB de l'objet dans le chemin absolu écrit dans le fichier .obj, puis dans le répertoire contenant le fichier .obj. Vous ne pouvez pas spécifier le nom ou l'emplacement du fichier PDB d'un objet dans l'éditeur de liens.

Il n'est pas possible de créer un fichier .exe ou .dll contenant des informations de débogage. Les informations de débogage sont toujours placées dans un fichier .obj ou .pdb.

Cela ne règle pas les informations de débogage placé dans une section d'un fichier EXE par d'autres outils ... mais Microsoft de Visual Studio de C++ outils jamais.

Pour plus d'informations sur le placement des informations de débogage dans les fichiers OBJ (éventuellement contenu dans les bibliothèques statiques LIB) au lieu d'un APB, lisez the documentation on the compiler option for Debug Information Format