我有一个包含 C++ 可执行文件、C++ 库和 C# 库项目的解决方案。当我尝试调试可执行文件时,首先加载两个 dll 的符号文件,然后卸载:(显示一个示例)
'ur.exe' (Win32): Loaded 'C:\meinedateien\Dropbox\programme\urbs\ur\debug\ArchitectureCSLibrary.dll'.
'ur.exe' (Win32): Loaded 'C:\meinedateien\Dropbox\programme\urbs\ur\debug\ArchitectureCSLibrary.dll'.
'ur.exe' (Win32): Unloaded 'C:\meinedateien\Dropbox\programme\urbs\ur\debug\ArchitectureCSLibrary.dll'
这会阻止我调试 Dll。有什么想法可以防止 VS 卸载符号吗?我究竟做错了什么? (所有内容都是在 Debug模式下从干净编译的,并且未选中“仅调试自己的代码”选项)
最佳答案
虽然这个问题是几年前提出的,但只是想发布一个答案,以便对某人有用。
一切看起来都很棒。
pdb文件生成并复制到运行目录。 Visual Studio 模块窗口中的“符号状态”列的状态为“符号已加载”,但输出窗口中有“已加载...”和“已卸载...”字符串。因此它阻止了模块调试。
详细查看项目设置后发现“调试信息格式”设置为“无”。当把它改成诸如“Program Database (/Zi)”之类的东西然后运行这个问题就消失了,模块变成了一个可调试的模块。
关于c++ - Visual Studio 调试器正在卸载 DLL 的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530775/