WINDOWS调试工具debug的使用

2025-10-10 10:02:12

1、在移动鼠标至电脑桌面左下角处,在“开始”菜单处单击左键,将弹出"开始菜单"栏

 

WINDOWS调试工具debug的使用

2、选择"运行"选项--在弹出的运行框里输入“debug”确定后弹出debug调试窗口。

 

WINDOWS调试工具debug的使用

WINDOWS调试工具debug的使用

3、弹出debug调试窗口中,输入下列相关命令进行操作

 

1. Debug:A(汇编)   直接将 8086/8087/8088 记忆码合并到内存。

 

  该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码(注WINDOWS中debug命令会报错属正常现象)

 

  a [address]

 

  参数

 

  address

 

  指定键入汇编语言指令的位置。对 address 使用十六进制值,并键入不以“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。

 

2.Debug:C(比较)

 

比较内存的两个部分。

 

  c range address

 

  参数

 

  range

 

  指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。

 

3.Debug(转储)

 

显示一定范围内存地址的内容。

 

  d [range]

 

  参数

 

  range

 

  指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。如果不指定 range,Debug 程序将从以前 d 命令中所指定的地址范围的末尾开始显示 128 个字节的内容。

 

4.Debug:E(键入

 

将数据输入到内存中指定的地址。

 

  可以按十六进制或 ASCII 格式键入数据。以前存储在指定位置的任何数据全部丢失。

 

  e address

 

  参数

 

  address

 

  指定输入数据的第一个内存位置。

 

  list

 

5.Debug:F(填充

 

使用指定的值填充指定内存区域中的地址。

 

  可以指定十六进制或 ASCII 格式表示的数据。任何以前存储在指定位置的数据将会丢失。

 

  f range list

 

  参数

 

  range

 

  指定要填充内存区域的起始和结束地址,或起始地址和长度。

 

 list

 

  指定要输入的数据。List 可以由十六进制数或引号包括起来的字符串组成。

 

6.Debug:G(转向)

 

运行当前在内存中的程序。

 

  g [=address] [breakpoints]

 

  参数

 

  =address

 

  指定当前在内存中要开始执行的程序地址。如果不指定 address,Windows 2000 将从 CS:IP 寄存器中的当前地址开始执行程序。

 

  breakpoints

 

  指定可以设置为 g 命令的部分的 1 到 10 个临时断点。

 

7.Debug:H(十六进制)

 

对指定的两个参数执行十六进制运算。

 

  h value1 value2

 

  参数

 

  value1

 

  代表从 0 到 FFFFh 范围内的任何十六进制数字。

 

  value2

 

  代表从 0 到 FFFFh 范围内第二个十六进制数字

 

8.Debug:I(输入)

 

从指定的端口读取并显示一个字节值。

 

  i port

 

  参数

 

  port

 

  按地址指定输入端口。地址可以是 16 位的值。

 

9.Debug:L(加载)

 

将某个文件或特定磁盘扇区的内容加载到内存。

 

  要从磁盘文件加载 BX:CX 寄存器中指定的字节数内容,请使用以下语法:

 

  l [address]

 

  要略过 Windows 2000 文件系统并直接加载特定的扇区,请使用以下语法:

 

  l address drive start number

 

  参数

 

  address

 

  指定要在其中加载文件或扇区内容的内存位置。如果不指定 address,Debug 将使用 CS 寄存器中的当前地址。

 

  drive

 

  指定包含读取指定扇区的磁盘的驱动器。该值是数值型:0 = A, 1 = B, 2 = C 等。

 

  start

 

  指定要加载其内容的第一个扇区的十六进制数。

 

  number

 

  指定要加载其内容的连续扇区的十六进制数。只有要加载特定扇区的内容而不是加载 debug 命令行或最近的 Debug n(名称)命令中指定的文件时,才能使用 drive、start 和 number 参数。

 

10.Debug:M(移动)

 

将一个内存块中的内容复制到另一个内存块中。

 

  m range address

 

  参数

 

  range

 

  指定要复制内容的内存区域的起始和结束地址,或起始地址和长度。

 

  address

 

  指定要将 range 内容复制到该位置的起始地址。

 

11.Debug:N(名称)

 

指定 Debug l(加载)或 w(写入)命令的可执行文件的名称,或者指定正在调试的可执行文件的参数。

 

  n [drive:][path] filename

 

  要指定测试的可执行文件的参数,请使用以下语法:

 

  n file-parameters

 

  参数

 

  如果在没有参数的情况下使用,则 n 命令清除当前规范。

 

  [drive:][path] filename

 

  指定要测试的可执行文件的位置和名称。

 

  file-parameters

 

  为正在测试的可执行文件指定参数和开关。

 

12.Debug:O(输出)

 

将字节值发送到输出端口。

 

  o port byte-value

 

  参数

 

  port

 

  通过地址指定输出端口。端口地址可以是 16 位值。

 

  byte-value

 

  指定要指向 port 的字节值。

 

13.Debug:P(执行)

 

执行循环、重复的字符串指令、软件中断或子例程;或通过任何其他指令跟踪。

 

  p [= address] [number]

 

  参数

 

  =address

 

  指定第一个要执行指令的位置。如果不指定地址,则默认地址是在 CS:IP 寄存器中指定的当前地址。

 

  number

 

  指定在将控制返回给 Debug 之前要执行的指令数。默认值为 1。

 

14.Debug:Q(退出)

 

停止 Debug 会话,不保存当前测试的文件。

 

  当您键入 q 以后,控制返回到 Windows 2000 的命令提示符。

 

  q

 

  参数

 

  该命令不带参数。

 

 

注:是如果从CMD进入DEBUG,则才会有上面这张图,如果是从运行里直接进入DEBUG的话则没有上面这张图片

 

15.Debug:r(寄存器)

 

显示或改变一个或多个 CPU 寄存器的内容。

 

  r [register-name]

 

  参数

 

  无

 

  如果在没有参数的情况下使用,则 r 命令显示所有寄存器的内容以及寄存器存储区域中的标志。

 

  register-name

 

  指定要显示其内容的寄存器名。

 

16.Debug:s(搜索)

 

在某个地址范围搜索一个或多个字节值的模式。

 

  s range list

 

  参数

 

  range

 

  指定要搜索范围的开始和结束地址。有关 range 参数有效值的信息,请单击“相关主题”列表中的 Debug。

 

  list

 

  指定一个或多个字节值的模式,或要搜索的字符串。用空格或逗号分隔每个字节值和下一个字节值。将字符串值包括在引号中。

 

17.Debug:T(跟踪)

 

执行一条指令,并显示所有注册的内容、所有标志的状态和所执行指令的解码形式。

 

  t [=address] [number]

 

  参数

 

  =address

 

  指定 Debug 启动跟踪指令的地址。如果省略 address 参数,跟踪将从程序的 CS:IP 寄存器所指定的地址开始。  

 

number

 

  指定要跟踪的指令数。该值必须是十六进制数。默认值为 1。

 

  

 

18.Debug:U(反汇编)

 

反汇编字节并显示相应的原语句,其中包括地址和字节值。反汇编代码看起来象已汇编文件的列表。

 

  u [range]

 

  参数

 

  无

 

  如果在没有参数的情况下使用,则 u 命令分解 20h 字节(默认值),从前面 u 命令所显示地址后的第一个地址开始。

 

  range

 

  指定要反汇编代码的起始地址和结束地址,或起始地址和长度。

 

19.Debug:W(写入)

 

将文件或特定分区写入磁盘。

 

  要将在 BX:CX 寄存器中指定字节数的内容写入磁盘文件,请使用以下语法:

 

  w [address]

 

  要略过 Windows 2000 文件系统并直接写入特定的扇区,请使用以下语法:

 

  w address drive start number

 

  参数

 

  address

 

  指定要写到磁盘文件的文件或部分文件的起始内存地址。如果不指定 address,Debug 程序将从 CS:100 开始。  

 

drive

 

  指定包含目标盘的驱动器。该值是数值型:0 = A, 1 = B, 2 = C,等等。

 

  start

 

  指定要写入第一个扇区的十六进制数。

 

  number

 

  指定要写入的扇区数。

 

20.Debug:XA(分配扩展内存)

 

分配扩展内存的指定页面数。

 

  要使用扩展内存,必须安装符合 4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 的扩展内存设备驱动程序。

 

  xa [count]

 

  参数

 

  count

 

  指定要分配的扩展内存的 16KB 页数。

 

21.Debug:XD(取消分配扩展内存)

 

释放指向扩展内存的句柄。

 

  要使用扩展内存,必须安装符合 4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 的扩展内存设备驱动程序。

 

  xd [handle]

 

  参数

 

  handle

 

  指定要释放的句柄。

 

22.Debug:XM(映射扩展内存页)

 

将属于指定句柄的扩展内存逻辑页映射到扩展内存的物理页。

 

  要使用扩展内存,必须安装符合 4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 的扩展内存设备驱动程序。

 

  xm [lpage] [ppage] [handle]

 

  参数

 

  lpage

 

  指定要映射到物理页 ppage 的扩展内存的逻辑页面号。

 

  ppage

 

  指定将 lpage 映射到的物理页面号。

 

  handle

 

  指定句柄。

 

23.Debug:XS(显示扩展内存状态)

 

显示有关扩展内存状态的信息。

 

  要使用扩展内存,必须安装符合 4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 的扩展内存设备驱动程序。

 

  xs

 

  参数

 

  该命令不带参数。

 

  

 

WINDOWS调试工具debug的使用

WINDOWS调试工具debug的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢