• [网络整理]DEBUG命令使用解析五


    Debug:Q(退出)

      停止 Debug 会话,不保存当前测试的文件。
      当您键入 q 以后,控制返回到 Windows 2000 的命令提示符。
      q
      参数
      该命令不带参数。
      有关保存文件的信息,请单击“相关主题”列表中的 Debug W(写入)。
      ++++

      Debug:R(寄存器)

      显示或改变一个或多个 CPU 寄存器的内容。
      r [register-name]
      参数
      无

      如果在没有参数的情况下使用,则 r 命令显示所有寄存器的内容以及寄存器存储区域中的标志。
      register-name
      指定要显示其内容的寄存器名。
      有关显示内存部分内容的信息,请单击“相关主题”列表中的 Debug D(转储)。
      有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。
      ++

      范例
      要查看所有寄存器的内容、所有标记的状态和当前位置的指令解码表,请键入以下命令:
      r
      如果当前位置是 CS:11A,显示外观将类似于以下内容:
      AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
      DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
      04BA:011A CD21 INT 21
      要只查看标志的状态,请键入以下命令:
      rf
      Debug 按以下格式显示信息:
      NV UP DI NG NZ AC PE NC - _
      现在,您可以按任意顺序键入一个或多个有效的标志值,其中可以有或没有空格,如下所示:
      nv up di ng nz ac pe nc - pleicy
      Debug 结束 r 命令并显示 Debug 提示符。要查看更改,请键入 r 或 rf 命令。Debug 将显示以下内容:
      NV UP EI PL NZ AC PE CY - _
      按 ENTER 返回到 Debug 提示符。
      ++

      说明
      使用 r 命令
      如果指定了寄存器名称,Windows 2000 将显示以十六进制标记表示的寄存器的 16 位值,并将冒号显示为提示符。如果要更改包含在寄存器中的值,除非键入新值并按 ENTER 键;否则,请按 ENTER 键返回 Debug 提示符。

      有效寄存器名
      以下是 register-name 的有效值:ax、bx、cx、dx、sp、bp、si、di、ds、es、ss、cs、ip、pc 及 f。ip 和 pc 都引用指令指针。
      如果指定寄存器名称,而不是从前面的列表中指定,Windows 2000 将显示以下消息:
      br error
      使用 f 字符而不是寄存器名
      如果键入 f 字符代替寄存器名,Debug 将每个标记的当前设置显示为两字母代码,然后显示 Debug 提示符。要更改标志的设置,请从下表中键入适当的两字母代码:
      标志名 设置 清除
      溢出 ov nv
      方向 dn(减) up(增)
      中断 ei(启用) di(禁用)
      正负 ng(负) pl(正)
      零 zr nz
      辅助进位 ac na
      奇偶校验 pe(偶校验) po(奇校验)
      进位 cy nc
      可以按任何顺序键入新的标志值。不需要在这些值之间留出空格。要停止 r 命令,请按 ENTER 键。任何没有指定新值的标志保持不变。
      用 r 命令显示的邮件
      如果为标记指定了多个值,Debug 将显示以下消息:
      df error
      如果指定没有在前面的表中列出的标志代码,Debug 将显示以下消息:
      bf error
      在这两种情况下,Debug 将忽略所有在无效项目之后指定的设置。
      Debug 的默认设置
      在启动 Debug 时,会将段寄存器设置到空闲内存的低端,指令指针设置为 0100h,清除所有标志,并且将其余寄存器设置为零,除了被设置为 FFEEh 的 sp 之外。
      ++++

      Debug:S(搜索)

      在某个地址范围搜索一个或多个字节值的模式。
      s range list
      参数
      range
      指定要搜索范围的开始和结束地址。有关 range 参数有效值的信息,请单击“相关主题”列表中的 Debug。
      list
      指定一个或多个字节值的模式,或要搜索的字符串。用空格或逗号分隔每个字节值和下一个字节值。将字符串值包括在引号中。
      ++

      范例
      假定需要查找包含值 41 并且范围从 CS:100 到 CS:110 的所有地址。为此,请键入以下命令:
      scs:100 110 41
      Debug 按以下格式显示结果:
      04BA:0104
      04BA:010D
      -
      以下命令在 CS:100 到 CS:1A0 的范围内搜索字符串“Ph”。
      scs:100 1a0 "Ph"
      ++

      说明
      如果 list 参数包含多个字节值,Debug 将只显示出现字节值的第一个地址。如果 list 只包含一个字节值,Debug 将显示指定范围内出现该值的所有地址。
      ++++

      Debug:T(跟踪)

      执行一条指令,并显示所有注册的内容、所有标志的状态和所执行指令的解码形式。
      t [=address] [number]
      参数
      =address
      指定 Debug 启动跟踪指令的地址。如果省略 address 参数,跟踪将从程序的 CS:IP 寄存器所指定的地址开始。有关 address 参数有效值的信息,请单击“相关主题”列表中的 Debug。
      number
      指定要跟踪的指令数。该值必须是十六进制数。默认值为 1。
      有关执行循环、重复的字符串指令、软件中断或子例程的信息,请单击“相关主题”列表中的 Debug P(执行)。
      有关执行当前内存中程序的信息,请单击“相关主题”列表中的 Debug G(转向)。
      ++

      范例
      要执行一个指令(CS:IP 指向的指令),然后显示寄存器的内容、标志的状态以及指令的解码形式,请键入以下命令:
      t
      如果程序中的指令位于 04BA:011A,Debug 可能显示下列信息:
      AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
      DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
      04BA:011A CD21 INT 21
      ++

      说明
      跟踪只读内存中的指令
      t 命令使用 8086 或 8088 微处理器的硬件跟踪模式。因此,也可以跟踪存储在只读内存 (ROM) 中的指令。
      使用地址参数
      必须在 address 参数之前使用等号 (=) 以便将它与 number 参数区分。
      ++++
  • 相关阅读:
    Linux性能调优
    Linux动态库搜索路径的技巧
    [转]Linux动态库的种种要点
    [转]谈谈Linux下动态库查找路径的问题
    性能测试的几种业务模型设计
    性能测试解惑之并发压力
    一个系统的最大并发用户数为1100,怎么能推算出该系统的支持最大用户数
    IP欺骗
    关于Cocos2d-x随机数的生成
    关于Cocos2d-x节点和精灵节点的坐标、位置以及大小的设置
  • 原文地址:https://www.cnblogs.com/madengwei/p/1413737.html
Copyright © 2020-2023  润新知