linux core的文件生成

调试Linux程序的时候,出现Segmentation Fault错误时可以使用core dump的机制来找出程序中出现的错误。

无论你是用Makefile来编译,还是直接在命令行手工输入命令来编译,都应该加上 -g 选项。

一般来说,在默认情况下,在程序崩溃时,core文件是不生成的(很多Linux发行版在默认时禁止生成核心文件)。所以,你必须修改这个默认选项,在命令行执行:

ulimit -c unlimited

表示不限制生成的core文件的大小。
可以临时开启这个机制,只需在命令行执行

 ulimit -c unlimited

或者编辑

vi /etc/profile
增加或者修改   ulimit -c unlimited  

运行你的程序,不管用什么方法,使之重现Segmentation Fault错误。

之后在程序的工作目录下会生成一个core文件

然后使用GDB调试

gdb  ./test  core

进入调试

(gdb) where
或者  bt
查看信息

查看core 是否开启

ulimit -c

关闭core

ulimit -c  0

你可能感兴趣的:(linux)