Как создавать дампы ядра в Mac OS X?

Похоже, я не могу создавать дампы ядра в 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 ..

Мой текущий каталог, мой ДОМ и / cores / остаются пустыми…

23
задан kenorb 8 September 2015 в 15:20
поделиться

1 ответ

По умолчанию о сбоях сообщается в файлах .crash, которые можно найти в /Library/Logs/DiagnosticReports (для всей системы) и ~/Library/Logs/DiagnosticReports (для пользователя). Эти файлы можно открыть с помощью приложения Console , в User или System Reports . Файлы .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

См. также: Техническое примечание TN2118 - Дампы ядра ядра .

24
ответ дан 29 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: