46

一般来说,我看到pid 在后台运行的进程并使用命令在该进程上启动 dbxdbx -a <pid>

同样,我如何使用 gdb 来做到这一点?

4

3 回答 3

73

除了前面你可以直接使用

gdb -p <pid>
于 2012-10-02T13:18:29.123 回答
43

有两种方法。

在命令行中,将 pid 作为参数包含在可执行文件名称之后:

gdb /path/to/prog PID

在 gdb 中,您可以使用 attach 命令:

gdb /path/to/prog
gdb> attach PID

虽然命令行上的指定更加简洁,但如果您有一个名称与 pid 相同的核心文件(即对于 pid 2345,核心文件必须命名为“2345 ") 然后 gdb 将打开核心文件。诚然,这种情况发生的可能性微乎其微。

于 2010-01-28T05:59:31.463 回答
3

从 gdb 手册页:

如果要调试正在运行的进程,则可以改为指定进程 ID 作为第二个参数:

gdb program 1234
于 2010-01-28T05:57:46.003 回答