软件中断的原理 :
当CPU执行到int 3指令时,在指令的执行过程产生断点异常,并转去执行异常处理例程的过程;
断点的设置:
当我们下了一个软件中断后,编译器将断点所在的第一个字节替换成cc 也就是int 3的机器码;然后将控制权交还给用户。
注意:
1、调试器在落实断点时,不管所在位置的指令是几个字节,它都替换一个字节。
2、因为有断点在,所以被调试程序在断点位置的那条指令还没有执行。按照程序指针总指向即将执行的的那条指令的原则,应该把程序指针指向这条要执行的指令,也就是倒退一个字节,指向本来指令的起始地址。