问题 如何在gdb中获取当前调试过程的pid?


在gdb里面,什么命令会提供调试过程的pid?

大部分的 谷歌搜索结果 一旦我们知道了pid,就只讨论如何将gdb附加到进程。


4581
2018-04-18 21:05


起源



答案:


一个简单的方法是 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

12
2018-04-18 21:07



也 info prog - Employed Russian
请注意,描述将是 <null> 如果程序没有运行。 /缩写为 i i。 - user202729


答案:


一个简单的方法是 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

12
2018-04-18 21:07



也 info prog - Employed Russian
请注意,描述将是 <null> 如果程序没有运行。 /缩写为 i i。 - user202729


另一种方法:

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

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


0
2017-09-25 08:33