为什么要使用coredump
- 程序发生崩溃时能够快速定位到崩溃的地方,如除零错误,野指针,内存越界等;
如何开启coredump
在默认的情况下,coredump是关闭的,需要完成以下配置才可以开启coredump;
1、在/etc/profile中加入 ulimit -c unlimited ,确保core文件随便占据空间
2、sudo vi /etc/sysctl.conf 中配置coredump生成core核心转储文件的位置
Eg:
/home/user/coredump/core.%e.%p.%s.%E
3、重启配置文件:sudo sysctl -p /etc/sysctl.conf
如何配合gdb使用coredump进行调试用户空间的程序?
1、首先就是在编译的时候加上-g命令会生成符号表;
2、之后使用gdb配合coredump文件就可以定位错误发生在什么地方;
命令如下:
注意如果要使用gdb进行调试,那么文件需要加上-g命令;
Gdb xxx.elf xxx.coredump文件;