WinDbg (经典) 中的源代码调试

源路径

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

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

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

打开和关闭源文件

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

  • “文件 ”菜单中选择“打开源文件 ,或按 Ctrl+O。 还可以使用“ 打开源文件 ”按钮 (WinDbg 中“开放源代码文件”按钮的屏幕截图。

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

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

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

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

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

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

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

打开源窗口

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

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

WinDbg 中“源”窗口的屏幕截图,其中显示了加载的源文件。

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

使用源窗口

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

每个“源”窗口都有一个快捷菜单,其中包含其他命令。 若要访问菜单,请选择并按住 (或右键单击) 标题栏,或选择窗口右上角附近显示的图标。 以下列表描述了一些菜单命令:

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

  • 编辑此文件 将在文本编辑器中打开源文件。 编辑器由 WinDiff 编辑器注册表信息或WINDBG_INVOKE_EDITOR环境变量的值确定。 例如,假设WINDBG_INVOKE_EDITOR的值如下所示。

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

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

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

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

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

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

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

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

源窗口颜色和悬停评估

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

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

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

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

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

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

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

另请参阅

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