文章目录
- Dump
- 概念解析
- Dump文件的生成
- gdb
- 使用gdb
- 操作
Dump
概念解析
dump 译为 “转储”,在计算机中可以从动词和名词两个角度理解。
- 动词:程序运行时候,CPU,内存,IO等数据都是动态的,因此想要获得这些信息,我们需要去将某个时间的动态信息,记录下来,这个过程就叫“转储”
- 名词:便是获得到的这样的静态文件,便称之为dump文件,常用于调试
Dump文件的生成
-
任务管理器taskmgr
相关进程右键,选择“创建转储文件”即可
-
linux产生Core dump文件
-
ulimit -c 查看当前的core dump是否开启,0为关闭。
-
开启core dump
-
ulimit -c unlimited 开启(当前终端生效)
-
/etc/security/limits.conf—>追加* soft core unlimited(永久生效)
-
-
修改保存路径(默认为可执行文件所在的目录下)
echo “/tmp/corefile-%e-%p-%t” > /proc/sys/kernel/core_pattern
-
gdb
使用gdb
gcc -g hello.c -o hello
-g
“-g” 标志是对程序进行调试性编译时常用的选项,我们需要给每一个需要调试的源文件都加上这个选项,它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。
加上-g选项以后,gcc在编译是会做以下额外的操作:
创建符号表,符号表包含了程序中使用的变量名称的列表。
关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。
操作
可见《gdb调试手册》