我在Visual Studio中调用一个方法,并尝试通过遍历调用堆栈来调试它。
其中的一些行被标记为“外部代码”。
这到底是什么意思?来自.dll的方法已经执行了吗?
这个问题很愚蠢,但需要一个明确的答案。
发布于 2015-06-25 16:02:40
外部代码表示没有可用于该dll的调试信息。
您可以做的是在Call Stack
窗口中单击鼠标右键。然后选择Show External Code
,这将展开外部代码,并显示正在调用的模块。
一旦你得到它展开,你会看到动态链接库正在被调用,你可以通过点击Symbol Load Information...
获取磁盘上的位置
这将打开一个对话框,显示磁盘上的位置
如果您想调试这些外部文件,您需要获得dll的.pdb
文件,并将其放在与.dll
相同的文件夹中
这应该允许你Load symbols
(上面的屏幕截图2中的菜单)并开始调试。
More on getting .pdb files here.
And here's an actual example of EF .pdb being generated
希望这能节省你的时间。
发布于 2012-07-24 18:57:52
这些行不会被当前加载的调试符号引用。
此代码可以是外部DLL的一部分,也可以是CLR内的本机代码。如果您知道它是哪个模块,并且具有它们的调试符号,则可以手动将它们加载到Visual Studio中。
发布于 2012-07-24 18:58:22
您没有代码/符号的方法。例如.NET框架或第三方程序集。
https://stackoverflow.com/questions/11629340
复制相似问题