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

如何打开源代码窗口

  • 通过菜单File--->Open Source File打开源代码文件,窗口随之打开
  • 通过快捷键Ctrl+O
  • 通过工具栏
  • 设置源路径,调试器实时自动打开

使用源代码窗口

通过上面方式打开的窗口如下:

每个源窗口都显示一个源文件的文本。 不能在调试器中编辑源文件。 每个源窗口都具有包含附加命令的快捷菜单。 若要访问菜单,请右键单击标题栏,或单击窗口右上角附近显示的图标()。 以下列表描述了一些菜单命令:

  • Set instruction pointer to current line 会将指令指针的值更改为对应于当前行的指令。 此命令等效于使用 "编辑 |设置当前指令命令或按 CTRL + SHIFT + I.

  • Edit this file 在文本编辑器中打开源文件。编辑器由WinDiff编辑器注册表信息或WINDBG_INVOKE_editor环境变量的值确定。例如,当WINDBG_INVOKE_EDITOR的值为以下值时。
     
    c:\my\path\myeditor.exe -file %f -line %l

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

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

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

  • Open memory window for selection 打开一个新的停靠内存窗口,该窗口显示从所选表达式的地址开始的内存。.

  • Add selection to Watch window 将所选源令牌追加到监视窗口中.

  • Disassemble at current line 会导致与当前行对应的指令出现在 "反汇编"窗口中。 选定的行将在源窗口和 "反汇编" 窗口中突出显示,但此命令仅影响显示,而不会更改指令指针。 如果单击此命令时 "反汇编" 窗口关闭,则将其打开。.

  • Select source language 显示一系列编程语言。 选择用于生成源文件的编程语言,然后单击 "确定" 以为当前源窗口启用基本语法突出显示。 选择 " <NONE"> 可禁用当前源窗口的语法突出显示。

源窗口颜色和悬停计算

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

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

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

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

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

突出显示表示当前程序计数器的行。 还将突出显示断点所在的行。

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

Windbg源代码窗口的使用的更多相关文章

  1. WinDbg命令窗口的使用

    调试器命令窗口是windbg中的主要调试信息窗口.可以在此窗口中输入调试程序命令并查看命令输出.Windbg的命令窗口是我们进行调试时,主要打交道的窗口.界面如下 对于windbg,“调试器命令窗口” ...

  2. WinDbg 图形界面功能(二)

    1.2.编辑菜单 这个菜单可以提供Windbg里的各功能窗口的可选文本的编辑功能,比如源代码窗口.命令窗口等提供选择.复制.剪切和黏贴等基础编辑功能. 剪切 单击剪切上编辑菜单中,删除所选的任何文本并 ...

  3. 使用WinDbg内核调试[转]

    Technorati 标签: windbg,内核调试 WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器 ...

  4. VS调试错误:“没有可用于当前位置的源代码”的解决方案

    今天,有朋友在问为什么我在调试的时候会出现"没有可用于当前位置的源代码"的错误呢? MSDN上的说法:没有可用于当前位置的源代码,项目不包含您试图查看代码的源代码.原因通常是双击了 ...

  5. windbg Symbol file path

    SOS是一个调试器扩展,用于调试.NET应用程序.它提供了一组非常丰富的命令,这些命令使开发人员可以对CLR进行深入分析,并且有助于找出应用程序中各种复杂错误的原因.   由于SOS能够提供CLR内部 ...

  6. 使用GDB调试Go语言

    用Go语言已经有一段时间了,总结一下如何用GDB来调试它! ps:网上有很多文章都有描述,但是都不是很全面,这里将那些方法汇总一下 GDB简介  GDB是GNU开源组织发布的⼀一个强⼤大的UNIX下的 ...

  7. Dreamweaver架设网站终极教程

    转自:http://www.cnblogs.com/loveme513/archive/2006/04/03/365969.html 一.定义站点 1. 在任意一个根目录下创建好一个文件夹(我们这里假 ...

  8. 解决vs2008无法切换设计视图的问题

    在 Visual Studio 2008的编辑一个web页面的时候,“源视图”(Source View), 你可以自定义设计视图(Design View)为默认视图. 方法如下: 菜单:工具+选项+h ...

  9. GDB常用命令

    一. gdb使用流程 1.编译生成可执行文件 gcc -g hello.c -o hello 2.启动gdb gdb hello 3. 在main处设置断点 break main 4.运行程序 run ...

随机推荐

  1. golang web 方案

    概要 开发 web 框架 数据库 认证 日志 配置 静态文件服务 上传/下载 发布 docker 打包 部署中遇到的问题 时区问题 概要 轻量的基于 golang 的 web 开发实践. golang ...

  2. PS:老权限登录Action 中 WebObjManager有问题,一直登录不起问题

    .ashx后面代码要多继承一个, IRequiresSessionState接口

  3. MySQL事务未提交导致整个表锁死

    问题及说明: 当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束:报错信息如下: mysql> ERROR 1205 (HY000): Lock wait tim ...

  4. java跳出循环break;return;continue使用

    for(int i=0;i<5;i++){ if(i==2){ System.out.println("i==2时忽略了"); continue;//忽略i==2时的循环 } ...

  5. goang学习笔记---struct

    什么是结构体 结构体(struct)是用户自定义的类型,它代表若干字段的集合,可以用于描述一个实体对象,类似java中的class,是golang面向对象编程的基础类型. 如何定义一个结构体 type ...

  6. 【spring boot】【idea】100.idea新建一个spring boot项目

    1.idea新创建一个项目 2.setting进入,选择自己的Maven 3.简单补充一下pom.xml <?xml version="1.0" encoding=" ...

  7. LinkedHashMap 的核心就 2 点,搞清楚,也就掌握了

    HashMap 有一个不足之处就是在迭代元素时与插入顺序不一致.而大多数人都喜欢按顺序做某些事情,所以,LinkedHashMap 就是针对这一点对 HashMap 进行扩展,主要新增了「两种迭代方式 ...

  8. vscode 代码折叠快捷键,折叠所有/展开所有

    1.折叠所有区域的快捷键:ctrl + k   ctrl + 0 (这里是数字键0) 2.展开所有区域的快捷键:ctrl + j    ctrl + j

  9. Git远程协作和分支

    一.远程基本操作 基本的配置远程仓库有两个命令: git remote add origin git@github.com:ZXZxin/gitlearn.git : git push -u orig ...

  10. mask-rcnn解读(二):clip_boxes_graph()

    此函数是利用deltas对box修正,我并没有详细说明,若有问题,欢迎留言交流: def clip_boxes_graph(boxes, window): """ box ...