代码之家  ›  专栏  ›  技术社区  ›  CalebK

附加后继续gdb

gdb c
  •  0
  • CalebK  · 技术社区  · 7 年前

    我正在使用GDB调试一个具有多个进程的程序。主程序启动了两个不同的过程。让我们将它们称为p1(启动并最终启动p2的进程)p2(启动并附加到的进程)

    诀窍是,我需要连接到p2,并在其过程中的某个点处断开,只有在p1中的一个断开点之后。

    所以本质上我发现自己在做:

    gdb p1
    (gdb) break foo
    (gdb) attach <pid of p2>
    (gdb) break bar
    

    其中pid是通过运行 ps

    问题是,当我连接到p2 p1时,它仍然断开。实际上,continue、attach和new断点都需要同时完成。我该怎么做?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Syed Waris    7 年前

    制作两个端子:1和2。

    执行以下步骤:

    1. gdb p1 . break foo .
    2. 在1号航站楼, run .
    3. 断点将在p1中命中,p1将暂停。
    4. 在2号航站楼。打开gdb并连接p2。在p2中添加断点。
    5. continue 在1号航站楼。换到2号端子。
    6. bar .

    这是基于以下假设 在里面 p2 以后总是会被击中 foo p1 .

    推荐文章