如何在gdb中获取当前调试进程的pid

How does one obtain the pid of the currently debugged process in gdb?

本文关键字:调试 进程 pid 获取 gdb      更新时间:2023-10-16

在gdb中,哪个命令将提供被调试进程的pid?

大多数谷歌结果只讨论了一旦我们知道pid,如何将gdb附加到进程。

一个简单的方法是info inferior。在这里,我用它自己调试gdb,这个命令显示被调试对象的PID:
(top-gdb) info inferior
  Num  Description       Executable        
* 1    process 14068     /home/tromey/gdb/build/gdb/gdb 

你也可以直接调用普通的C函数:

(top-gdb) print getpid()
$3 = 14068

另一种方法:

(gdb) python print(gdb.selected_inferior().pid)
32737

查看有关gdb Python劣API的更多信息:https://sourceware.org/gdb/onlinedocs/gdb/Inferiors-In-Python.html#Inferiors-在Python 中

在Linux上,info proc显示调试进程的pid和一些其他信息

(gdb) info proc
process 28289
cmdline = '...'
cwd = '...'
exe = '...'

请参阅https://sourceware.org/gdb/onlinedocs/gdb/Process-Information.html详细信息