gpt4 book ai didi

macos - 如何在 Mac OS X 中生成核心转储?

转载 作者:行者123 更新时间:2023-12-03 10:49:21 30 4
gpt4 key购买 nike

似乎我无法在 Mac OS X 10.6.8 中生成核心转储。

$ ulimit -c unlimited
$ ./a.out
Hello world!
Segmentation fault
$ find ~/ -type f -name core

# ls -la /cores/
total 0
drwxrwxr-t@ 2 root admin 68 24 jui 2010 .
drwxrwxr-t 31 root admin 1122 17 oct 15:52 ..

我当前的目录,我的 HOME 和/cores/仍然是空的……

最佳答案

默认情况下,崩溃报告到 .crash可以在 /Library/Logs/DiagnosticReports 中找到的文件(系统范围)和~/Library/Logs/DiagnosticReports (用户)。这些文件可以使用控制台应用程序在用户或系统报告中打开。 .crash文件为纯文本格式,应包含有关崩溃的相关信息。

为了激活完整的核心转储,请确保 /cores目录对当前用户有写权限(测试:touch /cores/test && rm /cores/test)。此外,通过以下方式确保您对核心文件大小没有任何限制:

ulimit -c unlimited

核心转储文件的名称格式为: core . PID .

如果目录是隐藏的,您可以通过以下方式显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles TRUE

您可以通过以下命令进行测试:
sleep 100 &
killall -SIGSEGV sleep

应该说是额外的 (core dumped) ,在段错误消息之后。

默认情况下,核心转储文件应在 /cores 中找到。目录。

命令示例:
$ ulimit -c unlimited
$ sleep 100 &
$ killall -SIGSEGV sleep # Then press Enter few times till below message is shown
[1]+ Segmentation fault: 11 (core dumped) sleep 100
$ ls /cores
core.13652
$ lldb -c /cores/core.*
(lldb) target create --core "/cores/core.13652"
Core file '/cores/core.13652' (x86_64) was loaded.
(lldb) bt
* thread #1, stop reason = signal SIGSTOP
* frame #0: 0x00007fffa7d13fde libsystem_kernel.dylib`__semwait_signal + 10
frame #1: 0x00007fffa7c9ab92 libsystem_c.dylib`nanosleep + 199
frame #2: 0x000000010c090002 sleep`rpl_nanosleep + 128

另见: Technical Note TN2118 - Kernel Core Dumps .

关于macos - 如何在 Mac OS X 中生成核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412156/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com