软件纵横谈笔记(3)硬件断点与单步

2018-02-01  本文已影响0人  bluewind1230
image.png
单步:

如果单步执行的话,TF会被置1,置1之后,让 CPU恢复执行被调试的那个程序 ,CPU每执行一条指令,就检查这个标志位,看到这个标志位置位,立刻触发一个异常,这个程序就又断下来了,CPU看到TF之后,会自动清除 TF位,故在观察的时候我们是很难观察到TF位置1的,因为 CPU看到TF位会清0,否则会出问题,你想,CPU看到TF位就break,看到TF位了,肯定要执行处理异常的那个代码 ,CPU处理异常的那个代码,我们不希望再断下来,所以是很合理的,CPU自动清TF位,然后执行异常处理代码,通知调试器;

(我自己的理解:vs中按下F7,TF会被置1,置1之后CPU会检测到TF为1,同时程序走到这里会断下来,并且CPU会将TF置为0,然后继续下一步,继续F7...而F8大体上和F7一样,只有一处,遇到调用函数的时候(即call 指令),会执行int3指令)

对硬件断点的一些理解:

硬件断点一般有四种断点:
http://blog.csdn.net/wowolook/article/details/7607206
(OD中各种断点的原理)
读写(访问)断点,写入断点,执行断点,I/O断点

拓展:一般内存分页的访问属性中有可读可写可执行,这里的可执行属性就是说这段代码可以"跑";

还有一个属性为写时复制(http://blog.csdn.net/junbopengpeng/article/details/38072223),

上一篇下一篇

猜你喜欢

热点阅读