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 头文件中可用。
我一直在尝试整理一种 '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 头文件中可用。