调试GDB本身和信号处理问题

时间:2017-08-03 19:03:11

标签: debugging gdb ubuntu-16.04 gnu

我正在尝试调试GDB本身并处理从另一个终端发送的Ctrl + C信号问题。

我在TUI模式下运行GDB以在终端1 中进行调试。之后,我打开另一个终端2 ,找到在终端1 上运行的GDB的PID号。然后将该过程附加到调试。

在1号航站楼

$ build-gdb/gdb/gdb -tui ./build/output.elf -tty=$TTY

在2号航站楼

$ ps -elf | less
$ sudo gdb -p PID_NUMBER-tty=$TTY -tui

问题是当我按下Ctrl + C在终端1 中停止GDB时,GDB在终端2 上停止运行。 终端1 中的GDB根本不响应^ C命令。我尝试使用-tty参数并获取当前的TTY,但id没有解决问题。 GDB使用readline GNU库,但我应该正确配置终端及其输入。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用

handle SIGINT pass

指示GDB将信号传递给下级。请参阅GDB手册中的Signals。在这种情况下,nostop参数也很有用。