核心文件问题

时间:2010-02-12 06:41:26

标签: coredump dbx

有关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

2 个答案:

答案 0 :(得分:0)

SEGV表示可以访问未定义的内存。它发生在elf_find_sym中。如果包含调试符号,则转储将指示行号。

使用gcc -g< files> ...包含调试符号和行号信息。

答案 1 :(得分:0)

正确的堆栈有助于找出可能导致崩溃的原因。假设此核心是在Solaris平台上生成的,并且您正在分析在不同系统上生成的核心。

在这种情况下,最好从生成核心的环境中收集所有依赖库。在本地解压缩它们,并使用dbx中的pathmap子命令映射本地目录。

例如,如果/ home / app / lib下的故障环境中存在库,并且在分析核心的本地环境中存在/ home / user / app / lib (dbx)pathmap / home / app / lib / home / user / app / lib

如果有多个这样的路径,则需要将所有目录映射到相应的本地目录。映射完所有路径后,您可以运行以下

(dbx) debug executable-name corefile-name

或者您也可以尝试

  • mdb调试器
  • 核心文件上的pstack命令。