我正在研究图形 GDB 前端,如果我的本地调试器中没有加载可执行文件,我很好奇是否有办法从远程目标获取完整的可执行文件名称。
我可以使用 CLI 或 MI。
我正在研究图形 GDB 前端,如果我的本地调试器中没有加载可执行文件,我很好奇是否有办法从远程目标获取完整的可执行文件名称。
我可以使用 CLI 或 MI。
您可以通过"info lowers"获得 PID,并通过"info os processes"获得类似 ps(1) 的输出。然后,您必须搜索整个进程列表以找到匹配的 PID 并获取其命令行:
(gdb) info inferiors
Num Description Executable
* 1 process 14382
(gdb) info os processes
pid user command cores
1 root /usr/lib/systemd/systemd --system --deserialize 22 1
2 root [kthreadd] 3
......
我查看了 GDB 源代码,“info os 进程”的相关函数是info_osdata_command()和get_osdata()。没有内置的方法来过滤 PID。