从 C 程序到 gdb 的命令

标签 c gdb

我是 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/

相关文章:

C - 系统函数总是返回 -1

linux - 如何翻译内核的陷阱划分错误 rsp :2b6d2ea40450 to a source location?

debugging - 调试错误: &"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n"

C编程: How to get directory name?

c - 使用加法检索大端整数

c - 从文件中读取行并将每个单词存储到数组中(C 语言)

c - 如何提高以下代码的性能?

c++ - 使枚举调试器感知的宏?

debugging - 使用 GDB 在 Fortran 中调试 MPI 程序(在 MAC 上)

python - 如何为 gdb 安装 python 调试信息?