我有一个混合使用Visual Studio 2010构建的C#/托管C ++ /非托管C ++的工具。代码实际上分布在.exe(我称之为mybinary.exe)和.dll(mylib.dll。 )
我在项目中为dll和exe设置了构建设置,以便在发布版本中生成PDB文件。我已经确定PDB文件都在exe和pdb所在的目录中。但是当我调试这个程序时,我仍然看不到函数的名称;我只看到地址。这是我在Very Sleepy的第一个屏幕中选择程序时在底部的小状态栏中获得的相关摘录:
DBGHELP: mybinary.vshost - public symbols
C:\Users\(me)\AppData\Local\sleepy\vshost32-clr2.pdb\(long hex string)\vshost32-clr2.pdb
...
DBGHELP: No debug info for C:\myproj\mylib.dll. Searching for dbg file
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found
SYMSRV: C:\Users\peastlund\AppData\Local\sleepy\mylib.dbg\4EF1F48B13c000\mylib.dbg not found
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found
DBGHELP: C:\myproj\mylib.dbg - file not found
DBGHELP: C:\myproj\mylib.dll missing debug info. Searching for pdb anyway
DBGHELP: mylib - public symbols
C:\myproj\mylib.pdb - unmatched
...
DBGHELP: MOD: mybinary.vshost
...
DBGHELP: mybinary - private symbols & lines
C:\myproj\mybinary.pdb
所以看起来有一个问题是将mylib.pdb与mylib.dll匹配,由于某些原因我不清楚,但我会注意到我没有得到来自mybinary.exe的函数的正确地址。我有一台全新安装的新计算机,所以这不是“某些库已经过时”的问题。
非常感谢任何人都可以提供帮助!
编辑:事实上,事实证明这并非特定于优化代码。其他分析器在优化C ++方面存在一些问题,这就是为什么我切换到Very Sleepy,但是在测试中我现在意识到使用Very Sleepy我似乎无法获得函数名称,即使我在调试模式下编译也是如此。
答案 0 :(得分:0)
确保以下内容: