例如,如果我们这样做
mkdir a
mkdir a/b
mkdir a/b/c
mkdir a/b/c/d
ln /bin/ls -s a/b/c/d/myls
ln a -s as
gdb as/b/c/d/myls
...
(gdb) r
Starting program: <mypath>/a/b/c/d/myls
^D
lldb as/b/c/d/myls
(lldb) r
Process 56636 launched: '<mypath>/as/b/c/d/myls' (x86_64)
我们可以看到gdb在规范程序上进行调试,而lldb在链接程序上进行调试。我们怎样才能让gdb调试链接的程序没有得到它的绝对路径?
答案 0 :(得分:0)
我们可以看到gdb在规范程序上进行调试,而lldb在链接程序上进行调试。
不,我们没有看到这一点。我们看到GDB执行realpath
来解析程序,lldb
没有,但他们都调试完全相同的程序
答案 1 :(得分:0)
也许您可以使用硬链接?
这样,gdb将始终引用您要查找的内容。
您也可以使用不同版本的gdb。似乎版本7.11提供了您想要的。
看看这里:
~/tmp/link] stat hello
File: ‘hello’ -> ‘../hello’
这是您获得的版本7.12
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./link/hello...(no debugging symbols found)...done.
而对于较旧的gdb,你会得到
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from full_path/tmp/hello...(no debugging symbols found)...done.
所以,请使用最新版本。