gdbserver loading symbol table from remote file

家住魔仙堡 提交于 2019-12-12 10:53:25

问题


I am trying to use gdbserver...
I have an application with binary path /user/bin/foo running with pid 19767.

Started the gdbserver on remote:

gdbserver  --remote-debug --multi 0:12347 

Started gdb on client and connected it to remove server

target extended-remote 192.168.1.84:12347

Attached gdb on pid

attach 19767

It shows:

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

Also, current thread information it is showing is incorrect. Like info threads shows 1 thread , but my app has 10 threads-

(gdb) info threads
* 1 Thread 19767.19767  0x00007f207550043c in ?? ()

How can I ask gdb to load symbol from remote file /user/bin/foo? How to make it show correct info?


回答1:


How can I ask gdb to load symbol from remote file /user/bin/foo

You can't. Copy remote /usr/bin/foo locally (or mount the filesystem it's on), and then invoke gdb like this: gdb /path/to/copy/of/foo, or just use the file command.




回答2:


As of gdb 7.10, you can use

set sysroot target:

to make gdb retrieve files from the remote filesystem. See https://sourceware.org/gdb/onlinedocs/gdb/Files.html#Files



来源:https://stackoverflow.com/questions/15550362/gdbserver-loading-symbol-table-from-remote-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!