核心转储文件分析

时间:2011-02-25 09:33:14

标签: gdb coredump

在分析核心转储文件时,我需要检查的所有内容是什么? 请从头开始告诉我。

2 个答案:

答案 0 :(得分:297)

您只需要一个与生成核心的二进制文件相同的二进制文件(包含调试符号)。然后,您可以运行gdb path/to/the/binary path/to/the/core进行调试。

启动时,您可以使用bt(用于回溯)从崩溃时获取堆栈跟踪。在回溯中,每个函数调用都给出一个数字。您可以使用frame number(将数字替换为堆栈跟踪中的相应数字)来选择特定的堆栈帧。然后,您可以使用list查看该函数的代码,并使用info locals查看局部变量。您还可以使用print name_of_variable(将“name_of_variable”替换为变量名称)来查看其值。

在GDB中键入help会给你一个提示,让你看到其他命令。

答案 1 :(得分:81)

使用GDB调试coredump的步骤:

一些通用的帮助:

gdb 启动GDB,没有调试文件

gdb程序开始调试程序

gdb程序核心调试程序生成的coredump核心

gdb --help 描述命令行选项

1-首先找到生成核心文件的目录。

2-然后在目录中使用ls -ltr命令查找最新生成的核心文件。

3-要加载核心文件,请使用

corefile的gdb二进制路径

这将加载核心文件。

4-然后,您可以使用bt命令获取信息。 有关详细的回溯使用bt full

5-要打印变量,请使用print variable-namep variable-name

6-要获得有关GDB的任何帮助,请使用help选项或使用 apropos search-topic

7-使用frame frame-number转到所需的帧编号。

8-使用up ndown n命令选择帧n帧,并分别选择帧n帧。

9-要停止GDB,请使用quitq