我的程序使用execvp生成子线程,以在xterm中运行另一个程序:
char *argv[] = {"xterm",
"-e",
"./anotherProgram",
0
};
execvp("xterm", argv);
我知道另一个程序正在运行但是在gdb中,“info thread”没有显示它。如何附加子线程并进行调试?感谢。
答案 0 :(得分:0)
也许只使用ps aux | grep anotherProgram
找到孩子的进程ID然后使用像这样的新gdb实例附加到它就足够了? gdb ./anotherProgram <pid>
如果没有,你可以像这样修改源代码并重新编译:
char *argv[] = {"xterm",
"-e",
"gdb",
"./anotherProgram",
0
};
execvp("xterm", argv);
我不知道更清洁的方法。