您的位置:首页 > 编程语言 > C语言/C++

gdb调试多进程

2016-07-02 15:55 381 查看
调试多进程

    1)set follow-fork-mode [parent|child]

    parent:fork之后继续调试父进程,子进程不受影响

    child:fork之后调试子进程,父进程不受影响

    在具体的进程设置断点

    set detach-on-fork [on|off]

    on:断开调试follow-fork-mode的进程

    off:gdb将控制父进程和子进程。follow-fork-mode指定的进程将被调试,另一个进程置于(suspended)状态.

    2)attach子进程

    pstree -H 6722

    gdb

    attach pid

    stop

    break 37

    continue

    ......

    3)gdb wrapper

    父进程fork出子进程,子进程exec,这种gdb wrapper方法。

    子进程在gdb控制下了,但还是不能调试,如何与gdb交互呢?必须以某种方式启动gdb,以便能在某个窗口/终端与gdb交互。可以使用xterm生成这个窗口。

    

    set detach-on-fork off

    show detach-on-fork

    catch fork

    r

    break test.c:14

    continue

    info inferiors

    inferior 2

    info inferiors

    inferior 1

    info inferiors

    break test.c:50

    continue

    info inferiors

    info threads

    thread 3

    continue

    info threads

    thread 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 gdb 多进程