美文网首页
Mac coredump文件

Mac coredump文件

作者: 苍眸之宝宝 | 来源:发表于2022-03-03 11:18 被阅读0次

简介:

coredump是指当程序出错而异常中断时,OS会把程序工作的当前状态存储成一个coredunmp文件。

一般情况下,coredunmp文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等;通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决。

coredump的生成:

1.查询coredump是否开启生成状态
命令:
ulimit -c
0表示不会产生coredump文件

2.设置coredump开启生成状态
命令:
sudo sysctl kern.coredump=1
按下Enter键后,需要输入开机密码,直接输入,完成后Enter结束

3.设置文件大小
命令:
ulimit -c unlimited
ulimit -c size
ulimit表示coredump文件大小无限制;size(单位是blocks,一般1block=512bytes)表示最大文件上限,注意size太小会无法生成该文件

4.设置coredump的路径及其权限
命令:
sudo mkdir /cores
sudo chown root:admin /cores
sudo chmod 1775 /cores
sudo chmod o+w /cores

5.添加可以崩溃的代码文件

# include <cstdio>
# include <cstdlib>

int main(void) {
    int * pI = NULL;
    *pI = 0;
    return 0;
}

6.编译文件:
命令:
g++ -g fileName -o targetFileName
例如:g++ -g test_coredump.cpp -o test
test_coredump.cpp为代码文件,test为编译后的文件;注意:需要cd到需要编译文件的文件夹下,否则提示找不到要编译的文件

7.查看编译后当前文件夹文件:
命令:
ls -l
输出:

total 48
-rwxr-xr-x  1 anniekidsgood  staff  16800  3  3 10:46 test
drwxr-xr-x  3 anniekidsgood  staff     96  3  3 10:46 test.dSYM
-rw-r--r--@ 1 anniekidsgood  staff    107  3  2 17:58 test_coredump.cpp

其中,test为可执行文件

8.执行可执行文件:
命令:
./fileName
例如:./test
输出:

segmentation fault (core dumped)  ./test

查看/cores文件夹,多出一个文件core.12895

查看命令:
ls -lh /cores
输出:

total 7304904
-r--------  1 anniekidsgood  admin   3.5G  3  3 10:51 core.12895

9.调试core文件
命令:
lldb -c /cores/coreFileName
例如:lldb -c /cores/core.12895
输出:

(lldb) target create --core "/cores/core.12895"
Core file '/cores/core.12895' (x86_64) was loaded.

命令:
bt
输出堆栈信息:

* thread #1, stop reason = signal SIGSTOP
  * frame #0: 0x000000010c993fa9 test`main at test_coredump.cpp:6:9
    frame #1: 0x00000001154624fe dyld`start + 462

参考链接:
coredump详解

相关文章

  • Mac coredump文件

    简介: coredump是指当程序出错而异常中断时,OS会把程序工作的当前状态存储成一个coredunmp文件。 ...

  • Linux 崩溃捕获 crash-handler

    Linux 应用在崩溃后,能产生 coredump 文件,可以通过 gdb 分析崩溃原因,但 coredump 文...

  • 如何在mac上分析coredump文件

    首先 开启 ulimit -c unlimited. 2:gcc -g 编译文件。 3:运行程序。当段错误发生时,...

  • mac os打开coredump生成文件

    一、sysctl kernel.coredump=1。这个必须先设上,不然后面的操作会无效。网上搜的那些资料统统都...

  • CoreDump设置方式

    本文讲述利用coredump调试时,对coredump信息相关的设置方式。 设置core文件大小 列出所有资源的限...

  • 生成coredump文件

    1、ulimit 限制可以用 ulimit 命令设置允许生成的core文件大小,默认值是0表示不能生成core文件...

  • 嵌入式开发 - GDB调试Coredump问题

    这里介绍如何用Coredump文件查找崩溃的位置,使用的工具是gdb。另外一种调试Coredump问题的方便的办法...

  • gdb 查看coredump文件

    linux编程中往往遇到segment fault段错误,定位到错误位置对解决问题有很大帮助,如果要生成core文...

  • Android Stability - crash 和 ramd

    跟coredump文件一样,ramdump文件也是内存转储文件,但是ramdump文件更大,因为它几乎是对整个物理...

  • Docker调试手段

    1、触发docker生成coredump文件 使用gcore -p pid -o dumpfile 常规情况下因为...

网友评论

      本文标题:Mac coredump文件

      本文链接:https://www.haomeiwen.com/subject/ajuyrrtx.html