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 *> >::_Xlen
g:\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_iter
g:\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_max
g:\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_l
Exact 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!BasepReportFault
Exact matches:
kernel32!UnhandledExceptionFilter (<no parameter info>)
(759f76f7) kernel32!UnhandledExceptionFilter | (759f7839) kernel32!BasepReportFault
Exact matches:
kernel32!UnhandledExceptionFilter (<no parameter info>)
(77a771f5) ntdll!_except_handler4 | (77a772d8) ntdll!_local_unwind4
Exact 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!swscanf
Syntax error at '????????;'
这边算是对上一篇 调试Crash dump时,没有任何栈信息的一种恢复的补充