.lib(静态库)是否需要.pdbs?还是dll / exe pdbs足够?

时间:2019-01-23 14:07:54

标签: windows visual-studio

我大概知道,当从.exe静态链接到.lib时,代码会放在.exe中(当然缺少一些细节)。

但是当从WinDbg之类的东西获取堆栈跟踪信息时,我是否需要同时为exe和lib提供一个pdb,还是将exe的pdb包含来自lib的pdb的信息(以相同的方式) exe包含lib)?

我问是因为在使用MSVC进行调试构建(使用CMake)中,我为.libs,.ddls,.exes获取了pdbs,但是在发行版中,我只能为.dlls和.exes获得pdbs

1 个答案:

答案 0 :(得分:0)

检查this答案。有编译选项。

  

如果使用/ ZI或/ Zi(C / C ++->常规->调试信息格式),则将创建vc $(PlatformToolsetVersion).pdb,其中包含所有已创建的.obj文件的调试信息。 。如果交替使用/ Z7,则调试信息将嵌入到.obj文件中,然后嵌入到.lib中。这可能是分发静态库调试信息的最简单方法。