查看核心转储

max*_*tor 5 c++ coredump

我正在写一个小程序.当我运行其中一个选项时,我收到以下错误.

terminate called after throwing an instance of 'std::invalid_argument'
what():  stoi
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我查看了存储.cpp和.h文件的目录,运行后核心确实出现在那里.我用过

ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

我检查了一下

unlimit -a.
Run Code Online (Sandbox Code Playgroud)

当我在终端中运行gdb并尝试访问核心时,我得到以下响应

not in executable format: File format not recognized
Run Code Online (Sandbox Code Playgroud)

我如何看待我的核心转储,以便能看到导致它的原因?

dus*_*uff 6

要使用GDB分析核心转储,请在可执行文件之后将其作为第二个参数传递给GDB:

gdb executable core
Run Code Online (Sandbox Code Playgroud)

GDB将在转储核心时加载可执行文件的状态.您将能够检查其内存(包括堆栈回溯以及堆或堆栈中的任何数据),但将无法执行需要运行可执行文件的操作(例如步进,继续或调用函数) .