【问题标题】:Debugging GDB itself and signal handling issues调试 GDB 本身和信号处理问题
【发布时间】:2017-08-03 19:03:10
【问题描述】:

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

我在终端 1 中以 TUI 模式运行要调试的 GDB。紧接着,我打开另一个 terminal 2 并找到在 Terminal 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

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

有什么想法吗?

【问题讨论】:

    标签: debugging gdb ubuntu-16.04 gnu


    【解决方案1】:

    你可以使用

    handle SIGINT pass
    

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

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2011-04-07
      • 2017-12-07
      • 2020-12-18
      • 2017-11-05
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多