核心转储文件分析
在分析核心转储文件时我需要检查哪些内容?
请从头开始告诉我。
What are all the things I will need to check while analyzing a core dump file?
Please tell me from scratch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您只需要一个与生成核心转储文件的二进制文件相同的二进制文件(包含调试符号)。然后你可以运行
gdb path/to/the/binary path/to/the/core/dump/file
来调试它。当它启动时,您可以使用
bt
(用于回溯)来获取崩溃时的堆栈跟踪。在回溯中,每个函数调用都会被赋予一个编号。您可以使用frame number
(将number替换为堆栈跟踪中的相应编号)来选择特定的堆栈帧。然后,您可以使用
list
查看该函数周围的代码,并使用info locals
查看局部变量。您还可以使用print name_of_variable
(将“name_of_variable”替换为变量名称)来查看其值。在 GDB 中输入
help
将给出一个提示,让您查看其他命令。You just need a binary (with debugging symbols included) that is identical to the one that generated the core dump file. Then you can run
gdb path/to/the/binary path/to/the/core/dump/file
to debug it.When it starts up, you can use
bt
(for backtrace) to get a stack trace from the time of the crash. In the backtrace, each function invocation is given a number. You can useframe number
(replacing number with the corresponding number in the stack trace) to select a particular stack frame.You can then use
list
to see code around that function, andinfo locals
to see the local variables. You can also useprint name_of_variable
(replacing "name_of_variable" with a variable name) to see its value.Typing
help
within GDB will give you a prompt that will let you see additional commands.使用 GDB 调试 coredump 的步骤:
一些通用帮助:
gdb 启动 GDB,不带调试文件
gdb 程序 开始调试程序
gdb 程序核心 调试 coredump程序生成的core
gdb --help描述命令行选项
首先找到corefile生成的目录。
然后在目录中使用
ls -ltr
命令查找最新生成的corefile。要加载核心文件,请使用
这将加载核心文件。
然后您可以使用
bt
命令获取信息。要获得详细的回溯,请使用
bt full
。要打印变量,请使用
printvariable-name
或pvariable-name
要获得有关 GDB 的任何帮助,请使用 < code>help 选项或使用
apropos search-topic
使用
frame frame-number
转到所需的帧号。使用
up n
和down n
命令分别向上选择n帧和向下选择n帧。要停止 GDB,请使用
quit
或q
。Steps to debug coredump using GDB:
Some generic help:
gdb start GDB, with no debugging les
gdb program begin debugging program
gdb program core debug coredump core produced by program
gdb --help describe command line options
First of all, find the directory where the corefile is generated.
Then use
ls -ltr
command in the directory to find the latest generated corefile.To load the corefile use
This will load the corefile.
Then you can get the information using the
bt
command.For a detailed backtrace use
bt full
.To print the variables, use
print variable-name
orp variable-name
To get any help on GDB, use the
help
option or useapropos search-topic
Use
frame frame-number
to go to the desired frame number.Use
up n
anddown n
commands to select frame n frames up and select frame n frames down respectively.To stop GDB, use
quit
orq
.