@lupnfer
2017-07-20T02:02:59.000000Z
字数 1310
阅读 2031
WinDbg
#gflags开关 对应每个程序一次即可(+ust -ust)要带全路径的gflags.exe /i "D:\Program Files\IMOS\IA-IT SERVER\IA-IT SERVER.exe" +ustgflags.exe /i "E:\WorkCode\14版行业主线\IMOS_CODE_IA\imos\tools\ReduceFile\ReduceFile\ReduceFile\Release" +ust#设置符号表路径set _NT_SYMBOL_PATH=E:\WorkCode\14版行业主线\IMOS_CODE_IA\imos\tools\ReduceFile\ReduceFile\ReduceFile\Release;D:\symbolslocal (PDB必须设置)#运行一次 exe程序,进程ID为10136umdh.exe -p:10136> F:\telmemory\snap_1437.ini#运行N次umdh.exe -p:10136> F:\telmemory\snap_1445.iniumdh -d F:\reducememory\snap_1437.ini F:\reducememory\snap_1445.ini > F:\reducememory\cmp.txt
#windows异常: 这四种基本上能捕获抛异常的堆栈!findstack kernel32!UnhandledExceptionFilter!findstack ntdll!KiUserExceptionDispatcher!findstack ntdll!RtlEnterCriticalSection!analyse -v
#windows64为修改为32位:.load wow64exts!sw#加载不严格匹配的符号!sym noisy.reload /i#符号表:SRV*D:\symbols*http://msdl.microsoft.com/download/symbols#UI数据查看View -- CallStackView -- Loacls双击堆栈里面对应的函数 Locals跳出 当前数据信息#windbg崩溃自动重启C:\WinDbg\Windbg.exe -I#保存现场.dump -ma f:\xxx.dmp#查看这个占有锁的线程运行了多长时间(占用CPU时间)!runaway#查看库版本信息:lmvm dsp_*lmvm dsp_rtplay#查看当前堆栈: 一般崩溃跳到windbg 使用kv就能查看对应的错误k kb kp kv kn 检查 call stack#显示所有的堆栈信息~*k#列出当前进程中加载的所有模块lmf#根据栈信息,打印栈调用,这个会比kv一类的打印的深!teb therad Environment block!peb process Environment blockStackBase: 00170000StackLimit: 00166000#dps 查看栈信息 起始地址-终点#显示信息 栈顶 -- 栈底 (栈是向下增长的)dsp ESP ESP+100