Это руководство о том, как настраивать и читать файлы минидампа при появлении 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».