检查挂起的程序
您可以通过分析帧来检查挂起应用程序的状态。
当代码在调试模式下运行时,有两种方式可以挂起它:
在您想要检查的代码中 设置断点 ,并等待其中一个断点被触发。
使用 Ctrl+D, P 中断程序执行。 调试器将在您暂停时完成当前正在执行的语句,然后停在下一个要执行的语句上。
在挂起状态下, 当前执行点 (即下一条将被执行的语句)会在编辑器左侧边栏中用黄色执行指针
标记出来。 要快速找到当前执行点,请按 Alt+F10 或单击 显示执行点 调试窗口。
什么是帧?
为了调用一个函数,CLR 会生成调用数据并将其放入调用栈中。 这块数据被称为 栈帧 (或简称为 帧 ),包括函数位置、调用参数、局部变量等。
探索帧
在调试时,当前调用栈中的所有帧都会显示在 线程与变量 窗格的 调试窗口 中,您可以选择任意帧并查看其数据。

当选择一个帧时,与该帧的方法调用相关的所有变量和参数都会显示在右侧,您可以进一步探索它们。
如果调用栈中包含来自库代码的帧,您可能希望隐藏这些帧,专注于源代码中的帧。 为此,请右键单击帧列表中的任意位置,然后选择 显示/隐藏库框架。
当 调试窗口 打开时,您可以通过按 Ctrl+Alt+Down 和 Ctrl+Alt+Up 切换到下一个或上一个帧。
自定义帧的显示(固定到帧)
默认情况下,栈帧以被调用函数及其程序集的名称列出。
为了为帧的显示添加一些有意义的内容(例如区分递归调用函数的帧),您可以使用调用参数的值或函数上下文中可访问的任何对象。
以下简短视频展示了如何将参数固定到递归调用函数的帧中:
最后修改日期: 2025年 9月 26日