繁体   English   中英

gdb,连接到以gdbserver开始的正在运行的进程

[英]gdb, connect to a running process started with gdbserver

我只想在C和ncurses中编写一个小的文本编辑器即可。

因此,我使用-g选项对其进行了编译,并得到了一个名为“ editor”的文件。 我可以做cgdb editor input-for-text-editor.txt并可以调试它,除了ncurses使用stdout ...没有问题...您知道它破坏了gdb使用的输入/输出。

因此,我决定要做的是使用gdbserver启动程序并连接到该进程进行另一个gdb会话。

所以我做了以下事情:

gdbserver port:1234 editor input-for-text-editor.txt

在另一个终端:

gdb editor
target remote localhost:1234

至此,我已连接到流程:

bt
#1  0x0000000000000002 in ?? ()
#2  0x00007fffffffea7b in ?? ()
#3  0x00007fffffffea82 in ?? ()
#4  0x0000000000000000 in ?? ()

但是如您所见,我没有有关正在执行哪一行的信息。 此外,如果我在主+30处(这是无限循环所在的位置)插入一个中断,然后按c ,则它不会在那里中断。 相反,它只是继续永远执行。

有人可以告诉我,我做错了什么吗? 我如何从另一个gdb连接到我的进程,以使进程的stdout / in与调试器的stdout / in脱钩?

在此先感谢您的帮助。

对于任何观看此线程的人,都可以通过使用-g标志进行编译来解决问题

https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging-Options

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM