繁体   English   中英

附加后gdb继续

[英]gdb continue after attach

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

诀窍是我需要附加到 p2 并仅在 p1 中的断点之后在其进程中的某个点处中断。

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

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

其中 pid 是通过在 p1 损坏时在另一个选项卡中运行ps命令来确定的。

问题是当我附加到 p2 时 p1 仍然坏了。 实际上,继续、附加和新断点都需要同时完成。 我该怎么做呢?

制作两个端子:1 和 2。

执行以下步骤:

  1. 在 1 号航站楼, gdb p1 break foo
  2. 在终端 1 中, run .
  3. 断点将在 p1 中被击中,并且 p1 将暂停。
  4. 现在进程 p2 将运行(因为 p1 已开始运行)。
  5. 在终端 2. 打开 gdb 并附加 p2。 在 p2 中添加断点。
  6. 在 1 号航站楼continue 。然后转到 2 号航站楼。
  7. 您将看到在 p2 中的bar处击中了断点。

这是基于假设p2中的bar总是在p1 foo之后被击中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM