如何产生core dump文件
首先是系统设置:
1 | ulimit -c unlimited |
将core文件的大小限制设置成无限制,当然也可以指定大小。
1 | sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t |
设置core文件的位置及格式。
其次在编译的时候打开调试模式:
1 | gcc -ggdb -o0 file.c -o bin |
运行程序,如果发生core dump,将会在/tmp下产生以core开头的文件,就是core dump文件。
举个例子:
1 2 3 4 5 6 7 8 | // file.c int main( void ) { char *p; *p = 'a' ; return 0; } |
编译:
1 | gcc -ggdb -o0 file.c -o bin |
运行
1 2 | ./bin Segmentation fault (core dumped) |
在/tmp下生成一个core文件:core-main.206270.xxx.1697612689
调试core文件
1 | gdb bin /tmp/core-bin.206270.xxx.1697612689 |
得到:
1 2 3 4 5 | Core was generated by `./main'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000aaad43140720 in main () at main.c:4 4 *p = 'a' ; (gdb) |
分类:
环境搭建
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具