从核心转储中检索可执行文件

问题描述 投票:0回答:1

我想从核心转储中检索可执行文件,并且用于获取此信息的任何Linux软件包的输出应在其输出中包含execfn

到目前为止,我尝试了以下操作:

$ file kms
kms: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from '/test', real uid: 1000440000, effective uid: 1000440000, real gid: 0, effective gid: 0, execfn: '/test', platform: 'x86_64'

file命令仅适用于特定的内核,并且不是通用解决方案,因为某些内核转储会提供以下输出。

$ file ss
ss: ELF 64-bit LSB core file x86-64, version 1 (SYSV), too many program header sections (6841)

gdb命令并非对所有核心转储都以相同的方式起作用。使用gdb命令的输出不一致。 gdb命令为某些核心转储接收的输出与strings命令不同。

$gdb kms
Core was generated by `/test'.

我什至尝试过strings程序包,但我认为它提供了正确的输出,但是格式不包含execfn以便在解决方案中使用它

$ strings kms | grep ^/ | tail -1
/test

任何人都可以建议任何Linux软件包来帮助我从核心转储中检索可执行文件,该文件的输出中包含execfn

linux executable rhel coredump
1个回答
0
投票

尝试在file(1)文件上运行core(5)命令。

如果ELF可执行文件(请参阅elf(5))是用DWARF调试信息构建的,则core文件中应该有足够的信息。

DWARF调试信息是通过编译和链接程序获取的-如果程序是使用GCC(或Clang)编译的,则使用最新的gccg++gfortran,[ C0],clang命令-clang++ with(或-g ....)标志。

注意-g2。您可能需要使用GNU setrlimit(2)ulimit内置文件(请参阅bashbash(1) ...),或使用documentation of GNU bashlimit内置文件来增加zsh大小文件的限制。

如果您的交互式Unix shell是zsh(例如core)的其他内容,请务必阅读其文档。

© www.soinside.com 2019 - 2024. All rights reserved.