我的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
。 file(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崩溃的位置?
答案 0 :(得分:2)
您现在可以使用正确的调试符号,但是需要使用在gdb下运行的X重现崩溃,或者让X吐出核心转储并在gdb下加载它以使用它们。我认为默认的回溯打印方法(glibc backtrace_symbols()
)不知道如何使用外部调试符号。
此网页可能有所帮助:http://wiki.debian.org/XStrikeForce/XserverDebugging