linux gdb调试+core dump文件生成步骤:
1.先ulimit -c查看是否允许生成core dump的文件。若输出0,则说明不允许输出,此时需要执行ulimit -c unlimited命令来设置生成的core dump文件大小不受限制,这种方式只是对当前命令行有效。
2.sudo gedit /etc/sysctl.conf命令,打开sysctl.conf文件,如下图2,添加最后一样内容(表示生成的core文件存放的路径以及格式),然后保存
或者执行下面两行命令cat /proc/sys/kernel/core_pattern
然后是echo -e “%e-%p-%t”>/proc/sys/kernel/core_pattern
3.运行命令g++ dump.cpp -o dump -g
4.运行./dump
5.此时在dump.cpp同名文件夹下生成一个core文件,如下图
6.命令行执行gdb dump dump.core.39797.1625156945
显示如下
7.命令行输入bt
显示如下
dump.cpp源文件内容如下:
#include<iostream>
using namespace std;
int main()
{
cout<<"dump core"<<endl;
*(char*)0=0;
return 0;
}