Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно


Moderator


Сообщения: 53146
Благодарности: 15423

Профиль | Отправить PM | Цитировать


Цитата sander45:
А есть где-то внятные инструкции
  1. Открываем дамп в WinDbg (Debugging Tools for Windows).
  2. Поскольку в дампе есть Unhandled exception, в качестве текущего потока уже выбран тот, в котором произошёл сбой (и нам не нужно его искать/выбирать).
  3. Начинаем с команд k или !analyze -v для определения наличия сторонних модулей в стеке перед сбоем. Нередко этого бывает достаточно. Но не в данном случае:
    Код: Выделить весь код
    0:000> k
    Child-SP          RetAddr           Call Site
    00000034`bc8f00d0 00007ff8`cc47c7e6 ntdll!RtlReportCriticalFailure+0x97
    00000034`bc8f01e0 00007ff8`cc47cab1 ntdll!RtlpHeapHandleError+0x12
    00000034`bc8f0210 00007ff8`cc419a15 ntdll!RtlpHpHeapHandleError+0x5d
    00000034`bc8f0240 00007ff8`cc38f2f1 ntdll!RtlpLogHeapFailure+0x45
    00000034`bc8f0270 00007ff8`cc39061c ntdll!RtlpFreeHeap+0xe21
    00000034`bc8f0470 00007ff8`6e327a56 ntdll!RtlFreeHeap+0x3fc
    *** WARNING: Unable to verify timestamp for MSO.DLL
    *** ERROR: Module load completed but symbols could not be loaded for MSO.DLL
    00000034`bc8f0510 00007ff8`6aaf2fd3 AcLayers!NS_FaultTolerantHeap::APIHook_RtlFreeHeap+0x416
    00000034`bc8f0570 00000161`121028b0 MSO+0x2fd3
    00000034`bc8f0578 00000000`7444088e 0x00000161`121028b0
    00000034`bc8f0580 00007ff8`6af2f5ee msvcr100!_controlfp_s+0x52
    00000034`bc8f05b0 00000161`27e78bd0 MSO+0x43f5ee
    00000034`bc8f05b8 00000034`bc8f05f0 0x00000161`27e78bd0
    00000034`bc8f05c0 00000034`bc8f05f0 0x00000034`bc8f05f0
    00000034`bc8f05c8 00007ff8`6aaf2f12 0x00000034`bc8f05f0
    00000034`bc8f05d0 00000000`00000001 MSO+0x2f12
    00000034`bc8f05d8 00000161`18d61fb0 0x1
    00000034`bc8f05e0 0008001f`0008001f 0x00000161`18d61fb0
    00000034`bc8f05e8 00000000`ffffffff 0x0008001f`0008001f
    00000034`bc8f05f0 00000034`bc8f07e0 0xffffffff
    *** WARNING: Unable to verify timestamp for EXCEL.EXE
    *** ERROR: Module load completed but symbols could not be loaded for EXCEL.EXE
    00000034`bc8f05f8 00007ff6`58cf0c97 0x00000034`bc8f07e0
    00000034`bc8f0600 00000000`0000000a EXCEL+0x370c97
    00000034`bc8f0608 00000000`ffffffff 0xa
    00000034`bc8f0610 00000161`18d61fb0 0xffffffff
    00000034`bc8f0618 00000000`00000001 0x00000161`18d61fb0
    00000034`bc8f0620 00000161`240a0240 0x1
    00000034`bc8f0628 00000000`0000000a 0x00000161`240a0240
    00000034`bc8f0630 0000046c`00000001 0xa
    00000034`bc8f0638 00000000`000000dc 0x0000046c`00000001
    00000034`bc8f0640 00000161`27e78bd0 0xdc
    00000034`bc8f0648 00000161`2420b620 0x00000161`27e78bd0
    00000034`bc8f0650 00000161`27ea2228 0x00000161`2420b620
    00000034`bc8f0658 00000161`120e2ed0 0x00000161`27ea2228
    00000034`bc8f0660 00000000`00000000 0x00000161`120e2ed0
    Тут в стеке несколько пропущенных указателей, для которых эвристический анализ WinDbg не определил их принадлежность.
  4. Соответственно, начинаем смотреть raw stack командой dps esp (здесь esp - регистр процессора, содержащий указатель стека) и продолжаем dps уже без аргументов:
    Код: Выделить весь код
    0:000> dps esp
    00000034`bc8f00d0  00000000`00000000
    00000034`bc8f00d8  00000000`c0000374
    00000034`bc8f00e0  00000000`00000001
    00000034`bc8f00e8  00007ff8`cc4d97b0 ntdll!RtlpHeapFailureInfo
    00000034`bc8f00f0  00000034`c0000374
    00000034`bc8f00f8  00000000`c0000374
    00000034`bc8f0100  00000034`bc8ef1a0
    00000034`bc8f0108  00000034`c0000374
    00000034`bc8f0110  00000034`bc8ef1a0
    00000034`bc8f0118  00000000`00000000
    00000034`bc8f0120  00000001`c0000374
    00000034`bc8f0128  00000000`00000000
    00000034`bc8f0130  00007ff8`cc474d1b ntdll!RtlReportCriticalFailure+0x97
    00000034`bc8f0138  00000000`00000001
    00000034`bc8f0140  00007ff8`cc4d97b0 ntdll!RtlpHeapFailureInfo
    00000034`bc8f0148  00007ff8`b92c5000 winspool!WPP_GLOBAL_Control
    0:000> dps
    00000034`bc8f0150  00000034`bc8f0120
    00000034`bc8f0158  00007ff8`b92ac6d8 winspool!_midl_frag1103
    00000034`bc8f0160  00000000`00000728
    00000034`bc8f0168  00007ff8`cc47c78b ntdll!RtlpGetModifiedProcessCookie+0x27
    00000034`bc8f0170  00005e4c`b7aaacc7
    00000034`bc8f0178  00000000`0000000d
    00000034`bc8f0180  00000161`27e78bc0
    00000034`bc8f0188  00000161`27e79010
    00000034`bc8f0190  00000000`00000000
    00000034`bc8f0198  00000161`241c5280
    00000034`bc8f01a0  00000000`00000020
    00000034`bc8f01a8  00007ff8`cc47f48d ntdll!RtlpReportHeapFailure+0xd
    00000034`bc8f01b0  00000161`87b78566
    00000034`bc8f01b8  00000000`00000002
    00000034`bc8f01c0  00005e4c`b7ab5747
    00000034`bc8f01c8  00000000`63006003
    0:000> 
    00000034`bc8f01d0  00000161`27e79020
    00000034`bc8f01d8  00007ff8`cc47c7e6 ntdll!RtlpHeapHandleError+0x12
    00000034`bc8f01e0  00007ff8`b92c5000 winspool!WPP_GLOBAL_Control
    00000034`bc8f01e8  00007ff8`cc4d97b0 ntdll!RtlpHeapFailureInfo
    00000034`bc8f01f0  00000000`0000000d
    00000034`bc8f01f8  00000161`120e0000
    00000034`bc8f0200  00000161`27e79020
    00000034`bc8f0208  00007ff8`cc47cab1 ntdll!RtlpHpHeapHandleError+0x5d
    00000034`bc8f0210  00000000`0000000d
    00000034`bc8f0218  00000161`27e78bd0
    00000034`bc8f0220  00000161`120e0000
    00000034`bc8f0228  00000000`00000001
    00000034`bc8f0230  00000000`00000000
    00000034`bc8f0238  00007ff8`cc419a15 ntdll!RtlpLogHeapFailure+0x45
    00000034`bc8f0240  00000161`120e0000
    00000034`bc8f0248  00000161`27e78bc8
    0:000> 
    00000034`bc8f0250  00000000`00000020
    00000034`bc8f0258  00007ff8`cc3858ba ntdll!RtlWalkFrameChain+0x2a
    00000034`bc8f0260  00000000`00000770
    00000034`bc8f0268  00007ff8`cc38f2f1 ntdll!RtlpFreeHeap+0xe21
    00000034`bc8f0270  00000000`00000000
    00000034`bc8f0278  00000034`bc8f0280
    00000034`bc8f0280  00000161`00000003
    00000034`bc8f0288  00007ff8`cc385832 ntdll!RtlCaptureStackBackTrace+0x42
    00000034`bc8f0290  00000161`2405abc0
    00000034`bc8f0298  00000000`00000000
    00000034`bc8f02a0  00000000`0000000c
    00000034`bc8f02a8  00007ff8`cc3f5ab4 ntdll!RtlValidRelativeSecurityDescriptor+0xf4
    00000034`bc8f02b0  00000000`002ba800
    00000034`bc8f02b8  00000000`6e320101
    00000034`bc8f02c0  00000161`27e79010
    00000034`bc8f02c8  00000000`00000045
    0:000> 
    00000034`bc8f02d0  00000161`241c5280
    00000034`bc8f02d8  00000161`27d5b7f0
    00000034`bc8f02e0  00000161`27d5bf30
    00000034`bc8f02e8  00000161`121417f0
    00000034`bc8f02f0  00000161`00000000
    00000034`bc8f02f8  00000001`00000770
    00000034`bc8f0300  00000000`00000000
    00000034`bc8f0308  00000161`27d5b7f0
    00000034`bc8f0310  00000000`00000000
    00000034`bc8f0318  00000034`bc8f0310
    00000034`bc8f0320  00000000`00000000
    00000034`bc8f0328  00000000`00000000
    00000034`bc8f0330  00000000`00000770
    00000034`bc8f0338  00007ff8`6e327a02 AcLayers!NS_FaultTolerantHeap::APIHook_RtlFreeHeap+0x3c2
    00000034`bc8f0340  00000000`00000001
    00000034`bc8f0348  00000161`27e78bc0
    0:000> 
    00000034`bc8f0350  00000161`27d5bf30
    00000034`bc8f0358  00000161`27d5b7f0
    00000034`bc8f0360  00007ff8`b92b1ba0 winspool!PrinterInfo2Fields
    00000034`bc8f0368  00000000`00000088
    00000034`bc8f0370  00007ff8`b9265600 winspool!DocumentPropertySheets
    00000034`bc8f0378  00007ff8`b9265c90 winspool!GetPrinterW
    00000034`bc8f0380  00007ff8`b92b8318 winspool!WPP_f85451ee3dac305a3fb1a9c21d7a8fef_Traceguids
    00000034`bc8f0388  00007ff8`b92c5000 winspool!WPP_GLOBAL_Control
    00000034`bc8f0390  00000034`bc8f04f0
    00000034`bc8f0398  00007ff8`c8b7789e KERNELBASE!LocalFree+0x2e
    00000034`bc8f03a0  00000161`27d5b7f0
    00000034`bc8f03a8  00000161`27ea2228
    00000034`bc8f03b0  00000161`26530000Unable to load image C:\Windows\System32\spool\drivers\x64\3\suhp1020.dll, Win32 error 0n2
    *** WARNING: Unable to verify timestamp for suhp1020.dll
    *** ERROR: Module load completed but symbols could not be loaded for suhp1020.dll
     suhp1020
    00000034`bc8f03b8  00000161`27d5b7f8
    00000034`bc8f03c0  00007ff8`0f00000f
    00000034`bc8f03c8  00007ff8`b9265c90 winspool!GetPrinterW
    Либо вместо нескольких dps можно было выполнить одну команду:
    Код: Выделить весь код
    dps 00000034`bc8f00d0 00000034`bc8f0660
    для просмотра всего интервала.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:45, 06-07-2018 | #21