Сообщения: 53410
Благодарности: 15490
|
Профиль
|
Отправить PM
| Цитировать
Цитата sander45:
А есть где-то внятные инструкции
|
- Открываем дамп в WinDbg (Debugging Tools for Windows).
- Поскольку в дампе есть Unhandled exception, в качестве текущего потока уже выбран тот, в котором произошёл сбой (и нам не нужно его искать/выбирать).
- Начинаем с команд 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 не определил их принадлежность. - Соответственно, начинаем смотреть 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
|