嵌入式Linux后台进程怎么生成CoreDump?

发布于2022-01-07 17:50:22

调试嵌入式Linux时发现前台运行的程序可以生成CoreDump而后台程序不行

1个回答
admin
网友回答2022-01-07

linux下的c程序常常会因为内存访问错误等原因造成segment fault,此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上,之后可以用gdb对core文件进行分析,查看系统发生segment fault时刻的情况。


使用ulimit -a可以查看系统core文件的大小限制 使用ulimit -c[kbytes]可以设置系统允许生成的core文件大小


例如: ulimit -c 0 不产生core文件 ulimit -c 100 设置core文件最打为100k ulimit -c unlimited 不限制core文件大小。


示例:
#includestdio.h
void main()
{
int *p =(int *)0;*p =1;
}
  1. 编译上面这段代码,gcc memory.c -g -o memory ;

  2. 执行ulimit -c 100设置core文件大小为无限制 ;

  3. 执行./memory,系统提示你segment fault并生成了core文件,接下来可以用gdb进行分析了;

  4. gdb ./memory core

嵌入式Linux后台进程怎么生成CoreDump?

回到
顶部