2017-08-03 47 views
0

我想調試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庫,但我應該正確配置終端及其輸入。

有什麼想法?

回答

0

您可以使用

handle SIGINT pass 

指示GDB傳遞信號下。請參閱GDB手冊中的Signals。在這種情況下,也可以使用nostop的說法。

+0

謝謝,它的工作原理 – sam