2013-07-07 50 views
2

附加到进程时,gdb发送了哪个信号?这对不同的UNIX工作是否一样?例如。 Linux和Mac OS X?附加到进程时gdb发送哪个信号?

到目前为止我只发现,SIGTRAP被用来实现断点。它是否用于附着?

+2

'man ptrace' ... –

回答

2

AFAIK它不需要任何信号附加。它只是通过调用ptrace来暂停“劣势”。它还读取使用此调用的调试进程内存和寄存器,并且它可以请求单步执行指令(假设它在linux的该端口上实现)等。 通过在正确的位置放置触发“陷阱”或类似命令的指令来实现软件断点到达时,但调试过程可以全速运行,直到此时。

另外(如前所述,在阅读man ptrace旁边),请参阅ptrace explanation on wikipedia

+0

ptrace是正确的,发现现在和现在 – mschneider