调试窗口
当您 启动调试器会话时, 调试 工具窗口会打开。 使用此窗口 控制调试器会话, 查看和分析程序数据 (帧、线程、变量等),并执行调试器操作。
默认情况下,当程序遇到断点时, 调试 工具窗口会打开,并且在会话终止时不会隐藏。 要更改此行为,请转到 生成、执行、部署 | 调试器 设置页面  Ctrl+Alt+S 并取消选中 在断点时显示调试窗口 复选框。

会话
如果您同时运行多个调试会话,它们会在 调试 工具窗口顶部的选项卡中分开。

如果您为特定的运行/调试配置 启用了服务工具窗口 ,那么当您调试这些配置时,调试工具窗口的整个视图将显示在服务工具窗口中。

编辑器中的所有信息,例如 内联变量值和执行点,都会显示在选定的会话选项卡中。 如果您并行运行多个使用相同代码的调试会话,这一点很重要。
当您关闭一个选项卡时,相应的调试会话会终止。
标签页
调试 工具窗口为每个会话显示以下选项卡:
控制台:显示程序输出。
对于本地会话,该选项卡的工作方式与在没有连接调试器的情况下运行程序时相同。
当您附加到进程时,程序输出不会被重定向,调试器控制台中只会显示调试器输出。
调试输出:显示您的应用程序发送到调试输出的消息,例如使用
Debug.WriteLine()方法。并行堆栈 :在图表上显示线程及其堆栈帧。
调试器:允许您探索挂起程序当前执行点的对象状态。
该选项卡分为以下窗格:
内存 :提供当前堆上的对象信息,用于监控其数量和生命周期。
切换选项卡
要在工具窗口选项卡中循环切换,请按 Alt+Right 和 Alt+Left。
显示/隐藏标签
点击
并选择您想要查看的选项卡。
恢复默认布局
如果您更改了 调试 工具窗口的布局,而不喜欢新的排列方式,您可以将其恢复到默认状态。
点击
,位于 调试 工具窗口的右上角,然后点击 恢复默认布局。
调试工具栏
无论选择了哪个标签页,您始终可以在窗口左侧使用以下工具栏控件:
条目 | 工具提示和快捷键 | 描述 |
|---|---|---|
重新运行 Ctrl+F5 | 点击此按钮以停止当前应用程序并再次运行。 | |
恢复程序 F9 | 当应用程序暂停时,点击此按钮以恢复程序执行。 | |
暂停程序 Ctrl+Pause | 点击此按钮以暂停程序执行。 | |
停止 Ctrl+F2 | 单击此按钮以终止当前进程。 | |
查看断点 Ctrl+Shift+F8 | 点击此按钮打开 断点 对话框,您可以在其中配置断点行为。 | |
忽略断点 | 使用此按钮切换断点状态。 您可以暂时静音项目中的所有断点,以便在不停止于断点的情况下执行程序。 | |
调试器设置 | 打开包含以下选项的菜单:
| |
固定标签页 | 点击此按钮以固定或取消固定当前选项卡。 当窗口中的标签页达到最大数量时,您可能需要将一个标签页固定,防止其自动关闭。 |
条目 | 工具提示和快捷键 | 描述 |
|---|---|---|
重新运行 Ctrl+F5 | 点击此按钮以停止当前应用程序并再次运行。 | |
恢复程序 F9 | 当应用程序暂停时,点击此按钮以恢复程序执行。 | |
暂停程序 Ctrl+Pause | 点击此按钮以暂停程序执行。 | |
停止 Ctrl+F2 | 单击此按钮以终止当前进程。 | |
查看断点 Ctrl+Shift+F8 | 点击此按钮打开 断点 对话框,您可以在其中配置断点行为。 | |
忽略断点 | 使用此按钮切换断点状态。 您可以暂时静音项目中的所有断点,以便在不停止于断点的情况下执行程序。 | |
设置 | 点击此按钮打开包含以下选项的菜单:
| |
固定标签页 | 点击此按钮以固定或取消固定当前选项卡。 当窗口中的标签页达到最大数量时,您可能需要将一个标签页固定,防止其自动关闭。 |
单步执行工具栏
条目 | 工具提示和快捷键 | 描述 |
|---|---|---|
显示执行点 Alt+F10 | 点击此按钮以突出显示编辑器中的当前执行点,并在 窗口 窗格中显示相应的堆栈帧。 | |
| 跳到光标 Ctrl+Alt+Shift+F9 | 与其运行程序直到目标语句,您可能希望跳过一部分代码而不实际执行它(例如,避免已知的错误或不重复某些例行操作)。 您可以使用 跳到光标 您还可以通过用鼠标拖动执行指针 ![]() 您还可以将鼠标悬停在目标语句上,然后选择相应的操作: ![]() 跳到另一条语句时,请记住以下几点:
|
步过 F8 | 点击此按钮以执行程序,直到当前方法或文件中的下一行,跳过当前执行点引用的方法(如果有)。 如果当前行是方法中的最后一行,执行步骤将跳转到该方法之后执行的行。 | |
强制步过 Alt+Shift+F8 | 单击此按钮,即使方法内部有断点,调试器也会跳过该方法。 | |
步入 F7 | 点击此按钮以使调试器进入当前执行点调用的方法。 调试器会将执行指针设置为当前行中调用的第一个函数的第一条语句。 如果没有调用函数,调试器将跳到下一条语句。 默认情况下,JetBrains Rider 启用 外部源调试 ,这意味着当您进入库代码时,它会被自动反编译,调试器会将执行点移动到那里。 如果您希望调试器忽略库代码,可以禁用外部源调试——在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中清除 启用外部源调试。 | |
智能步入 Shift+F7 | 如果当前行包含多个嵌套调用,JetBrains Rider 允许您选择一个调用进入。 请考虑以下代码行: Console.WriteLine(Foo(Bar("input") + Baz("input")));
该行包含多个调用,如果您使用 步入 ,调试器将首先进入 如果您希望选择要进入的调用,例如 ![]() 当您选择要单步进入的函数时,调试器会将执行指针设置为所选函数的第一条语句。 选择器还会显示哪些调用已经执行,并允许您再次执行这些调用。 当您在包含多个方法调用的行中调用 步入 F7 时,可以启用“智能单步进入”行为。 为此,请在 构建、执行、部署 | 调试器 | 单步调试 设置页面 Ctrl+Alt+S 中选择 始终使用智能步入。 | |
步出 Shift+F8 | 点击此按钮可使调试器退出当前方法,并跳至其后执行的行。 | |
运行到光标处 Alt+F9 | 点击此按钮以恢复程序执行,并在执行点到达编辑器中当前光标位置的行时暂停。 不需要断点。 实际上,在光标处为当前行设置了一个临时断点,一旦程序执行暂停,该断点就会被移除。 因此,如果文本光标位于已执行的行,程序将只是恢复执行,因为无法回滚到先前的断点。 此操作在您深入方法序列且需要一次退出多个方法时特别有用。 如果在应该执行的行上设置了断点,在到达指定行之前,调试器会在遇到的第一个断点处暂停。 您还可以将鼠标悬停在目标语句上,然后选择相应的操作: ![]() | |
不间断运行到光标处 Ctrl+Alt+F9 | 如果当前执行点和目标语句之间有断点,您可以使用 不间断运行到光标处 | |
对表达式求值 Alt+F8 | 单击此按钮以 计算表达式。 |
条目 | 工具提示和快捷键 | 描述 |
|---|---|---|
显示执行点 Alt+F10 | 点击此按钮以突出显示编辑器中的当前执行点,并在 窗口 窗格中显示相应的堆栈帧。 | |
| 跳到光标 Ctrl+Alt+Shift+F9 | 与其运行程序直到目标语句,您可能希望跳过一部分代码而不实际执行它(例如,避免已知的错误或不重复某些例行操作)。 您可以使用 跳到光标 您还可以通过鼠标拖动执行指针 ![]() 您还可以将鼠标悬停在目标语句上,然后选择相应的操作: ![]() 跳到另一条语句时,请记住以下几点:
|
步过 F8 | 点击此按钮以执行程序,直到当前方法或文件中的下一行,跳过当前执行点引用的方法(如果有)。 如果当前行是方法中的最后一行,执行步骤将跳转到该方法之后执行的行。 | |
强制步过 Alt+Shift+F8 | 单击此按钮,即使方法内部有断点,调试器也会跳过该方法。 | |
步入 F7 | 点击此按钮以使调试器进入当前执行点调用的方法。 调试器会将执行指针设置为当前行中调用的第一个函数的第一条语句。 如果没有调用函数,调试器将跳到下一条语句。 默认情况下,JetBrains Rider 启用 外部源调试 ,这意味着当您进入库代码时,它会自动被反编译,调试器会将执行点移动到那里。 如果您希望调试器忽略库代码,可以禁用外部源调试——在 JetBrains Rider 设置 的 页面 Ctrl+Alt+S 中清除 启用外部源调试。 | |
智能步入 Shift+F7 | 如果当前行包含多个嵌套调用,JetBrains Rider 允许您选择一个调用进入。 请考虑以下代码行: Console.WriteLine(Foo(Bar("input") + Baz("input")));
该行包含多个调用,如果您使用 步入 ,调试器将首先进入 如果您希望选择要进入的调用,例如 ![]() 当您选择要单步进入的函数时,调试器会将执行指针设置为所选函数的第一条语句。 选择器还会显示哪些调用已经被执行,并允许您再次执行这些调用。 当您在包含多个方法调用的行中调用 步入 F7 时,可以启用“智能单步进入”行为。 为此,请在 构建、执行、部署 | 调试器 | 单步调试 设置页面 Ctrl+Alt+S 中选择 始终使用智能步入。 | |
步出 Shift+F8 | 点击此按钮可使调试器退出当前方法,并跳至其后执行的行。 | |
运行到光标处 Alt+F9 | 点击此按钮以继续程序执行,并暂停直到执行点到达编辑器中当前光标位置的行。 不需要断点。 实际上,在光标处为当前行设置了一个临时断点,一旦程序执行暂停,该断点就会被移除。 因此,如果文本光标位于已执行的行,程序将只是恢复执行,因为无法回滚到先前的断点。 此操作在您深入方法序列且需要一次退出多个方法时特别有用。 如果在应该执行的行上设置了断点,在到达指定行之前,调试器会在遇到的第一个断点处暂停。 您还可以将鼠标悬停在目标语句上,然后选择相应的操作: ![]() | |
不间断运行到光标处 Ctrl+Alt+F9 | 如果当前执行点和目标语句之间有断点,您可以使用 不间断运行到光标处 | |
对表达式求值 Alt+F8 | 单击此按钮以 计算表达式。 |



