如何在MAC下创建进程Dump文件
发布网友
发布时间:2022-04-24 17:48
我来回答
共1个回答
热心网友
时间:2022-05-03 02:22
第一步,需要打开这个设置。
用chenconodeskcom:~ chencon$ ulimit -c
unlimited
来查看,显示0表示关闭
chenconodeskcom:~ chencon$ ulimit -c unlimited
来打开,但是这个只在当前窗口有效果。如果需要变成系统全局设置。
就需要去改/etc/profile文件,打开,然后加上上面这行。就可以了,这样当产生Crash的时候就会自动产生mp文件。
上面/etc/profile这文件通常是只读的,右键Get Info(显示简介)可以显示权限设置,在最后一个分类里。共享与权限,修改就可以了。
之后需要配置一下mp产生的规则和路径
sudo sysctl kern.corefile=/cores/core.%N.%P
其中%N表示进程名字,%P表示进程id。Linux还有%S,%T分别表示最后一个信号和时间,在MAC上没找到对应的。
最后如何用lldb来查看一个core mp文件
在命令行中,需要输入
chenconodeskcom:~ chencon$ lldb -c /cores/core.Conan.52661
(lldb) target create --core "/cores/core.Conan.52661"
warning: (x86_64) /cores/core.Conan.52661 load command 115 LC_SEGMENT_64 has a fileoff + filesize (0x21c49000) that extends beyond the end of the file (0x21c48000), the segment will be truncated to match
warning: (x86_64) /cores/core.Conan.52661 load command 116 LC_SEGMENT_64 has a fileoff (0x21c49000) that extends beyond the end of the file (0x21c48000), ignoring this section
Core file '/cores/core.Conan.52661' (x86_64) was loaded.
(lldb) command source -s 1 '/Users/chencon/./.lldbinit'
warning: failed to set breakpoint site at 0x7fff668dc000 for breakpoint 2.1: error: mach-o-core does not support enabling breakpoints
(lldb) bt
* thread #1: tid = 0x0000, 0x000000010729fb8e Conan`main(argc=1, argv=0x00007fff58960a90) + 30 at main.cpp:24, stop reason = signal SIGSTOP
* frame #0: 0x000000010729fb8e Conan`main(argc=1, argv=0x00007fff58960a90) + 30 at main.cpp:24
frame #1: 0x00007fff9143d5ad libdyld.dylib`start + 1