如何创建一个TTY来将gdb附加到/从其tty中删除bash?

时间:2014-07-21 10:18:46

标签: bash gdb tmux tty

我打开了两个终端(在tmux内)。在第一个中,我输入:

$ tty
/dev/pts/4

在第二个

$ gdb brokenprogram
(gdb) tty /dev/pts/4

这成功地将正在调试的进程的输出重定向到第一个终端。但是,当我输入第一个终端时,bashbrokenprogram正在竞争读取输入。如何阻止bash听取任何进一步的按键?

1 个答案:

答案 0 :(得分:1)

我认为运行sleep以便shell无法访问tty的建议很好,但另一种方法是使用gdbserver

在/ dev / pts / 4上:

$ gdbserver localhost:12345 brokenprogram
Process brokenprogram created; pid = 9134
Listening on port 12345

在另一个终端:

$ gdb brokenprogram
(gdb) target remote localhost:12345
Remote debugging using localhost:12345
<gdb chatter that the process is stopped at _start()>
(gdb) continue

然后你可以在/ dev / pts / 4上与破解程序进行交互。