崩溃文件生成及调试
linux & mac
- 产生core文件方法
- 在当前环境下生成coredump文件,运行
ulimit -c unlimited
- 永久生成coredump文件,在
/etc/profile
文件中追加一行ulimit-c unlimited
- 默认coredump文件生成在当前工作目录,修改文件
/proc/sys/kernel/core_pattern
为/data/coredump/core.%e.%p
其中%e表示程序名,%p表示进程id,路径为/data/coredump目录 - 编译时要加上
-g
选项,这个才能用gdb调试的coredump linux
使用加载gdb
加载coredump文件进行调试1
2
3
4
5gdb coredumpfile
#或者
gdb execfile
#加载完成后再输入
core-file coredumpfilemac
使用lldb
加载coredump文件进行调试1
2cd /cores
lldb -c coredumpfile
- ulimit -c 显示核心转储文件大小的最大值,如果这里是零:禁止核心转储(对于本进程和它的子进程)。
- 默认情况下,
mac
core文件均存在/cores目录下,linux
core文件存在当前工作目录。- 可以通过
ulimit -c unlimited
来设置core文件生成路径。 - 可以通过
ulimit -c size
来设置core文件大小。 - 可以通过
ulimit -c 0
来禁止生成core文件。
- 可以通过
windows
windows 请查看这篇文章Windows C++ 程序崩溃收集工具