当前位置: 技术问答>linux和unix
fork子进程调试
来源: 互联网 发布时间:2016-11-28
本文导语: 本帖最后由 qq361301276 于 2011-05-12 08:49:16 编辑 1.怎么在子进程开始执行代码处设置断点?fork之后产生的子进程都跳过了在父进程代码中设置的断点 2.fork之后子进程从哪条语句开始执行? 比如 int main() { //.... fu...
2.fork之后子进程从哪条语句开始执行?
比如
int main()
{
//....
fun1();
fun2();
pid = fork();
if (pid 0)
{
exit(0);
}
//..
}
子进程产生后是从pid = fork();这一句开始执行,还是从main函数从头开始执行??
|
可以通过attach方式进入调试子进程,这个的用法google吧,一般是需要获取子进程pid
也可以使用set follow-fork-mode [parent|child]来选择进入父进程还是子进程,这里用set follow-fork-mode child就可以进入子进程,可以在子进程的代码中打上断点
|
getpid()返回进程ID
可以通过attach方式进入调试子进程,这个的用法google吧,一般是需要获取子进程pid
也可以使用set follow-fork-mode [parent|child]来选择进入父进程还是子进程,这里用set follow-fork-mode child就可以进入子进程,可以在子进程的代码中打上断点
调用exec函数可以让进程从头开始执行