@lupnfer
2017-07-20T02:02:59.000000Z
字数 1310
阅读 1928
WinDbg
#gflags开关 对应每个程序一次即可(+ust -ust)要带全路径的
gflags.exe /i "D:\Program Files\IMOS\IA-IT SERVER\IA-IT SERVER.exe" +ust
gflags.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为10136
umdh.exe -p:10136> F:\telmemory\snap_1437.ini
#运行N次
umdh.exe -p:10136> F:\telmemory\snap_1445.ini
umdh -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 -- CallStack
View -- 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 block
StackBase: 00170000
StackLimit: 00166000
#dps 查看栈信息 起始地址-终点
#显示信息 栈顶 -- 栈底 (栈是向下增长的)
dsp ESP ESP+100