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

问题描述:

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

我以TUI模式在终端1上运行GDB进行调试。之后,我打开另一个终端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停止GDB在终端1,GDB上运行终端2停止。 GDB在终端1根本不响应^ C命令。我尝试使用-tty参数并获取当前的TTY,但是id没有解决问题。 GDB使用readline GNU库,但我应该正确配置终端及其输入。

有什么想法?

您可以使用

handle SIGINT pass 

指示GDB传递信号下。请参阅GDB手册中的Signals。在这种情况下,也可以使用nostop的说法。

+0

谢谢,它的工作原理 – sam