Учебное пособие по минидампу Windbg — настройка и чтение файлов минидампа

Это руководство о том, как настраивать и читать файлы минидампа при появлении BSOD (синего экрана смерти) для получения дополнительной информации о причине проблемы. Первое есть первое. Загрузите новейшие средства отладки с веб-сайта Microsoft.

Затем перейдите в «Начать/Начать поиск». введите я

Команда команда.

Затем измените каталоги на:

C: Средства отладки файлов для Windows (x86)

с помощью команды:

cd c:средства отладки программных файлов для Windows (x86)

Буквы не чувствительны к регистру при использовании CD Команда.

Затем введите:

windbg.exe zc:windowsminidumpmini06190901.dmp c «!анализ v»

Ваш файл минидампа находится в папке C:WindowsMinidumpMini06200901.dmp. Это будет «MiniMMDDYY01.dmp».

НЕПРАВИЛЬНЫЕ СИМВОЛЫ ЯДРА. ПОЖАЛУЙСТА, ИСПРАВЬТЕ СИМВОЛЫ, ЧТОБЫ АНАЛИЗИРОВАТЬ

Если вы видите ошибку где-то в результатах анализа проверки ошибок, например:

Символы ядра НЕ ДЕЙСТВИТЕЛЬНЫ. Исправьте символы, чтобы выполнить анализ.

Тогда вы, скорее всего, используете предыдущие и несовместимые символы или поврежденные файлы, или у вас нет правильных символов в указанном месте, когда Windbg пытался проанализировать файл минидампа. Итак, что я сделал, так это открыл Windbg, расположенный в C:\Program FilesDebugging Tools для Windows (x86) (в Vista, и я полагаю, что это то же место для XP).

УСТАНОВКА ПУТИ К ФАЙЛУ СИМВОЛОВ С ПОМОЩЬЮ КОМАНДНОЙ СТРОКИ WINDBG:

Это важный шаг, поэтому убедитесь, что файл пути символов установлен правильно, чтобы вы не получили сообщение о том, что символы ядра НЕ ДЕЙСТВИТЕЛЬНЫ или другие типы ошибок. Теперь установите путь к файлу символов (путь к файлу/файлу символов):

SRVe:символы[path to microsoft symbols path]

Однако по какой-то причине я обнаружил, что для установки пути к файлу символов в поле «Путь к файлу/символу» его нельзя изменить непосредственно в поле «Путь к файлу/символу». Итак, я обнаружил, что вам нужно изменить его через командное окно Windbg, выбрав:

«Просмотр/команда»

В нижней части командного окна рядом с приглашением «kd>» введите следующее:

.sympath SRVe: символы[path to microsoft symbols path].

Часть между двумя звездочками () — это место, где символы будут загружаться с серверов Microsoft. Он довольно большой (около 22 МБ), поэтому убедитесь, что у вас достаточно места на диске.

УСТАНОВКА СИМВОЛИЧЕСКОГО ПУТИ К ФАЙЛУ В ПЕРЕМЕННОЙ ОКРУЖАЮЩЕЙ СРЕДЫ:

Кроме того, вы можете установить его в переменной среды либо в системной переменной среды, либо в переменной среды пользователя. Для этого нажмите КЛЮЧ WINDOWS+e. КЛАВИША WINDOWS — это клавиша справа от ЛЕВОЙ клавиши CTRL на клавиатуре. Это откроет проводник Windows.

Затем нажмите «Дополнительные параметры системы» в левом верхнем углу окна. Этот шаг предназначен только для Vista. Для пользователей XP просто щелкните вкладку «Дополнительно».

Затем нажмите кнопку «Переменная среды» в нижней части окна.

Затем нажмите кнопку «Создать» в разделе «Системные переменные». Опять же, вместо этого вы можете создать среду как пользовательскую переменную среды.

В поле «Имя переменной» введите:

_NT_SYMBOL_PATH

В типе «Значение переменной»:

symsrvsymsrv.dlle: символы[path to microsoft symbols path]

Если вы установите путь к файлу символов в качестве переменной системной среды, я думаю, вам может потребоваться перезагрузить компьютер, чтобы он вступил в силу.

ВЫВОД КОМАНДЫ WINDBG

Вот результат моего сбоя:

Отладчик Microsoft(R) Windows версии 6.11.0001.404 X86

Авторское право (c) Корпорация Microsoft. Все права защищены.

Загрузка файла дампа [c:windowsminidumpmini06260901.dmp]

Файл мини-дампа ядра: доступны только регистры и трассировка стека.

Путь поиска символа: SRVe:symbols[path to microsoft symbols]

Исполняемый путь поиска:

Windows Server 2008/Windows Vista Kernel Version 6001 (Service Pack 1) MP (2%) Бесплатная совместимость с x86

Продукт: WinNt, Пакет: TerminalServer SingleUserTS Personal

Создан: 6001.18226.x86fre.vistasp1_gdr.0903021506

Имя машины:

База ядра = 0x8201d000 PsLoadedModuleList = 0x82134c70

Время сеанса отладки: пятница, 26 июня, 16:25:11.288 2009 г. (GMT7).

Время безотказной работы системы: 0 дней 21:39:36.148

Загрузка символов ядра

…………………………………………. … ……………………….

…………………………………………. … …………………….

…………………………………………. … ………….. ………

Загрузка пользовательских символов

Загрузка незагруженного списка модулей

………………………………..

Анализ ошибок

Используйте команду !analyze v для получения подробной информации об отладке.

Ошибка проверки A, {8cb5bcc0, 1b, 1, 820d0c1f}

Не удалось загрузить образ SystemRootsystem32DRIVERSSymIMv.sys, ошибка Win32 0n2

ПРЕДУПРЕЖДЕНИЕ. Отметка времени SymIMv.sys не может быть проверена.

ОШИБКА: загрузка модуля завершена, но символы для SymIMv.sys не могут быть загружены

Не удалось загрузить образ SystemRootsystem32DRIVERSNETw3v32.sys, ошибка Win32 0n2

ПРЕДУПРЕЖДЕНИЕ. Не удалось проверить временную метку файла NETw3v32.sys.

ОШИБКА: загрузка модуля завершена, но не удалось загрузить символы для NETw3v32.sys

Обработка исходной команды «!analyze v»

Вероятная причина: tdx.sys ( tdx!TdxMessageTlRequestComplete+94 )

Продолжение: владелец машины

0: kd> !анализировать v

Анализ ошибок

IRQL_NOT_LESS_OR_EQUAL (а)

Была предпринята попытка доступа к страничному (или полностью недействительному) адресу в

слишком высокий уровень запроса на прерывание (IRQL). Обычно это

вызвано тем, что драйверы используют неправильные адреса.

Если доступен отладчик ядра, загрузите трассировку стека.

Аргументы:

Arg1: 8cb5bcc0, ссылка на память

Арг2: 0000001b, IRQL

Arg3: 00000001, битовое поле:

бит 0: значение 0 = операция чтения, 1 = операция записи

бит 3: значение 0 = операция не выполняется, 1 = операция выполняется (только в системах, поддерживающих этот уровень состояния)

Arg4: 820d0c1f, адрес ссылки на память

Детали отладки:

WRITE_ADDRESS: GetPointerFromAddress: невозможно прочитать с 82154868

Не удалось прочитать память MiSystemVaType по адресу 82134420

8cb5bcc0

CURRENT_IRQL: 1b

FAULTING_IP:

nt!KiUnwaitThread+19

820d0c1f 890a mov iwd ptr [edx]бывший

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0xA

PROCESS_NAME: Система

TRAP_FRAME: 4526c4 (.trap 0xffffffff4526c4)

Код ошибки = 00000002

eax=85c5d4d8 ebx=00000000 ecx=8cb5bcc0 edx=8cb5bcc0 esi=85c5d420 edi=ed9c7048

eip=820d0c1f esp=452738 ebp=45274c iopl=0 nv up ei pl nz до полного nc

cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206

nt!KiUnwaitThread+0x19:

820d0c1f 890a mov iwd ptr [edx]ecx ds:0023:8cb5bcc0=?????????

Сброс диапазона по умолчанию

LAST_CONTROL_TRANSFER: с 820d0c1f на 82077d24

СТЕК_ТЕКСТ:

4526c4 820d0c1f badb0d00 8cb5bcc0 87952ed0 нт!KiTrap0E+0x2ac

45274c 8205f486 00000002 85c5d420 ed9c7048 nt!KiUnwaitThread+0x19

452770 8205f52a ed9c7048 ed9c7008 00000000 нт! KiInsertQueueApc+0x2a0

452790 8205742b ed9c7048 00000000 00000000 нт! KeInsertQueueApc+0x4b

4527c8 8f989cd0 e79e1e88 e79e1f70 00000000 нт!IopfCompleteRequest+0x438

4527e0 8a869ce7 00000007 00000000 00000007 tdx!TdxMessageTlRequestComplete+0x94

452804 8a869d33 e79e1f70 e79e1e88 00000000 TCPIP! Удпендсендмессажес+0xfa

45281c 8a560c7f e79e1e88 00000001 00000000 TCPIP! UdpSendMessagesDatagramsComplete+0x22

STACK_COMMAND: КБ

FOLLOWUP_IP:

тдкс! TdxMessageTlRequestComplete+94

8f989cd0 6804010000 нажать 104ч

SYMBOL_STACK_INDEX: 5

SYMBOL_NAME: спасибо! TdxMessageTlRequestComplete+94

FOLLOWUP_NAME: владелец машины

ИМЯ_МОДУЛЯ: тдх

IMAGE_NAME: tdx.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 479190ee

FAILURE_BUCKET_ID: 0xA_tdx! TdxMessageTlRequestComplete+94

BUCKET_ID: 0xA_tdx! TdxMessageTlRequestComplete+94

Продолжение: владелец машины

Похоже на набор иероглифической чепухи. Однако, если вы присмотритесь, вы сможете лучше понять возможную проблему или ее причину. PROCESS_NAME – система, предлагающая системный процесс. MODULE_NAME — это tdx.

ВЫВОД КОМАНДЫ KD: LMVM TDX

Для меня tdx был кликабельным, который выполняет команду:

kd> lmvm tdx

как команда kd. «lm» в «lmvm» — это загруженный модуль. «В» заполнено. Буква «м» означает совпадение с образцом. В руководстве по отладчику chm это указано как:

м Узор

Указывает шаблон, которому должно соответствовать имя модуля. Шаблон может содержать различные подстановочные знаки и спецификаторы. Дополнительные сведения о синтаксисе этой информации см. в разделе Синтаксис строк с подстановочными знаками.

Вы можете найти много информации в руководстве по chm, скачав windbg с веб-сайта Microsoft. Он будет находиться здесь:

C:Program FilesDebugging Tools for Windows (x86)debugger.chm

Вывод вышеуказанной команды:

0: kd > lmvm tdx

имя начального конечного модуля

8f97f000 8f995000 tdx (символы pdb) c:Program FilesDebugging Tools for Windows (x86)symtdx.pdbCFB0726BF9864FDDA4B793D5E641E5531tdx.pdb

Файл изображения загруженного символа: tdx.sys

Файл изображения с отображением памяти: c:Program FilesDebugging Tools for Windows (x86)symtdx.sys479190EE16000tdx.sys

Путь к изображению: SystemRootsystem32DRIVERStdx.sys

Имя изображения: tdx.sys

Отметка времени: пятница, 18 января 2008 г., 21:55:58 (479190EE)

Контрольная сумма: 0001391F

Размер изображения: 00016000

Версия файла: 6.0.6001.18000

Версия продукта: 6.0.6001.18000

Флаги файлов: 0 (маска 3F)

Файл операционной системы: 40004 NT Win32

Тип файла: 3.6 Драйвер

Дата файла: 00000000.00000000

Переводы: 0409.04b0

Название компании: Корпорация Майкрософт

Название продукта: Операционная система Microsoft® Windows®

Внутреннее имя: tdx.sys

Оригинальное имя файла: tdx.sys

Версия продукта: 6.0.6001.18000

Версия файла: 6.0.6001.18000 (longhorn_rtm.0801181840)

Описание файла: Драйвер перевода TDI

Официальные уведомления. Авторские права: © Microsoft Corporation. Все права защищены.

Так мы собираем больше информации. Кто производитель модуля и возможная причина проблемы.

Я смотрю STACK_TEXT, и там есть ссылки на tcpip и NETIO, которые, кажется, намекают на проблему с сетью. Поэтому я искал других с BSOD и проблемой tdx.sys, и нашел решение этой проблемы. Однако БОЛЬШОЕ предостережение: не загружайте патч, если эта конкретная проблема не относится к вам. Корпорация Майкрософт предлагает использовать процедуры Центра обновления Майкрософт для устранения всех исправлений.

Для ссылки на исправление проблемы с сетью Google «Исправление 934611 Microsoft».

Я не скачивал этот патч, но решил обновить свой пакет обновлений. Vista в настоящее время находится в Service Pack 2. У меня был только Service Pack 1. Так что я посмотрю, решит ли это проблему.

Чтобы проверить, какой пакет обновления у вас установлен и какая разрядная версия (32-разрядная или 64-разрядная), перейдите по ссылке:

«Пуск/Компьютер». Щелкните правой кнопкой мыши «Компьютер», а затем нажмите «Свойства». Вы увидите информацию о пакете обновления под заголовком «Выпуск Windows». Под заголовком «Система» (примерно на полпути вниз по странице) вы увидите «Тип системы:», который будет отображать, установлена ​​ли у вас 32-разрядная или 64-разрядная версия.

Чтобы получить Vista Service Pack 2, введите в Google «sp2 Vista Microsoft».

Оцените статью
( Пока оценок нет )
Товары из Китая: обзоры и советы