Problem
如何读取Linux操作系统核心文件
Solution
当尝试读取核心文件时,请确保它位于最初创建它的操作系统上。
如果core文件不存在,复制到这个位置:
/opt/VRTSralus/bin
file core.#### > filecoreoutput.txt
这将显示导致核心文件创建的进程。
下面是该命令的一个示例:
core.3975: setgid sticky ELF 64-bit LSB core file AMD x86-64, version 1 (SYSV), SVR4-style, from 'beremote'
如果输出的文件为core.####命令不以from 'beremote'结束,即核心文件不是由Backup Exec RALUS Agent引起的,而是由指定的进程引起的。
确保beremote没有运行。(ps -ef | grep beremote)
然后运行命令:
gdb ./beremote core.#### 2>&1 | tee /opt/VRTSralus/bin/gdb.txt
(gdb) bt
(gdb) quit
发送gdb.txt和filecoreoutput.txt文件供支持工程师分析。
下面是常用的GDB命令列表:
break [file:]function
在函数(在文件中)设置断点。
run [arglist]
启动程序(如果指定了,使用arglist)。
bt
Backtrace: 显示程序堆栈。
print expr
显示表达式的值。
c
继续运行程序(在停止之后,例如在断点处)。
next
执行下一行程序(停止后);跳过行中所有的函数调用。
edit [file:]function
查看当前停止的程序行。
list [file:]function
在程序当前停止位置附近键入程序的文本。
step
执行下一行程序(停止后);进入该行中的任何函数调用。
help [name]
显示GDB命令名信息,或GDB使用的一般信息。
quit
退出GDB。