Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
DTrace предоставляет возможность записи динамического дампа из сценария D с помощью lkd(). Файлы дампа памяти используются для отладки сложных проблем в Windows с помощью отладчика Windows. Дополнительные сведения см. в разделе "Анализ файлов аварийного дампа с помощью WinDbg". Чтобы скачать отладчик, см. статью "Скачать и установить отладчик Windows WinDbg".
Функция «живого дампа» в DTrace предоставляет возможность инициировать дамп в точной точке, где произошла ошибка. Например, ошибка может быть функцией, возвращающей ошибку. Вы можете использовать DTrace для перехвата этой функции и активации динамического дампа, когда возвращаемое значение равно "error".
Замечание
DTrace поддерживается в инсайдерских сборках Windows после версии 18980 и Windows Server сборке 18975.
Общие сведения о работе с DTrace в Windows см. в разделе DTrace.
Использование динамического дампа DTrace
Использование: lkd (параметр);
Следующие параметры можно задать для изменения сведений, включенных в динамический мини-дампа.
0x0 — полный дамп ядра (значение по умолчанию)
0x1 — пользовательские страницы и страницы ядра (работает только с подключением KD)
0x2 - Minidump
0x4 - Hyper-V страницы + страницы ядра)
0x5 — страницы пользователя, ядра и гипервизора.
Пример кода динамического дампа
#pragma D option destructive
inline uint32_t STATUS_UNSUCCESSFUL = 0xc0000001UL;
syscall:::return
{
this->status = (uint32_t)arg0;
if (this->status == STATUS_UNSUCCESSFUL)
{
printf ("Return value arg0:%x \n", this->status);
printf ("Triggering LiveDump \n");
lkd(0);
exit(0);
}
}
Сохраните файл как livedumpstatuscheck.d.
Откройте командную строку от имени администратора и запустите скрипт с помощью параметра -s.
C:\Windows\System32>dtrace -s livedumpstatuscheck.d
dtrace: script 'livedumpstatuscheck.d' matched 1881 probes
dtrace: allowing destructive actions
CPU ID FUNCTION:NAME
0 93 NtAlpcSendWaitReceivePort:return Return value arg0:c0000001
Triggering LiveDump
Созданный файл дампа обычно находится в C:\Windows\LiveKernelReports.
Если расположение файла дампа было изменено, значение хранится в этом разделе реестра: hklm\system\currentcontrolset\control\crashcontrol\livekernelreports
Используйте WinDbg для работы с файлом дампа, как описано выше.
Устранение неполадок
Просмотр событий, связанных с оперативным дампом
Откройте Просмотр событий Windows: перейдите в "Журналы приложений и служб"->Microsoft->Windows->Kernel-Livedump->Operational
Если вы не нашли журналы, включите канал аналитики из командной строки или средства просмотра событий, как описано ниже.
Включение канала аналитики из командной строки
Используйте эту команду, чтобы включить аналитический канал из командной строки администратора.
wevtutil sl Microsoft-Windows-Kernel-LiveDump/Analytic /e:true
Включение канала аналитики с помощью средства просмотра событий
Запуск средства просмотра событий Windows
Щелкните "Просмотр" и установите флажок "Показать журналы аналитики и отладки". Это отобразит аналитический канал для livedump.
Щелкните правой кнопкой мыши и включите Microsoft-Windows-Kernel-LiveDump/Analytic.
Включение полных динамических дампов
Эти примеры параметров ниже демонстрируют установку максимального числа полных дампов, которые могут храниться на диске одновременно, равного 10, и обеспечивают сохранение полных дампов памяти, а не только мини-дампов.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v FullLiveReportsMax /d 10
reg add "HKLM\System\CurrentControlSet\Control\CrashControl" /f /t REG_DWORD /v AlwaysKeepMemoryDump /d 1
Дополнительные сведения об этих параметрах см. в разделе "Параметры WER".
Отключение регулирования
Регулирование — это функция, которая предотвращает, чтобы дампы и система ведения журнала влияли на нормальное функционирование Windows. Эта функция может препятствовать созданию динамических дампов в определенных средах с ограниченными ресурсами.
Проверьте параметры регулирования динамического дампа и при необходимости повторите попытку, отключив регулирование, задав ключи SystemThrottleThreshold и ComponentThrottleThreshold равным нулю, как показано здесь.
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v SystemThrottleThreshold /d 0
reg add "HKLM\System\CurrentControlSet\Control\CrashControl\FullLiveKernelReports" /f /t REG_DWORD /v ComponentThrottleThreshold /d 0
Проблемы с местом на диске (Код события 202 -Error Текст: API записи данных отложенного дампа в режиме реального времени завершен. Состояние NT: 0xC000007F.)
Это означает, что дисковое пространство недостаточно. Обновите указанный ниже раздел реестра, чтобы изменить путь для создания оперативного дампа, например, на диск d:, где доступно дополнительное свободное место.
reg add hklm\system\currentcontrolset\control\crashcontrol\livekernelreports /v "LiveKernelReportsPath" /t reg_sz /d "\??\d:\livedumps"
Эта команда задает корневой путь динамического дампа на d:\livedumps в качестве примера.
Не создавайте папку вручную, как она управляется операционной системой и будет создана при активации дампа с соответствующими разрешениями.