2010-02-12 82 views
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. 
[email protected] ([email protected]) program terminated by signal SEGV (no mapping at the fault address) 
0xff3be704: elf_find_sym+0x0114:  ldsb  [%l0 + %l4], %o2 
(dbx) where 
current thread: [email protected] 
=>[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 

回答

0

SEGV表示訪問未定義的內存。它發生在elf_find_sym中。如果包含調試符號,則轉儲將顯示行號。

使用gcc -g <文件> ...包括調試符號和行號信息。

+0

其實這個核心文件是在2月9日待辦事項通過創建一個在線應用程序,我們在dbx中的任何選項,包括調試符號,如果它們存在 –

+0

的dbx將使用符號。如果您不在構建應用程序,那麼Google會針對與該產品相關的此錯誤。也許別人也有麻煩了。 – wallyk

0

正確的堆棧將有助於找出可能導致崩潰的原因。假設此核心是在Solaris平臺上生成的,並且您正在分析在不同系統上生成的核心。

在這種情況下,這將有利於收集來自產生的核環境中所有的依賴庫。在本地提取它們,並使用dbx中的pathmap子命令映射本地目錄。例如,如果庫存在於/ home/app/lib下的失敗環境中,並且分析核心的本地環境位於/ home/user/app/lib下 (dbx)pathmap/home /應用程序/ lib目錄的/ home /用戶/應用/ lib目錄

如果有多個這樣的路徑,則需要被映射到相應的本地目錄中的所有目錄。一旦所有的路徑進行映射,您可以運行以下

(dbx) debug executable-name corefile-name 

另外,您也可以嘗試在覈心文件

  • mdb調試
  • 的pstack命令。