GDB 使用哪些信号编号?

Which signal numbers does GDB use?

我一直在尝试整理一种 'remote gdb agent',但我似乎没有找到停止数据包的正确信号编号。 Where/how 我可以找到 gdb 实际使用的信号编号吗?至少来自 Debian Jessie 仓库的 gdb-multiarch 行为很奇怪。

信号 31 显示为 SIG37 - 实时事件 37(我预计 SIGUSR2) 如果我发送信号 10,dgb 显示 "Can't send signals to this remote system. SIGURG not sent." 并发送一个 'c'-数据包(我期望 SIGBUS)。

打开远程和串行调试后,我可以看到信号 31 和 10 实际上已被 gdb 接收到。

[编辑] 通过尝试,我发现了前 30 个信号。这是第一批: (星号表示无法继续调试) 2 信号情报 4 信号 5 信号陷阱 6 信号传输* 7 SIGEMT 8个SIGFPE 9 信号终止 10 西格* 11 信号停止 12 信号传输协议 13 信号* 14 SIGCHLD * 15 SIGTTIN * 16 西格图 17 西吉奥 * 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

gdb 远程协议使用自己的信号编号。这些必须由您的远程代理转换为正确的系统值。详见the documentation(第一段);我认为信号编号仅在 gdb 头文件中可用。