在Linux上,在
gdb
内,我试图在我的指定目录中找到这个C程序的PID。但是,当我尝试使用命令 (gdb) info inferior
时,我得到输出:
Num Description Connection Executable
* 1 <null> /home/(cut because it showed personal name) /debug/example
进程的PID应该在
* 1
旁边,但它只是返回null?我不明白为什么。
我知道命令
(gdb) print getpid()
也可以检索PID,但它输出:
No symbol "getpid" in current context.
有人可以帮忙解释一下发生了什么事吗?
没有信息,因为你可能还没有开始调试程序,并且没有子进程。
使用
start
开始调试。
$ gdb example
Reading symbols from example...
(gdb) info inferior
Num Description Connection Executable
* 1 <null> /path/to/example
(gdb) start
Temporary breakpoint 1 at 0x113d: file example.c, line 5.
Starting program: /path/to/example
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Temporary breakpoint 1, main () at example.c:5
5 puts("Hello world.");
(gdb) info inferior
Num Description Connection Executable
* 1 process 28506 1 (native) /path/to/example
(gdb)