我正在研究gdb,用于断点实现。为了方便起见,我采用了第一个GDB版本2.51(1988年发布)。我看到断点插入数据为 -
#define BREAKPOINT {0x4e, 0x4f}
什么是0x4e和0x4f?
答案 0 :(得分:3)
0x4E 0x4F是“TRAP#15”的Motorola 68000机器指令。 TRAP指令强制发生异常,并且在某些平台上,陷阱#15被定义为断点异常。这就是为什么0x4E和0x4F出现在你的GDB 2.51源代码中,用于处理sun3等平台。
参考文献:
此Motorola M68000 Family Programmer's Reference Manual包含第4-188页的TRAP指令的详细信息。具体地说,该指令由12位值010011100100表示,后跟4位“向量”(在本例中为1111)。所以“TRAP#15”由0x4E 0x4F表示。 Sun专门使用向量15进行断点/跟踪 - Google search显示了许多注释和源代码示例。