在分析核心转储文件时,我需要检查的所有事情是什么?
请从头开始告诉我。
您只需要一个二进制文件(包含调试符号),它与生成核心转储文件的二进制文件相同。然后你可以运行gdb path/to/the/binary path/to/the/core/dump/file来调试它。
gdb path/to/the/binary path/to/the/core/dump/file
当它启动时,你可以使用bt(用于反向跟踪)来获得崩溃时间的堆栈跟踪。在反向跟踪中,每个函数调用都有一个编号。你可以使用frame number(用堆栈跟踪中相应的数字替换数量)来选择一个特定的堆栈帧。
bt
frame number
然后你可以使用list来查看函数周围的代码,使用info locals来查看局部变量。你也可以使用print name_of_variable(用变量名替换"name_of_variable")来查看它的值。
list
info locals
print name_of_variable
在GDB中输入help会给你一个提示符,让你看到额外的命令。
help
一些通用的帮助:
广东发展银行启动GDB,没有调试文件
广东发展银行项目开始调试程序
GDB程序核心调试coredump程序生成的核心
gdb——帮助描述命令行选项
首先,找到生成corefile的目录。
然后在该目录下使用ls -ltr命令找到最新生成的corefile。
ls -ltr
加载corefile使用
gdb binary path of corefile
这将加载corefile
详细的回溯可以使用bt full。 < / p >
bt full
要打印变量,使用print variable-name或p variable-name
print variable-name
p variable-name
要在GDB上获得任何帮助,请使用help选项或使用apropos search-topic
apropos search-topic
使用frame frame-number转到所需的帧号。
frame frame-number
使用up n和down n命令分别选择第n帧向上和第n帧向下。
up n
down n
要停止GDB,使用quit或q。
quit
q