GDB调试之Core dump分析(二十五)
一、核心转储coredump基础
Linux core dump:一般称之为核心转储、内核转储,我们统称为转储文件。是某个时刻某个进程的内存信息映射,即包含了生成转储文件时该进程的整个内存信息以及寄存器等信息。转储文件可以是某个进程的,也可以是整个系统的,可以是进程活着的时候生成的,也可以是进程或者系统崩溃的时候自动生成的。为活着的进程创建core dump文件一般可以通过gdb来生成,使用gdb把进程attach进来以后,执行generate-core-file或者gcore命令来生成core dump文件。
为正在运行的程序生成core dump文件:
如何让程序崩溃的时候自动生成core dump文件?
比如Ubuntu 18.04:
- ulimit -c
- cat /proc/sys/kernel/core_pattern
比如 Ubuntu 20.04
- cat /proc/sys/kernel/core_pattern
- ulimit -c
调试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <thread> #include <iostream> #include <vector> #include <mutex> #include <cstring> using namespace std; int main() { int *p = 0; *p = 10; return 0; } |
崩溃时生成的core dump文件:
core dump文件分析:
分类:
GDB调试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?