gdbserver从远程文件加载符号表

Viv*_*oel 5 gdb gdbserver

我正在尝试使用gdbserver ...
我有一个/user/bin/foo使用pid运行二进制路径的应用程序19767

在远程启动gdbserver:

gdbserver  --remote-debug --multi 0:12347 
Run Code Online (Sandbox Code Playgroud)

在客户端上启动gdb并将其连接以删除服务器

target extended-remote 192.168.1.84:12347
Run Code Online (Sandbox Code Playgroud)

在pid上附加了gdb

attach 19767
Run Code Online (Sandbox Code Playgroud)

表明:

warning: Could not load vsyscall page because no executable was specified
try using the "file" command first.
0x00007f207550043c in ?? ()
Run Code Online (Sandbox Code Playgroud)

另外,它显示的当前线程信息不正确。像信息线程显示1个线程,但我的应用程序有10个线程-

(gdb) info threads
* 1 Thread 19767.19767  0x00007f207550043c in ?? ()
Run Code Online (Sandbox Code Playgroud)

如何要求gdb从远程文件加载符号/user/bin/foo?如何使其显示正确的信息?

小智 6

从 gdb 7.10 开始,您可以使用

set sysroot target:
Run Code Online (Sandbox Code Playgroud)

使 gdb 从远程文件系统检索文件。请参阅https://sourceware.org/gdb/onlinedocs/gdb/Files.html#Files


Emp*_*ian 4

如何让 gdb 从远程文件 /user/bin/foo 加载符号

你不能。在本地复制远程/usr/bin/foo(或挂载其所在的文件系统),然后像这样调用 gdb:gdb /path/to/copy/of/foo,或仅使用该file命令。