我是UNIX程序的新手.我遇到过一种情况,我必须从我的C程序向gdb发出命令.我有一个C程序,它通过分配一个新的子进程来调用另一个C程序.我需要调试这个子C程序,因此,我使用系统命令在这个C程序上调用gdb进程.但是我得到了一个我不想要的gdb提示符.我想从我的父C程序向gdb发出命令.有没有办法从C程序向gdb发出命令?
请回复.
非常感谢.
Esash
如果需要调试子进程,则在 fork+exec 时不一定需要使用 GDB 调用子进程。只要知道子进程的PID,就可以使用GDB中的“attach”命令附加到正在运行的子进程。基本上,你可以像这样启动 GDB:
$ gdb
(gdb) attach pid-of-child
Run Code Online (Sandbox Code Playgroud)
在上面,将pid-of-child替换为子进程的 PID,这样就可以从交互式 GDB 中调试子进程,而父进程根本不需要处理 GDB。