C addr2line调试符号的命令搜索路径

C addr2line调试符号的命令搜索路径,c,ubuntu,addr2line,C,Ubuntu,Addr2line,我不能让Addr2线路工作。它会在三条(不存在)路径上查找符号: 但它似乎忽略了默认情况下实际安装所有调试符号的路径: /usr/lib/debug/.build-id/ 我像这样运行*addr2line**: addr2line -f -C -e <PathToExecFile> <Addr> 在这里,我们根据经验找到了屏幕调试符号的位置: 现在我们运行strace addr2line来查看它试图访问的位置 # Get any valid object addres

我不能让Addr2线路工作。它会在三条(不存在)路径上查找符号:

但它似乎忽略了默认情况下实际安装所有调试符号的路径:

/usr/lib/debug/.build-id/
我像这样运行*addr2line**:

addr2line -f -C -e <PathToExecFile> <Addr>
在这里,我们根据经验找到了屏幕调试符号的位置:

现在我们运行strace addr2line来查看它试图访问的位置

# Get any valid object address
$ objdump -T /usr/bin/screen
> 00000000006697e0

# Use the object address in addr2line
$ strace -f addr2line -f -C \
    -e /usr/bin/screen 0x00000000006697e0 2>&1 | grep debug
> open("/usr/bin/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
  open("/usr/bin/.debug/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
  open("/usr/lib/debug/usr/bin/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
这里我们看到了我前面提到的3条路径,但没有找到想要的路径。

在Ubuntu中添加了错误报告:
$ sudo apt-get install screen screen-dbg
$ file /usr/bin/screen
> /usr/bin/screen: setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
  dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
  BuildID[sha1]=e9d3cd5073daa6b7365b3787673143edeec589d3, stripped
$ dpkg -L screen-dbg
> /usr/lib/debug/.build-id/e9/d3cd5073daa6b7365b3787673143edeec589d3.debug
/usr/lib/debug/.build-id/e9/d3cd5073daa6b7365b3787673143edeec589d3.debug
# Get any valid object address
$ objdump -T /usr/bin/screen
> 00000000006697e0

# Use the object address in addr2line
$ strace -f addr2line -f -C \
    -e /usr/bin/screen 0x00000000006697e0 2>&1 | grep debug
> open("/usr/bin/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
  open("/usr/bin/.debug/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
  open("/usr/lib/debug/usr/bin/d3cd5073daa6b7365b3787673143edeec589d3.debug", O_RDONLY) = -1 ENOENT (No such file or directory)