我正在RHEL6.1上使用最新版本的dbxtool(Solaris Studio)。
我正在使用他们的示例代码完成教程示例here,但是当尝试在生成的核心文件上运行dbxtool时,我得到了以下信息:
(dbx) cd /users/rory/Desktop/debug_tutorial
(dbx) debug /users/rory/Desktop/debug_tutorial/a.out core.a.out.10665
Reading a.out
dbx: warning: The corefile was truncated.
It should have been 1765376 bytes long (is only 483328)
Because of this, some functionality will be missing from dbx.
(See `help core')
core file header read successfully
Reading ld-linux-x86-64.so.2
Reading libstdc++.so.6
Reading libm.so.6
Reading libgcc_s.so.1
Reading libc.so.6
program terminated by signal SEGV (Segmentation fault)
dbx: core file read error: address 0x3faff579bc not available
dbx: attempt to fetch registers failed - stack corrupted
第一个警告是核心文件被截断(应该是1765376字节长(只有483328字节)),但是我能够在同一个目录中生成其他大小更大的核心文件,所以不确定为什么要截断这个核心文件?
我还完成了关于删除核心大小文件限制的教程here,但没有成功。
最佳答案
这是RH6(CR 7077948)上的已知dbx问题。如果数据段的内存大小大于elf头中的文件大小(p_filesz),则核心文件大小计算错误。这个问题已经在dbx 7.9中确定并修复。