|
|
|
|
 GDB怎么实现break的? - greensea [ 2006-03-31 14:34 | 57 byte(s)]
 Re: GDB怎么实现break的? - teawater [ 2006-03-31 14:35 | 35 byte(s)]
 Re: GDB怎么实现break的? - greensea [ 2006-03-31 16:26 | 319 byte(s)]
 Re: GDB怎么实现break的? - chaostao [ 2006-04-10 22:00 | 272 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
if (remote_break)
serial_send_break (remote_desc);
else
serial_write (remote_desc, " 03", 1);
第一个调用不知道是干嘛的,第二个调用应该是发送一个^c,但是在stub的代码里面没有看到对这个做相应处理的代码?
第二个发送以后stub是怎么处理的?
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
gdb发送0x3,如果stub支持break,那么它的串口中断会开着。
串口中断处理程序会判断收到的字符,对于0x3,它会在把被中断的指令临时保存到buffer,
然后用一个可以引起exception的指令替换以前的指令。
这样返回被调试程序执行时,就像碰到断点一样停下来。
|
|
|
[Original]
[Print]
[Top]
|
|
|