gpt4 book ai didi

c - 如何在gdb中附加一个子进程?

转载 作者:太空宇宙 更新时间:2023-11-04 04:50:46 25 4
gpt4 key购买 nike

我的程序使用 execvp 生成一个子线程以在 xterm 中运行另一个程序:

char *argv[] = {"xterm",
"-e",
"./anotherProgram",
0
};

execvp("xterm", argv);

我知道另一个程序正在运行,但在 gdb 中,“信息线程”没有显示它。如何附加子线程并调试它?谢谢。

最佳答案

也许您只需要使用 ps aux | grep anotherProgram 找到 child 的进程 ID 就足够了然后使用像这样的新 gdb 实例附加到它? gdb ./anotherProgram <pid>

如果没有,您可以像这样修补源代码并重新编译:

char *argv[] = {"xterm",
"-e",
"gdb",
"./anotherProgram",
0
};

execvp("xterm", argv);

我不知道有什么更简洁的方法来做到这一点。

关于c - 如何在gdb中附加一个子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com