是否存在Windows可执行文件(使用Visual Studio以C ++编写)可以包含其完整调试符号的情况?或者仅包含在其.pdb文件中的完整调试符号集?
有没有办法配置构建Windows应用程序,以便我们可以调试它而不需要.pdb文件?
答案 0 :(得分:1)
来自the documentation for your toolchain:
编译器的C7兼容(/ Z7)选项使编译器将调试信息保留在.obj文件中。您还可以使用程序数据库(/ Zi)编译器选项将调试信息存储在.obj文件的PDB中。链接器首先在.obj文件中写入的绝对路径中查找对象的PDB,然后在包含.obj文件的目录中查找。您无法为链接器指定对象的PDB文件名或位置。
无法创建包含调试信息的.exe或.dll。调试信息始终放在.obj或.pdb文件中。
这并不排除其他工具放置在EXE文件的一部分中的调试信息......但Microsoft Visual Studio的C ++工具从未这样做。
有关将调试信息放入OBJ文件(可能包含在LIB静态库中)而不是PDB的信息,请阅读the documentation on the compiler option for Debug Information Format