1

是否存在 Windows 可执行文件(使用 Visual Studio 用 C++ 编写)可以包含其完整调试符号的情况?还是仅包含在其 .pdb 文件中的全套调试符号?

有没有办法配置构建 Windows 应用程序,以便我们可以在没有 .pdb 文件的情况下对其进行调试?

4

1 回答 1

1

您的工具链的文档中

编译器的 C7 兼容 (/Z7) 选项导致编译器将调试信息保留在 .obj 文件中。您还可以使用程序数据库 (/Zi) 编译器选项将调试信息存储在 .obj 文件的 PDB 中。链接器首先在 .obj 文件中写入的绝对路径中查找对象的 PDB,然后在包含 .obj 文件的目录中查找。您不能为链接器指定对象的 PDB 文件名或位置。

无法创建包含调试信息的 .exe 或 .dll。调试信息始终放在 .obj 或 .pdb 文件中。

这并不排除其他工具将调试信息放入 EXE 文件的一部分……但 Microsoft Visual Studio 的 C++ 工具从不这样做。

有关将调试信息放入 OBJ 文件(可能包含在 LIB 静态库中)而不是 PDB 的信息,请阅读有关调试信息格式的编译器选项的文档

于 2017-08-17T21:48:13.510 回答