如果我在方法上设置断点,当在 Visual Studio 2008 中命中断点时,如何查看调用该方法的方法?
6 回答
检查调用堆栈窗口(从菜单:调试 > Windows > 调用堆栈)。双击那里的每个条目将带您进入调用语句。您还可以右键单击它以启用/禁用显示外部代码项和来自其他线程的调用。
如果您在用户设置的断点处看不到调用堆栈中的任何内容,则通常意味着它是从本机代码调用的。
另一种无法获取堆栈的情况:您点击 Debug>Break All 并且主线程处于等待/睡眠状态,调试器在构建调用堆栈时可能会遇到问题。我相信调试器使用主线程进行隐式函数评估。
尝试附加(或启动)混合模式(本机和托管)代码调试器,看看是否可以解决问题。
当断点被命中时,您可以查看整个调用堆栈。您可以通过调试菜单->Windows->调用堆栈来打开该窗口。
您也可以通过快捷键 Alt+Ctrl+C 来调出它
编辑:您还可以右键单击函数名称,并查看“调用者图表”,它将显示您方法的所有调用者。或者,您可以带上调用浏览器(通过转到 View->Other windows->Call Browser )并搜索您的方法名称。
如果您在“调用堆栈”窗口中看不到任何内容,则肯定有问题。我建议著名的 R 动作序列:
- 重试
- 重新编译
- 重新开始
- 重新安装:)
如果断点位于由事件引发的函数中,则您可能没有直接返回调用者的调用堆栈,并且需要启用查看所有代码,而不仅仅是“仅我的代码”。
对于 Visual Studio 2019 打开View菜单并选择Call Hierarchy,或者直接按CTRL+ALT+K