这是Ubuntu设置。
简而言之,如果我使用命令" objcopy --add-gnu-debuglink = / mntsymbols / binsymbol / prog.debug prog "它不起作用,在做gdb时,找不到符号。 仅当prog.debug与prog在同一文件夹中时,gdb才会获取符号。 我做完 gdb>后工作正常symbol-file /mntsymbols/binsymbol/prog.debug
/ mntsymbols是从远程计算机安装的文件夹。 prog被剥离二进制。 prog.debug是使用" objcopy --only-keep-debug "创建的prog的调试符号文件。
我正在尝试为简单的测试程序设置gdb符号服务器。 sys1是gdb符号服务器。将符号文件保留为 SYS1:/root/symboldir/testp1symbols/prog.debug SYS1:/root/symboldir/testp1symbols/shared1.so.debug
将在sys2上挂载sys1:/ root / symboldir /,我应该能够在sys2上使用gdb进行调试。如何使用--add-gnu-debuglink或任何其他方式实现此目的。
答案 0 :(得分:2)
您应该使用--add-gnu-debuglink=prog.debug
并将GDB中的debug-file-directory
设置为/mntsymbols/binsymbol
。
您设置此方法的方式,GDB可能会在prog.debug
中查找/usr/lib/debug/mntsymbols/binsymbol
。您可以通过在strace -e open
下运行GDB来验证这一点。