|
ВведениеЯдро Mac OS X никогда не должно паниковать, потому что, когда оно делает, оно серьезно причиняет беспокойство пользователю. Таким образом паника ядра всегда является результатом ошибки, или в коде Apple или в коде некоторого стороннего расширения ядра. Такие ошибки должны быть исследованы и разрешены. Существует много обстоятельств, при которых возможность получить дамп ядра ядра полезна.
Для помощи Вам в этих ситуациях Apple предоставляет удаленную услугу дампа ядра ядра, присутствовавшую начиная с Mac OS X 10.3 для основанных на PowerPC систем Macintosh, и начиная с Mac OS X 10.4.7 для основанных на Intel систем Macintosh. Можно сконфигурировать компьютер Mac OS X так, чтобы, когда машина паникует, она передала дамп ядра ядра к серверу через TCP/IP. Сервер дампа ядра является демоном, собирающим дамп ядра ядра от клиента и пишущим его в диск. Можно тогда проанализировать дамп ядра с помощью множества инструментов, прежде всего GDB. Существует два компонента базового дампа, серверной стороны и клиентской стороны. Серверная сторона является местом назначения файла дампа ядра, клиентская сторона включает ядро на машине, паникующей, для дампа ее ядра к серверу. Примечание: Источник для сервера дампа ядра ядра является частью Дарвина (в Это техническое примечание фокусируется на описании процесса дампа ядра через интернет-соединение. Соединение FireWire может также использоваться для передачи дампа ядра. FireWire является полезной альтернативой, когда паника ядра в клиентской системе включает встроенный драйвер Ethernet, или некоторая другая сеть кодирует таким образом, что дамп ядра не может быть отправлен через соединение Ethernet. Чтение Меня файл в FireWire SDK для Mac OS X описывает процесс установки для использования FireWire для передачи дампа ядра. Можно получить доступ к FireWire SDK от Apple Developer Hardware & Drivers - веб-страница Загрузок. Как только Вы преуспели в том, чтобы сохранить дамп ядра через соединение FireWire, можно узнать больше об анализе дампа ядра путем чтения раздела Debugging with Kernel Core Dumps. Это техническое примечание предоставляет информацию о следующих задачах.
Конфигурирование сервераПервый шаг в собирающихся дампах ядра ядра должен установить сервер дампа ядра ядра. Запустить Вас должно выбрать машину для действия как сервер, приняв во внимание следующие моменты.
WARNING: Для упрощения процесса установки, это техническое примечание предполагает, что клиент и сервер находится в надежной сети, и что Вы доверяете всем пользователям, у которых есть учетные записи на сервере. Кроме того, когда клиент паникует, это передает содержание памяти ядра к серверу в ясном. Довольно возможно, что эти данные включают уязвимую информацию. Необходимо сконфигурировать сеть (использование, например, коммутируемые концентраторы, брандмауэр или VPN) так, чтобы эти данные не могли быть замечены посторонними людьми. Для включения сервера дампа ядра ядра выполните следующие шаги:
Создание каталога дампа ядраДля запуска необходимо создать каталог, в который сервер пишет дампы ядра. Тот каталог должен быть перезаписываем программой, это выводит ядро. Самый простой способ гарантировать это состоит в том, чтобы сделать его перезаписываемым всеми. Мы рекомендуем создать этот каталог с командами, показанными в Перечислении 1. Перечисление 1: Создание каталога дампа ядра. server$ sudo mkdir /PanicDumps Password:******** server$ sudo chown root:wheel /PanicDumps server$ sudo chmod 1777 /PanicDumps Активация серверного процесса дампа ядраДля Mac OS X 10.5 и больше, отключенный launchd файл списка свойств присутствует как часть установки базовой системы. Для активации сервера использовать Перечисление 2: Активация сервера дампа ядра. server$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.kdumpd.plist Password:******** Примечание:-w параметр launchctl удаляет Можно проверить, что сервер дампа ядра активен при помощи Перечисление 3: Проверка сервера дампа ядра активна. server$ sudo launchctl list | grep kdump Password:******** - 0 com.apple.kdumpd Не может быть никакого PID, связанного с Как только Вам сконфигурировали сервер правильно, можно продолжить на следующем шаге, Конфигурируя Клиент. Конфигурирование Сервера Дампа ядра Ядра для Mac OS X до 10,5Если у Вас есть машина сервера с версией Mac OS X до 10,5, существуют различные инструкции для следования. Для машины сервера с Mac OS X 10.4, следуйте инструкциям в разделе, Конфигурируя Сервер Дампа ядра Ядра для Mac OS X 10.4.x. Для машины сервера с Mac OS X 10.3, следуйте инструкциям в разделе, Конфигурируя Сервер Дампа ядра Ядра для Mac OS X 10.3.x. Конфигурирование сервера дампа ядра ядра для Mac OS X 10.4.xПроцедура для установки сервера Дампа ядра Ядра под Mac OS X 10.4.x подобна процедуре для Mac OS X 10.5. Единственная разница - то, что launchd файл списка свойств не установлен по умолчанию, таким образом, необходимо создать его сами. Создайте launchd файл списка свойств, показанный в Перечислении 4. Эти инструкции предполагают, что Вы используете Перечисление 4: Создание Сервера launchd файл списка свойств server$ sudo cat > /tmp/com.mycompany.kdump.plist
Password: ********
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>com.mycompany.kdumpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/kdumpd</string>
<string>/PanicDumps</string>
</array>
<key>Sockets</key>
<dict>
<key>Listener</key>
<dict>
<key>SockServiceName</key>
<string>1069</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>UserName</key>
<string>nobody</string>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
</dict>
</plist>
^D
client$ ls -l /tmp/com.mycompany.kdump.plist
-rw-r--r-- 1 admin wheel 831 Sep 10 15:25 /tmp/com.mycompany.kdump.plist
client$ sudo cp /tmp/com.mycompany.kdump.plist /Library/LaunchDaemons/
Password: ********
client$ ls -l /Library/LaunchDaemons/com.mycompany.kdump.plist
-rw-r--r-- 1 root wheel 831 Sep 10 15:26 /Library/LaunchDaemons/com.mycompany.kdump.plist
Как только Вы имеете создаваемый launchd список свойств, перезапускаете систему. Серверный процесс дампа ядра должен быть активным на перезапуске. Можно проверить, что серверный процесс дампа ядра активен при помощи Перечисление 5: Проверка сервера дампа ядра активна для Mac OS X 10.4.x server$ sudo launchctl list | grep kdump Password:******** com.mycompany.kdumpd Присутствие Со сконфигурированным сервером сконфигурируйте клиент, как описано в Конфигурировании Клиента. Конфигурирование сервера дампа ядра ядра для Mac OS X 10.3.xСледуйте этим инструкциям для конфигурирования сервера Дампа ядра Ядра для Mac OS X 10.3. Эти инструкции предполагают, что Вы используете Сконфигурируйте xinetdСконфигурируйте расширенного демона интернет-сервисов, Перечисление 6: Содержание 'macosxkdump' конфигурационного файла service macosxkdump
{
disable = no
type = UNLISTED
socket_type = dgram
protocol = udp
port = 1069
user = nobody
groups = yes
server = /usr/libexec/kdumpd
server_args = /PanicDumps
wait = yes
}
Перечисление 7: Создание 'macosxkdump' файла server$ cat > /tmp/macosxkdump
service macosxkdump
{
disable = no
type = UNLISTED
socket_type = dgram
protocol = udp
port = 1069
user = nobody
groups = yes
server = /usr/libexec/kdumpd
server_args = /PanicDumps
wait = yes
}
^D
server$ ls -l /tmp/macosxkdump
-rw-r--r-- 1 quinn staff 278 14 Jul 15:25 /tmp/macosxkdump
server$ sudo cp /tmp/macosxkdump /etc/xinetd.d
Password: ********
server$ ls -l /etc/xinetd.d/macosxkdump
-rw-r--r-- 1 root wheel 278 14 Jul 15:26 /etc/xinetd.d/macosxkdump
IMPORTANT: поддержать безопасность системы, конфигурационный файл ( Сигнал xinetdНеобходимо отправить Перечисление 8: Сигнализация xinetd server$ sudo kill -HUP `cat /var/run/xinetd.pid` Password: ******** Также можно просто перезагрузить также вызывающую машину, Подтвердите конфигурациюМожно подтвердить, что все сконфигурировано правильно с помощью одного из двух методов.
Перечисление 9: Системное подтверждение журнала Jul 14 15:40:57 localhost xinetd[349]: Starting reconfiguration Jul 14 15:40:57 localhost xinetd[349]: readjusting service ssh Jul 14 15:40:57 localhost xinetd[349]: Reconfigured: new=1 old=1 dropped=0 (services) Перечисление 10: Сигнализация xinetd для дампа ее конфигурации server$ sudo kill -USR1 `cat /var/run/xinetd.pid` Password: ******** Перечисление 11: xinetd выводят подтверждение Service = macosxkdump
State = Active
Service configuration: macosxkdump
id = macosxkdump
flags = IPv4
type = UNLISTED
socket_type = dgram
Protocol (name,number) = (udp,17)
port = 1069
wait = yes
user = -2
Groups = yes
PER_SOURCE = -1
Bind = All addresses.
Server = /usr/libexec/kdumpd
Server argv = kdumpd /PanicDumps
Only from: All sites
No access: No blocked sites
Logging to syslog. Facility = daemon, level = info
Log_on_success flags = HOST PID HOST
Log_on_failure flags = HOST
running servers = 0
retry servers = 0
attempts = 0
service fd = 6
Как только Вам сконфигурировали сервер, можно сконфигурировать клиент, как описано в Конфигурировании Клиента. Конфигурирование клиентаДля включения дампов ядра ядра на клиентской машине необходимо изменить
Перечисление 12 показывает пример того, как установить Перечисление 12: Установка переменной встроенного микропрограммного обеспечения начальной-загрузки-args client$ sudo nvram boot-args="debug=0xd44 _panicd_ip=10.0.40.2" Password: ******** Необходимо перезапустить для включения этой установки. IMPORTANT: Флаги отладки подробноМожно использовать Таблица 1: флаги Отладки
Таблица 2: Полезные комбинации флага отладки
Тестирование Вашей конфигурацииКак только Вы включили сервер и сконфигурировали клиент, пора протестировать вещи удостовериться, что они работают как ожидалось. Для тестирования системы, необходимо инициировать панику ядра в клиентской системе. Две методики представлены здесь.
Инициирование паники ядра с DTraceДля Mac OS X 10.5 или позже, использовать Перечисление 13: Используя DTrace для инициирования паники в клиентской системе client$ sudo dtrace -w -n "BEGIN{ panic();}"
Инициирование паники ядра с мгновенным паническим расширением ядраДля всех версий Mac OS X это техническое примечание включает простое расширение ядра, InstantPanic, пугающий ядро, как только Вы загружаете его. Можно получить источник и двоичный файл для этого расширения ядра от раздела Downloadables. Запустите путем загрузки и разархивирования расширения ядра на рабочем столе. Загрузите расширение ядра с помощью команд, показанных в Перечислении 14. Перечисление 14: Инициирование паники путем загрузки расширения ядра 'InstantPanic' client$ cd ~/Desktop/InstantPanic/build/ client$ sudo cp -r InstantPanic.kext / Password: ******** client$ sudo kextload /InstantPanic.kext Примечание: В Перечислении 14 мы делаем копию расширения ядра как корень (использование Файл дампа ядра паники ядраКак только паника происходит, если все будет подходить, то клиент передаст дамп ядра ядра к серверу. Вы видите, что передача развивается на экране клиента (предполагающий, что Вы устанавливаете Когда передача завершена, можно перечислить Перечисление 15: дамп ядра ядра в качестве примера server$ ls -l /PanicDumps total 216872 -rw-rw---- 1 nobody wheel 300245144 Sep 19 12:51 paniclog-xnu-1228.5.20-10.0.40.7-3a061187 Имя этого файла включает версию ядра — как выведено на экран Примечание: Для Mac OS X 10.4.6 и ранее, имя файла дампа ядра не включает вспомогательную версию ядра. Раздел Debugging with Kernel Core Dumps объясняет, как можно отладить панику ядра использование файла дампа ядра. Также, если Вы установили Перечисление 16: файл журнала паники в качестве примера server$ ls -l /PanicDumps
total 216872
-rw-rw---- 1 nobody wheel 300245144 Sep 19 12:51 paniclog-xnu-1228.5.20-10.0.40.7-3a061187
server$ sudo cat /PanicDumps/paniclog-xnu-1228.5.20-10.0.40.7-3a061187
panic(cpu 0 caller 0x21058018): InstantPanic: Just add water!
Backtrace, Format - Frame : Return Address (4 potential args on stack)
0x1b38fc18 : 0x12b0fa (0x4592a4 0x1b38fc4c 0x133243 0x0)
0x1b38fc68 : 0x21058018 (0x21058053 0x0 0x2a57e38 0x2e4f4a0)
0x1b38fc88 : 0x18f24d (0x21058080 0x0 0x0 0x0)
0x1b38fcc8 : 0x18f51e (0x6f 0x1 0x2e4f4a4 0x2e4f4c0)
0x1b38fd68 : 0x147c60 (0x53b8e0 0x6f 0x1 0x2e4f4a4)
0x1b38fdb8 : 0x12d17e (0x2e4f488 0x3300790 0x1b38fdf8 0x11ee14)
0x1b38fdf8 : 0x126257 (0x2e4f400 0x2a50844 0x3338e88 0x0)
0x1b38ff08 : 0x1973dd (0x1b38ff44 0x0 0x0 0x0)
0x1b38ffc8 : 0x19f3b3 (0x33cfc34 0x0 0x1a20b5 0x2f73790)
No mapping exists for frame pointer
Backtrace terminated-invalid frame pointer 0xbffff458
Kernel loadable modules in backtrace (with dependencies):
com.apple.dts.kext.InstantPanic(1.0)@0x21057000->0x21058fff
BSD process name corresponding to current thread: kextload
Mac OS version:
9E17
Kernel version:
Darwin Kernel Version 9.4.0: Mon Jun 9 19:30:53 PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386
System model name: iMac4,1 (Mac-F42787C8)
Для получения дополнительной информации о журналах паники ядра, посмотрите Техническое примечание TN2063: Понимание и Отладка Паники Ядра. Отладка с дампами ядра ядраЕсли Вы - программист ядра, Вы можете использовать дампы ядра ядра для отладки паники ядра и зависаете. Перед запуском необходимо собрать вместе следующие полезные ресурсы.
IMPORTANT: необходимо загрузить ресурсы (Набор Отладки ядра, Дарвин xnu исходный код и другой подходящий исходный код драйвера), которые соответствуют версии ядра на клиентской машине (машина, запаниковавшая). Первый шаг к отладке с файлом ядра ядра должен открыть тот файл в GDB использование IMPORTANT: Если система, которую Вы используете для анализа дампа ядра паники ядра, использует различную архитектуру машины, чем та из клиентской системы, генерировавшей панику, необходимо включать Перечисление 17: Открытие файла ядра ядра в GDB server$ sudo gdb -c /PanicDumps/core-xnu-1228.5.20-10.0.40.7-10499ce2 Password: ******** GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct 2 04:07:49 UTC 2007) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-apple-darwin". #0 0x001ae4cd in ?? () Примечание: В Xcode 1.2 и ранее, GDB не позволяет Вам иметь пробелы в пути, который Вы предоставляете к Как Вы видите, этот след не содержит символьной информации. Можно фиксировать это путем загрузки символов ядра из Набора Отладки Ядра. Перечисление 18 показывает пример этого. Как только Вы загружаете символы ядра, след теперь намного более полезен. Перечисление 18: Загрузка символов ядра (gdb) add-symbol-file /Volumes/KernelDebugKit/mach_kernel add symbol table from file "/Volumes/KernelDebugKit/mach_kernel"? (y or n) y Reading symbols from /Volumes/KernelDebugKit/mach_kernel...Reading symbols from /Volumes/KernelDebugKit/mach_kernel.dSYM/Contents/Resources/DWARF/mach_kernel...done. done. (gdb) bt #0 Debugger (message=0x4592a4 "panic") at /SourceCache/xnu/xnu-1228.5.20/osfmk/i386/AT386/model_dep.c:786 #1 0x0012b0fa in panic (str=0x210c7053 "InstantPanic: Just add water!") at /SourceCache/xnu/xnu-1228.5.20/osfmk/kern/debug.c:274 #2 0x210c7018 in ?? () Теперь, когда у Вас есть символы, Вы - только короткий шаг далеко от отладки на уровне исходного кода. Поскольку Вы видите от кадра 1 из следа, GDB ожидает находить источник ядра в каталоге Перечисление 19: Создание символьной ссылки так, чтобы GDB мог найти источник server$ mkdir -p /SourceCache/xnu server$ ln -s ~/Desktop/xnu-1228.5.20 /SourceCache/xnu Теперь можно оглянуться назад штабель (использующий Перечисление 20: отладка на уровне исходного кода (gdb) frame 0
#0 Debugger (message=0x4592a4 "panic") at /SourceCache/xnu/xnu-1228.5.20/osfmk/i386/AT386/model_dep.c:786
warning: Source file is more recent than executable.
786 hw_atomic_sub(&debug_mode, 1);
(gdb) frame 1
#1 0x0012b0fa in panic (str=0x210c7053 "InstantPanic: Just add water!") at /SourceCache/xnu/xnu-1228.5.20/osfmk/kern/debug.c:274
warning: Source file is more recent than executable.
274 Debugger("panic");
Наконец, что не менее важно, можно использовать макросы отладки ядра на дампе ядра ядра таким же образом, Вы были бы на живом ядре. Перечисление 21 показывает, как загрузить макросы отладки ядра и выполнить два из самых полезных макросов.
Перечисление 21: макросы отладки Ядра в действии (gdb) source /Volumes/KernelDebugKit/kgmacros
Loading Kernel GDB Macros package. Type "help kgm" for more info.
(gdb) paniclog
panic(cpu 0 caller 0x21114018): InstantPanic: Just add water!
Backtrace, Format - Frame : Return Address (4 potential args on stack)
0x20ed7c18 : 0x12b0fa (0x4592a4 0x20ed7c4c 0x133243 0x0)
0x20ed7c68 : 0x21114018 (0x21114053 0x0 0x2a57e38 0x538eca0)
0x20ed7c88 : 0x18f24d (0x21114080 0x0 0x0 0x0)
0x20ed7cc8 : 0x18f51e (0x72 0x1 0x538eca4 0x538ecc0)
0x20ed7d68 : 0x147c60 (0x53b8e0 0x72 0x1 0x538eca4)
0x20ed7db8 : 0x12d17e (0x538ec88 0x5399590 0x20ed7df8 0x11ee14)
0x20ed7df8 : 0x126257 (0x538ec00 0x2a50508 0x39cf5a0 0x0)
0x20ed7f08 : 0x1973dd (0x20ed7f44 0x0 0x0 0x0)
0x20ed7fc8 : 0x19f3b3 (0x40c5e8c 0x19ecd7 0x8 0x40c5e8c)
No mapping exists for frame pointer
Backtrace terminated-invalid frame pointer 0xbffff458
Kernel loadable modules in backtrace (with dependencies):
com.apple.dts.kext.InstantPanic(1.0)@0x21113000->0x21114fff
BSD process name corresponding to current thread: kextload
Mac OS version:
9E17
Kernel version:
Darwin Kernel Version 9.4.0: Mon Jun 9 19:30:53 PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386
System model name: iMac4,1 (Mac-F42787C8)
(gdb) showallstacks
[...]
task vm_map ipc_space #acts pid proc command
0x0345182c 0x039cf5a0 0x02a50508 1 576 0x0333b4a0 kextload
thread processor pri state wait_queue wait_event
0x05358a78 0x0053b0c0 31 R
kernel_stack=0x20ed4000
stacktop=0x20ed7c18
0x20ed7c18 0x12b0fa <panic+422>
0x20ed7c68 0x21114018 <com.apple.dts.kext.InstantPanic + 0x1018>
0x20ed7c88 0x18f24d <kmod_start_or_stop+213>
0x20ed7cc8 0x18f51e <kmod_control+112>
0x20ed7d68 0x147c60 <_Xkmod_control+240>
0x20ed7db8 0x12d17e <ipc_kobject_server+247>
0x20ed7df8 0x126257 <mach_msg_overwrite_trap+752>
0x20ed7f08 0x1973dd <mach_call_munger+529>
0x20ed7fc8 0x19f3b3 <lo_mach_scall+227>
stackbottom=0x20ed7fc8
Можно узнать больше о макросах отладки ядра в документации Набора I/O. Примечание: С ядром coredumps, при исследовании потоков кроме потока прервал для записи отладчика, необходимо использовать С GDB под Mac OS X 10.4, если цель corefile была сгенерирована основанной на PowerPC системой Macintosh, необходимо дать следующую команду прежде, чем выйти
Опции дампа ядра ядраИнформация выше достаточна для потребностей большинства разработчиков получить дампы ядра паники ядра. Однако существуют опции решить некоторые сетевые проблемы.
IMPORTANT: Для использования любой из этих опций необходимо изменить встроенное микропрограммное обеспечение Конфигурирование клиента и сервера назначение портов UDPПротокол дампа ядра использует UDP на порту 1069 по умолчанию. Назначение портов конфигурируемо для всех выпусков Mac OS X на серверной стороне дампа ядра. На клиентской стороне для основанных на Intel систем Macintosh у Вас должен быть Mac OS X 10.4.7 или больше сконфигурировать пользовательское назначение портов. Для основанной на PowerPC системы Macintosh у Вас должен быть Mac OS X 10.5 или больше сконфигурировать пользовательское назначение портов. Если Вы хотите, чтобы сервер дампа ядра собрал дампы ядра от клиентов PowerPC рабочий Mac OS X 10.4 или ранее, или от основанного на Intel клиента рабочий Mac OS X 10.4.6, необходимо оставить набор присвоения порта сервера значению по умолчанию 1 069. Конфигурирование клиента назначение портов UDPДля настройки присвоения клиентского порта на 12 345 добавить Перечисление 22: Установка клиента загружает-args микропрограммную переменную для включения назначения портов client$ sudo nvram boot-args="debug=0xd44 _panicd_ip=10.0.40.2 _panicd_port=12345" Password: ******** Необходимо перезапустить для включения этой установки. Конфигурирование сервера назначение портов UDPДля Mac OS X 10.5 или больше, для настройки присвоения порта сервера, редактирование IMPORTANT: Гарантируйте что принадлежность файла и полномочия файла Для сервера дампа ядра, работающего под Mac OS X 10.4.x, для изменения назначение портов, обращаются к Перечислению 4 и изменяют Для сервера дампа ядра, работающего под Mac OS X 10.3.x, для изменения назначение портов, обращаются к Перечислению 7 и изменяют Конфигурирование использования маршрутизатора клиентаСуществуют некоторые ситуации, где Вы хотите вынудить клиент дампа ядра связаться с сервером дампа ядра с помощью определенного маршрутизатора. Эта опция существует для основанных на Intel клиентских систем с Mac OS X 10.4.7 или большим настоящим, и для основанных на PowerPC клиентов с Mac OS X 10.5 или большим настоящим. Для настройки присвоения адреса маршрутизатора клиента к 10.0.40.1 добавить Перечисление 23: Установка клиента загружает-args микропрограммную переменную для включения присвоения адреса маршрутизатора client$ sudo nvram boot-args="debug=0xd44 _panicd_ip=10.0.40.2 _router_ip=10.0.40.1" Password: ******** Необходимо перезапустить для включения этой установки. Указание интерфейса EthernetМожно вынудить систему использовать определенный порт путем установки Перечисление 24: Установка переменной встроенного микропрограммного обеспечения начальной-загрузки-args для включения kdp_match_name присвоения client$ sudo nvram boot-args="debug=0xd44 _panicd_ip=10.0.40.2 kdp_match_name=en1" Password: ******** Необходимо перезапустить для включения этой установки. Примечание: Клиент дампа ядра может только быть сконфигурирован для передачи на встроенном зашитом порту Ethernet. Нет никакой поддержки передачи дампов ядра через интерфейс AirPort, ни через сторонние интерфейсы Ethernet. Это - проблема для MacBook Air, не имеющего никакого встроенного зашитого интерфейса Ethernet. ЗаключениеСредство дампа ядра ядра является полезным средством отладки и для разработчиков расширения ядра и для пользователей с большими или сложными установками Macintosh. Используя это средство, можно получить информацию о панике ядра (и ядро зависает), где не возможно использовать отладчик ядра с двумя машинами. Дополнительные материалы для чтения
Downloadables
История версии документа
|