26

如果我在方法上设置断点,当在 Visual Studio 2008 中命中断点时,如何查看调用该方法的方法?

4

6 回答 6

50

检查调用堆栈窗口(从菜单:调试 > Windows > 调用堆栈)。双击那里的每个条目将带您进入调用语句。您还可以右键单击它以启用/禁用显示外部代码项和来自其他线程的调用。

于 2009-08-05T21:22:16.870 回答
4

如果您在用户设置的断点处看不到调用堆栈中的任何内容,则通常意味着它是从本机代码调用的。

另一种无法获取堆栈的情况:您点击 Debug>Break All 并且主线程处于等待/睡眠状态,调试器在构建调用堆栈时可能会遇到问题。我相信调试器使用主线程进行隐式函数评估。

尝试附加(或启动)混合模式(本机和托管)代码调试器,看看是否可以解决问题。

于 2009-08-05T21:47:18.910 回答
4

当断点被命中时,您可以查看整个调用堆栈。您可以通过调试菜单->Windows->调用堆栈来打开该窗口。

您也可以通过快捷键 Alt+Ctrl+C 来调出它

编辑:您还可以右键单击函数名称,并查看“调用者图表”,它将显示您方法的所有调用者。或者,您可以带上调用浏览器(通过转到 View->Other windows->Call Browser )并搜索您的方法名称。

于 2009-08-05T21:25:18.987 回答
1

如果您在“调用堆栈”窗口中看不到任何内容,则肯定有问题。我建议著名的 R 动作序列:

  • 重试
  • 重新编译
  • 重新开始
  • 重新安装:)
于 2009-08-05T21:34:03.540 回答
1

如果断点位于由事件引发的函数中,则您可能没有直接返回调用者的调用堆栈,并且需要启用查看所有代码,而不仅仅是“仅我的代码”。

于 2009-08-05T21:53:33.577 回答
0

对于 Visual Studio 2019 打开View菜单并选择Call Hierarchy,或者直接按CTRL+ALT+K

于 2020-09-09T20:05:48.197 回答