Debugging 打开我是否在openSUSE上使用debuginfo包?

Debugging 打开我是否在openSUSE上使用debuginfo包?,debugging,stack-trace,opensuse,Debugging,Stack Trace,Opensuse,我的X服务器今天开始崩溃。当我查看日志文件时,我看到: Backtrace: 0: /usr/bin/Xorg (xorg_backtrace+0x36) [0x564616] 1: /usr/bin/Xorg (0x400000+0x168349) [0x568349] 2: /lib64/libpthread.so.0 (0x7f1d1618b000+0xf140) [0x7f1d1619a140] 为了将地址映射到函数/行号,我安装了包xorg-x11-server-debuginfo。

我的X服务器今天开始崩溃。当我查看日志文件时,我看到:

Backtrace:
0: /usr/bin/Xorg (xorg_backtrace+0x36) [0x564616]
1: /usr/bin/Xorg (0x400000+0x168349) [0x568349]
2: /lib64/libpthread.so.0 (0x7f1d1618b000+0xf140) [0x7f1d1619a140]
为了将地址映射到函数/行号,我安装了包
xorg-x11-server-debuginfo
。它包含一个文件
/usr/lib/debug/usr/bin/Xorg.debug
文件(1)
命令显示:

/usr/lib/debug/usr/bin/Xorg.debug: 
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.32, 
BuildID[sha1]=0x08d976cf2aeb60105f32349bfce3297a72c8f96f,
not stripped

听起来很有希望。如何使用此文件中的调试符号找出X崩溃的位置?

您现在有了正确的可用调试符号,但需要在X在gdb下运行时再现崩溃,或者让X吐出一个内核转储并在gdb下加载,以利用它们。默认的回溯打印方法(我认为glibc
backtrace\u symbols()
)不知道如何使用外部调试符号

此网页可能有助于: