在 WinDbg 中进行源代码调试

源路径

源路径指定 C 和 C++ 源文件所在的目录。 有关在调试器中查看源代码的详细信息,请参阅 源代码

注意 如果连接到企业网络,访问源文件的最有效方法是使用源服务器。 可以使用源路径中的 srv* 字符串来使用源服务器。 有关源服务器的详细信息,请参阅 使用源服务器

若要控制 WinDbg 中的源路径,请执行以下操作之一:

打开和关闭源文件

若要直接打开或关闭源文件,请执行以下操作之一:

  • “文件”菜单中选择“打开源文件”,或按 Ctrl+O。 还可以使用工具栏上的“ 开放源文件 ”按钮 (screen shot of the open source file button.) 。

    注意 使用菜单或工具栏按钮打开源文件时,该文件的路径会自动追加到源路径。

  • “文件”菜单中选择“关闭当前窗口”。

  • 选择“源”窗口角落的 “关闭 ”按钮。

  • “文件”菜单中选择“最近打开的文件”,以打开最近在 WinDbg 中打开的四个源文件之一。

  • 输入 .open (Open Source File) 命令。

  • 输入 lsf (加载或卸载源文件) 命令。

在 WinDbg 中,“源”窗口显示已加载到调试器中的源文件。

打开源窗口

调试器加载新的源文件时会打开源窗口。 若要还原或切换到打开的“源”窗口,请转到 “窗口” 菜单,然后从菜单底部的窗口列表中选择。

以下屏幕截图显示了“源”窗口的示例。

screen shot of the source window, displaying a source file that has been loaded into the debugger.

每个源文件驻留在其自己的“源”窗口中。 每个源窗口的标题是源文件的完整路径。

使用源窗口

每个“源”窗口显示一个源文件的文本。 无法在调试器中编辑源文件。 有关更改字体和选项卡设置的详细信息,请参阅 “更改文本属性”。

每个源窗口都有一个带有其他命令的快捷菜单。 若要访问菜单,请选择并按住 (或右键单击) 标题栏,或选择显示在窗口右上角附近的图标 (screen shot of the button that displays the source window toolbar shortcut menu.) 。 以下列表描述了一些菜单命令:

  • 将指令指针设置为当前行 会将指令指针的值更改为对应于当前行的指令。 此命令等效于使用 编辑|设置“当前指令 ”命令或按 Ctrl+Shift+I。

  • 编辑此文件 将在文本编辑器中打开源文件。 编辑器由 WinDiff 编辑器注册表信息或WINDBG_INVOKE_EDITOR环境变量的值确定。 例如,请考虑以下情况下WINDBG_INVOKE_EDITOR的值。

    c:\my\path\myeditor.exe -file %f -line %l
    

    在这种情况下,Myeditor.exe将打开当前源文件的基于一个的行号。 %l 选项指示应将行号读取为基于一个,而 %f 表示应使用当前源文件。 其他替换可能性包括 %L,指示行号是从零开始的,%p 也可以指示应使用当前源文件。

  • 使用 C++ 表达式计算器评估当前选定的文本。 结果显示在 “调试器命令”窗口中。 如果所选文本包含多行,则语法错误结果。 此命令等效于使用 编辑|“计算选择 ”命令、按 Ctrl+SHIFT+V 或使用 ?? (“计算 C++ 表达式”) 命令,其中选定文本作为参数。

  • 显示所选类型的 显示所选对象的数据类型。 此显示将显示在调试器命令窗口中。 如果所选文本包含多个对象,则可能显示语法错误或其他不规则的结果。 此命令等效于使用 编辑|显示所选类型 命令或按 Ctrl+Shift+Y。

  • 打开用于选择的内存窗口 将打开一个新的停靠内存窗口,该窗口显示从所选表达式的地址开始的内存。

  • 将所选内容添加到“监视”窗口 ,将所选源令牌追加到“监视”窗口。

  • 当前行的反汇编 会导致与当前行对应的指令显示在 反汇编窗口中。 所选行在“源”窗口和“反汇编”窗口中突出显示,但此命令仅影响显示,指令指针不会更改。 如果选择此命令时关闭反汇编窗口,则会打开它。

  • 选择源语言 将显示编程语言列表。 选择用于生成源文件的编程语言,然后选择“ 确定 ”以启用当前源窗口的基本语法突出显示。 选择“无”<>可禁用当前源窗口的语法突出显示。

源窗口颜色和悬停评估

如果调试器识别源文件文件扩展名,则源窗口以颜色显示某些语法元素。 若要关闭或更改颜色,请执行以下操作:

  • 若要在单个窗口中关闭语法颜色,请打开源窗口的快捷菜单,选择 “选择源语言”,然后选择“ <无>”。

  • 若要关闭所有源窗口的语法颜色,请从“视图”菜单中选择“选项”。 然后清除“ 分析源语言 ”复选框。

  • 若要更改语法颜色,请从“视图”菜单中选择“选项”。 然后,在 “颜色” 区域中,选择语法元素,然后选择 “更改 ”按钮以更改颜色。

  • 用于突出显示的分析方法由与源文件的文件扩展名关联的编程语言确定。 若要更改与特定文件扩展名关联的编程语言,请使用“ 源语言的文件扩展名”对话框。 若要打开此对话框,请从“视图”菜单中选择“源语言文件扩展名”。

突出显示表示当前程序计数器的行。 设置断点的行也突出显示。

如果选择“源”窗口,然后使用鼠标将鼠标悬停在该窗口中的符号上,则将评估该符号。 评估与 dt (显示类型) 命令生成的评估相同。 若要停用此评估,请从“视图”菜单中选择“选项”。 然后清除 “悬停时评估 ”复选框。

其他信息

有关源调试和相关命令的详细信息,请参阅 源模式下的调试