我是 UNIX 程序的新手。我遇到过一种情况,我必须从我的 C 程序向 gdb 发出命令。我有一个 C 程序,它通过 fork 一个新的子进程来调用另一个 C 程序。我需要调试这个子 C 程序,因此,我使用系统命令在这个 C 程序上调用 gdb 进程。但是我得到了一个我不想要的 gdb 提示。我想从我的父 C 程序向 gdb 发出命令。有没有办法从 C 程序向 gdb 发出命令?
请回复。
非常感谢。
以撒
最佳答案
如果需要调试子进程,fork+exec的时候不一定要用GDB调用子进程。只要有了子进程的PID,就可以使用GDB中的“attach”命令附加到正在运行的子进程。基本上,您将像这样启动 GDB:
$ gdb
(gdb) attach pid-of-child
将上面的pid-of-child替换成子进程的PID,就可以从交互式GDB调试子进程了,不需要父进程处理完全使用 GDB。
关于从 C 程序到 gdb 的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381066/