1 cmake gdb 调试, CMakeLists.txt 设置
方法1: SET(CMAKE_BUILD_TYPE "Debug") |
方法2: project(coredumptest) 说明: |
2设置core文件大小
多线程程序中的有些错误并不是每次都能够出现的,偶尔出现一次可是很难得的,此时就需要保存错误现场,便于慢慢分析.那么就需要出现coredump的时候就能够生成和保存core文件。
2.1系统默认是不生成core文件的,只有手动输入ulimit -c xx命令才会产生core文件
ulimit -c 1024 设置core文件最大为1024k
ulimit -c unlimited 不限制core文件大小
注意ulimit -c unlimited 只在当前路径下有效,换个路径输入ulimit -c发现为0
2.2 若要永久性的生成coredump文件,在/etc/bashrc或者~/.bashrc文件中加ulimit -c unlimited
重启电脑,输入ulimit -c 输出为unlimited
3测试用例
#include <stdio.h>
int main()
{
char *ptr="linuxers.cn";
*ptr=0;
}
运行./coredumptest
发现可执行程序文件夹下生成了coredumptest core文件.
4使用gdb分析,查看堆栈情况
输入命令 gdb ./coredumptest core