четверг, 30 мая 2013 г.

BSOD от флайлинка + способ поиска ошибки

Привет.

    Есть у меня старый нетбук MSI wind U90, стояла на нем Ubunt-а
решил потестить флайлинк на слабом настоящем компе с мелким разрешением
и поставил туда Win7 HB, но при запуске флая появился долгожданный синий экран смерти, 
о котором иногда пишут пользователи.

Алгоритм нахождения виновника:
(Если у вас есть аналогичные проблемы с синим экраном - попробуйте локализовать проблему подобным образом)

1. После перезапуска винда предлагает найти неисправность и по кнопке "Подробнее"
   показывает файл дампа и xml (он лежит во временном каталоге)
2. Забираем эти файлы себе у меня они имели имена
  • 052913-19968-01.dmp
  • WER-40031-0.sysdata.xml
3. Переходим на сайт http://www.osronline.com/page.cfm?name=analyze
и посылаем в окно  "Dump File" предварительно пожатый в zip
052913-19968-01.dmp
4. Получаем стек падения, по которому можно узнать какой драйвер ядра навернулся.

У меня получился вот такой стек
из которого я нашел RTL8187S - это wifi сетевуха, вероятно драйверу сносит крышу от флая
как исправить пока неизвестно - версия драйвера  последняя на сайте не обновлялась с 2010 года.


STACK_TEXT: 
8078ae14 86c8f11e 8078ae74 00000000 8078ae3c nt!ExFreePoolWithTag+0x1b1
8078ae24 8aed950d 8078ae74 00000030 00000000 ndis!NdisFreeMemory+0x16
WARNING: Stack unwind information not available. Following frames may be wrong.
8078ae3c 8aee10c4 8078ae74 00000030 8078ae7a RTL8187Se+0xa50d
8078ae6c 8aefc4ef 84a03b98 849e9126 849e9126 RTL8187Se+0x120c4
8078ae94 8aefc61c 84b03000 849e9126 84b03673 RTL8187Se+0x2d4ef
8078aeb0 8aefe8ba 84b03000 846a0008 84b03000 RTL8187Se+0x2d61c
8078aecc 8aee0543 00000080 00000000 845500e0 RTL8187Se+0x2f8ba
8078aee4 86cd889a 84b03000 00000000 8078af10 RTL8187Se+0x11543
8078af20 86c83a0f 849e3e3c 009e3e28 00000000 ndis!ndisMiniportDpc+0xe2
8078af48 81a78625 849e3e3c 849e3e28 00000000 ndis!ndisInterruptDpc+0xaf
8078afa4 81a78488 81b2bd20 842dbd48 00000000 nt!KiExecuteAllDpcs+0xf9
8078aff4 81a77c4c 87bbf984 00000000 00000000 nt!KiRetireDpcList+0xd5
8078aff8 87bbf984 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x2c
81a77c4c 00000000 0000001a 00d6850f bb830000 0x87bbf984
 

Полный файл:


Instant Online Crash Analysis, brought to you by OSR Open Systems Resources, Inc.
Show DivPrimary Analysis

Crash Dump Analysis provided by OSR Open Systems Resources, Inc. (http://www.osr.com)
Online Crash Dump Analysis Service
See http://www.osronline.com for more information
Windows 7 Kernel Version 7601 (Service Pack 1) MP (2 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS Personal
Built by: 7601.18044.x86fre.win7sp1_gdr.130104-1431
Machine Name:
Kernel base = 0x81a01000 PsLoadedModuleList = 0x81b4a4d0
Debug session time: Wed May 29 12:52:30.444 2013 (UTC - 4:00)
System Uptime: 0 days 0:02:48.147
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

BAD_POOL_CALLER (c2)
The current thread is making a bad pool request.  Typically this is at a bad IRQL level or double freeing the same allocation, etc.
Arguments:
Arg1: 00000007, Attempt to free pool which was already freed
Arg2: 0000109b, (reserved)
Arg3: 8078ae94, Memory contents of the pool block
Arg4: 8078ae74, Address of the block of pool being deallocated

Debugging Details:
------------------

TRIAGER: Could not open triage file : e:\dump_analysis\program\triage\modclass.ini, error 2

BUGCHECK_STR:  0xc2_7

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  2

LAST_CONTROL_TRANSFER:  from 86c8f11e to 81b21c6b

STACK_TEXT: 
8078ae14 86c8f11e 8078ae74 00000000 8078ae3c nt!ExFreePoolWithTag+0x1b1
8078ae24 8aed950d 8078ae74 00000030 00000000 ndis!NdisFreeMemory+0x16
WARNING: Stack unwind information not available. Following frames may be wrong.
8078ae3c 8aee10c4 8078ae74 00000030 8078ae7a RTL8187Se+0xa50d
8078ae6c 8aefc4ef 84a03b98 849e9126 849e9126 RTL8187Se+0x120c4
8078ae94 8aefc61c 84b03000 849e9126 84b03673 RTL8187Se+0x2d4ef
8078aeb0 8aefe8ba 84b03000 846a0008 84b03000 RTL8187Se+0x2d61c
8078aecc 8aee0543 00000080 00000000 845500e0 RTL8187Se+0x2f8ba
8078aee4 86cd889a 84b03000 00000000 8078af10 RTL8187Se+0x11543
8078af20 86c83a0f 849e3e3c 009e3e28 00000000 ndis!ndisMiniportDpc+0xe2
8078af48 81a78625 849e3e3c 849e3e28 00000000 ndis!ndisInterruptDpc+0xaf
8078afa4 81a78488 81b2bd20 842dbd48 00000000 nt!KiExecuteAllDpcs+0xf9
8078aff4 81a77c4c 87bbf984 00000000 00000000 nt!KiRetireDpcList+0xd5
8078aff8 87bbf984 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x2c
81a77c4c 00000000 0000001a 00d6850f bb830000 0x87bbf984


STACK_COMMAND:  kb

FOLLOWUP_IP:
RTL8187Se+a50d
8aed950d ??              ???

SYMBOL_STACK_INDEX:  2

SYMBOL_NAME:  RTL8187Se+a50d

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: RTL8187Se

IMAGE_NAME:  RTL8187Se.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  49a5fef3

FAILURE_BUCKET_ID:  0xc2_7_RTL8187Se+a50d

BUCKET_ID:  0xc2_7_RTL8187Se+a50d

Followup: MachineOwner
---------


This free analysis is provided by OSR Open Systems Resources, Inc.
Want a deeper understanding of crash dump analysis? Check out our Windows Kernel Debugging and Crash Dump Analysis Seminar (opens in new tab/window)
Hide DivCrash Code Links

View the MSDN page for BAD_POOL_CALLER
Search Google for BAD_POOL_CALLER

Hide DivLoaded Module List

start    end        module name
81814000 8181c000   kdcom    kdcom.dll  
81a01000 81e13000   nt       ntkrpamp.exe
81e13000 81e4a000   hal      halmacpi.dll
86600000 86621000   VIDEOPRT VIDEOPRT.SYS
 

1 комментарий:

Elle Solomina комментирует...

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

Для просмотра стека локально (без заливки куда либо) есть замечательная утилита BlueScreenView

Из стека видно, что драйвер крутился в обработчике аппаратного прерывания. Тут без вариантов - драйвер кривой, его надо заменить, возможно поможет прошивка самого модуля wi-fi последней версией прошивки, но как это сделать - универсальных рекомендаций - нет. :(