GDB使用哪些信号编号?

时间:2015-11-10 00:00:52

标签: gdb signals

我一直试图组建一种远程gdb代理,但我似乎找不到停止数据包的正确信号。我在哪里/如何找到gdb实际使用的信号数?至少来自Debian Jessie repo的gdb-multiarch很奇怪。

信号31显示为SIG37 - 实时事件37(我预期SIGUSR2) 如果我发送信号10,则dgb显示"不能向此远程系统发送信号。 SIGURG未发送。"并发送' c' -packet(我期待SIGBUS)。

通过远程和串行调试,我可以看到信号31和10实际上是由gdb接收的。

[编辑] 通过尝试我找到了前30个信号。这是第一个: (星号meand,不能继续调试) 2 SIGINT 4 SIGILL 5 SIGTRAP 6 SIGABRT * 7 SIGEMT 8 SIGFPE 9 SIGKILL 10 SIGURG * 11 SIGSTOP 12 SIGTSTP 13 SIGCONT * 14 SIGCHLD * 15 SIGTTIN * 16 SIGTTOU 17 SIGIO * 18 SIGXCPU *

[EDIT2]

[r $][T][1][0][#][b][5]Packet received: T10
  ...
  Can't send signals to this remote system.  SIGURG not sent.
  Sending packet: $c#63...[\x00][\x00][\x00][\x00][\x00][
  r +]Ack

1 个答案:

答案 0 :(得分:1)

gdb远程协议使用自己的数字作为信号。这些必须由远程代理转换为正确的系统值。有关详细信息,请参阅the documentation(第一段);我认为信号编号只能在gdb头文件中使用。