windbg 调试dump

来源:互联网 发布:淘宝祝福语 编辑:程序博客网 时间:2024/05/16 09:28

1. windbg载入dump,设置符号pdb

2.执行命令

!analyze -v

.ecxr

3.如果要查看当前栈上所有的符号信息

!teb

0:046> !teb
TEB at 7ef1e000
    ExceptionList:        07ebecd0
    StackBase:            07ec0000
    StackLimit:           07eb9000
    SubSystemTib:         00000000
    FiberData:            00001e00
    ArbitraryUserPointer: 00000000
    Self:                 7ef1e000
    EnvironmentPointer:   00000000
    ClientId:             00001e4c . 00001770
    RpcHandle:            00000000
    Tls Storage:          7ef1e02c
    PEB Address:          7efde000
    LastErrorValue:       87
    LastStatusValue:      c000000d
    Count Owned Locks:    0
    HardErrorMode:        0

得到!teb.StackBase

执行

.foreach /pS 1 /ps 1 (myVariable {dd /c 1 esp 0x07ec0000}){ln myVariable;}


0:046> .foreach /pS 1 /ps 1 (myVariable {dd /c 1 esp 0x07ec0000}){ln myVariable;}(01daa590)   GlobalServer!_stricmp_l+0x2300b3   |  (0208c070)   GlobalServer!`dynamic initializer for 'std::_Error_objects<int>::_Iostream_object''g:\arpg_sdmb\program\server\source\server\globalserver\globalserver.cpp(89)(014dc710)   GlobalServer!GlobalServer::_Update+0x70   |  (014dc820)   GlobalServer!std::deque<AsyncWork *,std::allocator<AsyncWork *> >::_Xleng:\arpg_sdmb\program\server\source\server\globalserver\globalserver.cpp(39)+0x13(014db670)   GlobalServer!GlobalServer::_Kernel+0x5a   |  (014db7f0)   GlobalServer!std::list<AsyncWork *,std::allocator<AsyncWork *> >::_Make_iterg:\arpg_sdmb\program\server\source\gamebase\thread.cpp(145)+0xf(0150dcf0)   GlobalServer!Thread::_Run+0xeb   |  (0150dea0)   GlobalServer!std::vector<WatchDogThread::WatchDogData *,SAllocator<WatchDogThread::WatchDogData *> >::_Unused_capacity(01daa590)   GlobalServer!_stricmp_l+0x241578   |  (0208c070)   GlobalServer!`dynamic initializer for 'std::_Error_objects<int>::_Iostream_object''g:\arpg_sdmb\program\server\source\gamebase\thread.cpp(55)(0150e580)   GlobalServer!thread_fun+0x4c   |  (0150e5f0)   GlobalServer!std::_Debug_pointer<Thread *>(10004310)   pthreadVC2!ptw32_push_cleanup+0x530   |  (10004a30)   pthreadVC2!sched_get_priority_maxg:\arpg_sdmb\program\server\source\gamebase\thread.cpp(46)(0150e580)   GlobalServer!thread_fun   |  (0150e5f0)   GlobalServer!std::_Debug_pointer<Thread *>Exact matches:    GlobalServer!thread_fun (void *)(7297f213)   msvcr110!_beginthreadex+0xb4   |  (7297f288)   msvcr110!__get_flsindex(7296a6e0)   msvcr110!_except_handler4   |  (7296a71f)   msvcr110!__strgtold12_lExact matches:    msvcr110!_except_handler4 (<no parameter info>)(7297f315)   msvcr110!_endthreadex+0x102   |  (7297f400)   msvcr110!swscanf(759d3378)   kernel32!BaseThreadInitThunk+0xe   |  (759d3396)   kernel32!ConDllInitialize(77a39f4b)   ntdll!__RtlUserThreadStart+0x70   |  (77a39f86)   ntdll!LdrpAllocateTls(759f76f7)   kernel32!UnhandledExceptionFilter   |  (759f7839)   kernel32!BasepReportFaultExact matches:    kernel32!UnhandledExceptionFilter (<no parameter info>)(759f76f7)   kernel32!UnhandledExceptionFilter   |  (759f7839)   kernel32!BasepReportFaultExact matches:    kernel32!UnhandledExceptionFilter (<no parameter info>)(77a771f5)   ntdll!_except_handler4   |  (77a772d8)   ntdll!_local_unwind4Exact matches:    ntdll!_except_handler4 (<no parameter info>)(77a39f2a)   ntdll!_RtlUserThreadStart+0x1b   |  (77a39f4b)   ntdll!__RtlUserThreadStart(7297f315)   msvcr110!_endthreadex+0x86   |  (7297f400)   msvcr110!swscanf(7297f315)   msvcr110!_endthreadex+0x86   |  (7297f400)   msvcr110!swscanfSyntax error at '????????;'

这边算是对上一篇 调试Crash dump时,没有任何栈信息的一种恢复的补充

0 0
原创粉丝点击