Благодарю вас! Извините, я так долго принял ваш ответ.

много страниц, которые объясняют это, но я не могу найти это. Многие из статей, которые я нахожу, работают только на El Capitan и более старых системах.

Я не могу использовать fwkpfv прямо сейчас, так как у меня нет подходящих ключей. Мой клиент получает мне подержанный MacBook, который будет поддерживать FireWire.

Мое расширение ядра паникует мой ящик. Как ни странно, если мой коллега создает мое расширение, оно работает просто отлично. Я остаюсь в замешательстве.

Ответы на вопрос(1)

Решение Вопроса

живые" локальные журналы ядра, используя команду

log stream --process 0

Для просмотра прошлых журналов используйтеlog show вместо этого, например:

log show --predicate 'processID == 0' --last 1h | less

Ничто из этого не поможет вам в панике ядра, так как ведение журнала происходит асинхронно в пространстве пользователя, поэтому вы не получите самые последние сообщения до паники.

Еще несколько вариантов отладки KP без firewire, о которых вы, вероятно, уже знаете, но я упомяну их для полноты картины:

Отладка ядра на основе Ethernet (в отличие от firewire). Только тестовое устройство нуждается в проводной / Thunderbolt Ethernet, Mac с запущенным отладчиком может быть на Wi-Fi.Часто вы можете извлечь довольно много информации из самого журнала паники: в дополнение к символике стека (используйтеkeepsyms=1 boot-arg, так что вам не нужно делать это задним числом), просмотр содержимого регистра и разборка часто могут подсказать вам значения переменных.Если вам не хватает части кода Apple, трассировки стека, запустите ядро ​​отладки или разработки вместо релизного. Они построены с меньшим количеством включенных оптимизаций, поэтому функции с меньшей вероятностью будут встроены и т. Д.Существует множество способов отладки памяти и других диагностических параметров, которые вы можете включить в ядре, например,-zp, -zc и так далее.Если вы можете воспроизвести сбой в виртуальной машине (VMWare Fusion, Parallels, VirtualBox, KVM / Qemu и т. Д.), Вы можете использовать имитированный последовательный порт виртуальной машины для регистрации выходных данных kprintf. Виртуальные порты Ethernet также, как правило, поддерживают отладку ядра, если вы правильно их настроили.
 Mike Crawford10 нояб. 2017 г., 22:45
Благодарю вас! Извините, я так долго принял ваш ответ.

Ваш ответ на вопрос