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]

アドレスを関数/行番号にマップするために、パッケージをインストールしました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 の下にロードさせて、それらを使用する必要があります。デフォルトのバックトレース印刷方法 ( glibcbacktrace_symbols()だと思います) は、外部デバッグ シンボルの使い方を知りません。

この Web ページが役立つかもしれません: http://wiki.debian.org/XStrikeForce/XserverDebugging

于 2013-03-28T18:35:29.593 に答える