0

我的 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]

为了将地址映射到函数/行号,我安装了 package xorg-x11-server-debuginfo。它包含一个文件/usr/lib/debug/usr/bin/Xorg.debugfile(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 崩溃的位置?

4

1 回答 1

2

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

该网页可能会有所帮助:http ://wiki.debian.org/XStrikeForce/XserverDebugging

于 2013-03-28T18:35:29.593 回答