异常、中断、断点、单步、GDB、GDBSERVER
1. 异常
异常大家都知道,cpu不正常的时候,就是异常,什么时候不正常呢?除0,指令未定义,总线信号错,总之导致cpu无法工作的,都是异常.
分类时,一般把中断的概念划分给为异常.
2. 中断
软件中断,硬件中断,等等,很好理解.
3. 断点
想要让cpu在制定的地址前,停下来,之后,看cpu的状态,程序的状态,是调试的需要。cpu支持断点,方法很多,指令里加断点bit;加断点软中断等.跟cpu有关,要硬件支持.
4. 单步
让cpu一步一步指令执行,执行一条指令后停止,类似于断点,但不是断点,不太可能所以的指令都加断点bit,插入断点中断是可能的。主要还是cpu支持,标记后,cpu在每条指令后异常即可.
5. GDB
gnu工具里重要的一个,支持调试程序,支持本地程序,gdbserver程序,通过各种方式连接gdbserver.
6. GDBServer
是很好的一个概念,跟gdb之间通过gdb remote serial protocol, RSP通信,简单的交互过程,实现了很多很好的功能.
具体协议看文档,或者代码更好.