通常,我看到在后台运行的进程pid,并使用命令dbx -a <pid>在该进程上启动dbx

同样,我如何使用gdb完成此操作?

推荐答案

有两种方法.

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

gdb /path/to/prog PID

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

gdb /path/to/prog
gdb> attach PID

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

C++相关问答推荐

C中char数组指针的问题

如何将匿名VLA分配给指针?

rSP堆栈指针在返回函数调用的值时有任何用途吗?

为什么PLT表中没有push指令?

编译SDL 2时缺少SDL_ttf

当打印字符串时,为什么在c中没有使用常量限定符时我会收到警告?

为什么复合文字(C99)的返回会生成更多的汇编代码?

C:scanf(%d&q;,...)输入只有一个减号

警告:C++中数组下标的类型为‘char’[-Wchar-subpts]

我无法让LLDB正确运行我的可执行文件

带有sigLongjMP中断I/O的异常处理程序

为什么net/if.h在ifaddrs.h之前?

在CLANG中调试预处理器宏

预先分配虚拟地址空间的区域

GCC创建应用于移动项的单独位掩码的目的是什么?

struct -未知大小

如何将另一个数组添加到集合中,特别是字符串?

致命错误:ASM/rwan ce.h:没有这样的文件或目录.符号链接还不够

共享目标代码似乎不能在Linux上的进程之间共享

将数组返回到链表