在Visual Studio中,我可以将断点放在我只有调试符号的代码中吗?

seb*_*aan 17 debugging symbols breakpoints visual-studio pdb-files

由于我无法访问我正在使用的库的完整源代码,但我确实有pdb文件,是否可以在"调试源代码"中设置断点?

如果是这样,我该怎么做?

Han*_*ant 27

是的,这是可能的,您不需要源代码. Debug> New Breakpoint> Break at Function.将位置设置为函数的名称.例如:"Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly".关闭"使用智能感知"复选框,您将没有任何选项.语言是一种猜测,如果你不知道它是什么写的,如果你不确定,选择"未知".

您需要密切关注Debug + Windows + Breakpoints窗口,以验证调试器是否可以解析断点.它将无法在程序集加载并且方法获得JIT编译之后.

这当然不是最好的调试体验.一旦断点命中,您就没有任何东西可以查看,而是由JIT编译器生成的机器代码.和调用堆栈窗口,你看到方法名称btw的最终资源.

  • 有'只是我的代码'设置(再次,叹气)所以符号没有被加载.只需要加载源代码.我理解约翰罗宾斯有一个工具. (3认同)
  • VS几乎总是超出我的期望。我都需要为外部功能设置一个断点并查看CallStack,以解决一个复杂的问题。感谢您的回答。 (2认同)