【发布时间】:2011-01-10 06:56:16
【问题描述】:
一般来说,我看到进程的pid 在后台运行并使用命令dbx -a <pid> 在该进程上启动dbx
同样,我如何使用 gdb 来做到这一点?
【问题讨论】:
一般来说,我看到进程的pid 在后台运行并使用命令dbx -a <pid> 在该进程上启动dbx
同样,我如何使用 gdb 来做到这一点?
【问题讨论】:
除了前面的可以直接使用
gdb -p <pid>
【讨论】:
有两种方法。
在命令行中,将 pid 作为参数包含在可执行文件名之后:
gdb /path/to/prog PID
在 gdb 中,您可以使用 attach 命令:
gdb /path/to/prog
gdb> attach PID
虽然命令行上的指定更加简洁,但如果您有一个名称与 pid 相同的核心文件(即对于 pid 2345,核心文件必须是命名为“2345”)然后 gdb 将打开核心文件。诚然,这种情况发生的可能性微乎其微。
【讨论】:
来自 gdb 手册页:
如果你想调试一个正在运行的进程,你可以指定一个进程 ID 作为第二个参数:
gdb program 1234
【讨论】: