C 使用pid启动gdb

C 使用pid启动gdb,c,process,gdb,dbx,C,Process,Gdb,Dbx,通常,我看到进程的pid在后台运行,并使用命令dbx-a 类似地,我如何使用gdb实现这一点?来自gdb手册页: 如果要调试正在运行的进程,可以指定进程ID作为第二个参数: gdb program 1234 有两种方法 在命令行中,在可执行文件名称后包含pid作为参数: gdb /path/to/prog PID 在gdb中,您可以使用attach命令: gdb /path/to/prog gdb> attach PID 虽然命令行上的指定更加简洁,但存在一个轻微的风险,即如果核心文

通常,我看到进程的
pid
在后台运行,并使用命令
dbx-a

类似地,我如何使用gdb实现这一点?

来自gdb手册页:

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

gdb program 1234
有两种方法

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

gdb /path/to/prog PID
在gdb中,您可以使用attach命令:

gdb /path/to/prog
gdb> attach PID

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

除了前面的功能,您还可以直接使用

gdb -p <pid>
gdb-p

这是正确答案。将GDB附加到PID不应该以任何方式涉及到指定可执行文件的路径。正确的解决方案应仅涉及PID,而不涉及其他内容。