分享

LINUX 下多进程调试方法

 心不留意外尘 2016-04-25
from   http://blog.csdn.net/hwz119/article/details/1612221
2007.05
#include   <stdio.h>   
#include   <unistd.h>

int main()   
{   
    if(fork() == 0)   
    {   
        printf("Child   Process   say   hello   to   you! ");
        sleep(5);
        exit(0);   
    }   
    else   
        printf("Parent   Process,   Hello ");   
             
    return   0;   
}   
    

1: 通常使用gdb调试子进程的方式是在子进程里插入sleep()语句。运行gdb进行调试这个程序,等到子进程被fork后,得到它的进程号,然后在另外一个终端运行gdb,用这个进程号attach上这个子进程,我们就可以调试子进程了。

gdb childID
(gdb) attach childID

2:另外一种方式是在gdb中设置follow-fork-mode为child,它的使用方式是"set follow-fork-mode child"。缺省gdb会跟踪父进程。

3:对通过system()调用子程序:
方法1适用。如果子程序的源文件和父程序的源文件不共享,即不能在父程序起来后为子程序设置断点,使用方法2后也没有机会设置断点,不能进行debug。
另外使用方法2后,似乎不能attach子进程了。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1562104

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多