在Visual Studio 2008中单步执行C#时如何找到方法调用者?

时间:2009-08-05 21:20:31

标签: c# .net visual-studio debugging breakpoints

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

6 个答案:

答案 0 :(得分:37)

检查“调用堆栈”窗口(调试,Windows,调用堆栈)。双击每个条目将转到调用语句。您也可以右键单击它以启用/禁用显示外部代码项和来自其他线程的调用。

答案 1 :(得分:4)

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

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

尝试附加(或启动)混合模式(本机和托管)代码调试器,看看是否将其拉直。

答案 2 :(得分:3)

当点击断点时,您可以查看整个调用堆栈。您可以通过调试菜单 - > Windows->调用堆栈来启动该窗口。

您也可以通过快捷键Alt + Ctrl + C

启动它

编辑: 您也可以右键单击一个函数名称,然后查看“Callers Graph”,它将显示您方法的所有调用者。或者,您可以使用呼叫浏览器(通过转到视图 - >其他窗口 - >呼叫浏览器)并搜索您的方法名称。

答案 3 :(得分:1)

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

  • 重试
  • 重新编译
  • 重新启动
  • 重新安装:)

答案 4 :(得分:1)

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

答案 5 :(得分:0)

对于Visual Studio 2019,打开查看菜单并选择呼叫层次结构, 或只需按 CTRL + ALT + K