0

dbx デバッガーによってデバッグされるコア ファイルに関する任意のアイデア。このコア ファイルが生成される理由がわかりません。これについて私を助けてください

For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.6' in your .dbxrc
Reading mhost.new
core file header read successfully
Reading ld.so.1
Reading librt.so.1
Reading libclntsh.so.9.0
Reading libm.so.2
Reading libnsl.so.1
Reading libsocket.so.1
Reading libgen.so.1
Reading libdl.so.1
Reading libthread.so.1
Reading libc.so.1
Reading libaio.so.1
Reading libmd.so.1
Reading libwtc9.so
Reading libsched.so.1
Reading libc_psr.so.1
WARNING!!
A loadobject was found with an unexpected checksum value.
See `help core mismatch' for details, and run `proc -map'
to see what checksum values were expected and found.
dbx: warning: Some symbolic information might be incorrect.
t@1 (l@1) program terminated by signal SEGV (no mapping at the fault address)
0xff3be704: elf_find_sym+0x0114:        ldsb     [%l0 + %l4], %o2
(dbx) where
current thread: t@1
=>[1] elf_find_sym(0xffbfbbd8, 0xffbfbc68, 0xffbfbc64, 0xf194, 0xfe5986d2, 0xff3f0358), at 0xff3be704
  [2] _lookup_sym(0xff3f7360, 0xffbfbbd8, 0xffbfbc68, 0xffbfbc64, 0x0, 0xff3f0358), at 0xff3bbb7c
  [3] lookup_sym(0xffbfbc6c, 0xffbfbc68, 0xffbfbc64, 0xff3f7360, 0x1, 0xfe5986d2), at 0xff3bbe6c
  [4] elf_bndr(0x84d, 0xff391d38, 0xfe5c2124, 0xfe5986d2, 0xff3f42f0, 0x0), at 0xff3d207c
  [5] elf_rtbndr(0xfe5c2124, 0xfe6c3800, 0x1c00, 0x0, 0x0, 0x0), at 0xff3b84fc
  [6] 0xfe6bf3c4(0x0, 0x1cc4, 0xfe6c3800, 0xfe6c5180, 0xff352a00, 0x1c00), at 0xfe6bf3c4
  [7] _exithandle(0xfe6c5400, 0xfe6c3800, 0x1c00, 0x0, 0x0, 0x0), at 0xfe5c2124
  [8] exit(0x0, 0xffbfbe4c, 0xffbfbeb4, 0x139800, 0xff350100, 0x0), at 0xfe5b0550
4

2 に答える 2

0

SEGV未定義メモリへのアクセスを示します。elf_find_sym で発生しました。デバッグ シンボルが含まれている場合、ダンプは行番号を示します。

<files>... を使用gcc -g して、デバッグ シンボルと行番号情報を含めます。

于 2010-02-12T06:52:43.673 に答える
0

適切なスタックは、クラッシュの原因を突き止めるのに役立ちます。このコアが Solaris プラットフォームで生成され、別のシステムで生成されたコアを分析しているとします。

その場合、コアが生成された環境からすべての依存ライブラリを収集するとよいでしょう。それらをローカルに抽出し、dbx の pathmap サブコマンドを使用してローカル ディレクトリをマップします。

たとえば、ライブラリが /home/app/lib の下の障害のある環境に存在し、コアが分析されるローカル環境が /home/user/app/lib (dbx) pathmap /home/app/lib /home の下にある場合/ユーザー/アプリ/ライブラリ

そのようなパスが複数ある場合は、すべてのディレクトリをそれぞれのローカル ディレクトリにマップする必要があります。すべてのパスがマップされたら、次を実行できます

(dbx) debug executable-name corefile-name

または、試すこともできます

  • mdb デバッガー
  • コア ファイルの pstack コマンド。
于 2013-06-01T18:14:02.850 に答える