在分析核心转储文件时,我需要检查的所有内容是什么? 请从头开始告诉我。
答案 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 启动GDB,没有调试文件
gdb程序开始调试程序
gdb程序核心调试程序生成的coredump核心
gdb --help 描述命令行选项
1-首先找到生成核心文件的目录。
2-然后在目录中使用ls -ltr
命令查找最新生成的核心文件。
3-要加载核心文件,请使用
corefile的gdb二进制路径
这将加载核心文件。
4-然后,您可以使用bt
命令获取信息。
有关详细的回溯使用bt full
。
5-要打印变量,请使用print variable-name
或p variable-name
6-要获得有关GDB的任何帮助,请使用help
选项或使用 apropos search-topic
7-使用frame frame-number
转到所需的帧编号。
8-使用up n
和down n
命令选择帧n帧,并分别选择帧n帧。
9-要停止GDB,请使用quit
或q
。