随笔 - 64, 文章 - 11, 评论 - 12, 引用 - 0
数据加载中……

Debuging Tool Set(5 ):改变上下文

在上一篇中,叙述了多种断点类型以及设置断点的命令。在这一节中,主要讲解各种改变上下文的指令。这些指令包括单步步入,单步不步入,运行指令。

t(Trace) 单步步入

t 命令执行单条指令或源码行,并选择性的显示所有寄存器和标志位的结果。当发生子过程调用或中断时,它们的每一步也会被跟踪。

用户模式

[~Threadt [r] [= StartAddress] [Count] ["Command" 

内核模式

t [r] [= StartAddress] [Count] ["Command"

 

ta 命令执行到指定的地址
用户模式

[~Threadta [r] [= StartAddressStopAddress  

内核模式

ta [r] [= StartAddressStopAddress 


tb
命令执行程序直到遇到分支指令

tb [r] [= StartAddress] [Count

 

tc命令执行程序直到到达call指令。

用户模式

[~Threadtc [r] [= StartAddress] [Count 

内核模式

tc [r] [= StartAddress] [Count

 

tct 命令执行程序直到遇到call指令或return指令。

用户模式

[~Threadtct [r] [= StartAddress] [Count 

内核模式

tct [r] [= StartAddress] [Count

 

th 命令继续执行程序直到到达任何种类的分支指令,包括条件或非条件跳转、调用、返回和系统调用。

用户模式

[~Threadth [r] [= StartAddress] [Count 

内核模式

th [r] [= StartAddress] [Count

 

tt 命令执行程序直到遇到return指令。

用户模式

[~Threadtt [r] [= StartAddress] [Count 

内核模式

tt [r] [= StartAddress] [Count


P (STEP)单步不步入

p 命令执行一条指令或者一行源码,并且选择性的显示所有寄存器和标志位的结果。当发生子函数调用或中断时,他们被当作单独的一步。

用户模式

[~Threadp [r] [= StartAddress] [Count] ["Command" 

内核模式

p [r] [= StartAddress] [Count] ["Command" 


pa
命令执行程序直到到达指定地址,每一步都会被显示出来。

用户模式

[~Threadpa [r] [= StartAddressStopAddress ["Command"] 

内核模式

pa [r] [= StartAddressStopAddress ["Command"]

 

pc执行程序直到到达一条call指令。

用户模式

[~Threadpc [r] [= StartAddress] [Count 

内核模式

pc [r] [= StartAddress] [Count


pct 命令执行程序,直到遇到call指令或返回指令。

用户模式

[~Threadpct [r] [= StartAddress] [Count 

内核模式

pct [r] [= StartAddress] [Count

 

ph命令执行程序直到遇到任何种类的分支指令,包括条件或非条件跳转、调用、返回和系统调用。

 

用户模式

[~Threadph [r] [= StartAddress] [Count 

内核模式

ph [r] [= StartAddress] [Count

 

pt 命令执行程序直到遇到返回指令。

 

用户模式

[~Threadpt [r] [= StartAddress] [Count] ["Command"] 

内核模式

pt [r] [= StartAddress] [Count] ["Command"]


g (Go)
命令开始指定进程或线程的执行。这种执行将会在程序结束、遇到BreakAddress 或者其他造成调试器停止的事件发生时停止。

用户模式语法

[~Threadg[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]  

内核模式语法

g[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

 

gc 命令使用和遇到断点时一样的方式(单步、跟踪或自由执行)来从一个条件断点恢复执行。也就是原来是pt,则现在还是pt. 常用于条件断点中,关于条件断点,以后会讲。

gh命令将给定线程的异常标识为已处理,并且允许该线程从产生异常的指令继续执行。

用户模式语法

[~Threadgh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]  

内核模式语法

gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 

 

gngN 命令继续给定线程的执行,但是不将异常标记为已处理。这样使得应用程序的异常处理器可以处理该异常。

用户模式语法

[~Threadgn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 
[~ThreadgN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 
 

内核模式语法

gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 
gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]] 


gu
命令使得目标继续执行直到当前函数完成。

用户模式语法

[~Threadgu  

内核模式语法

gu 

 

posted on 2011-07-28 16:20 Robertxiao 阅读(163) 评论(0)  编辑 收藏 引用 所属分类: Debug


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理