[关闭]
@lupnfer 2017-07-20T02:02:59.000000Z 字数 1310 阅读 1928

windbg内存定位

WinDbg


gflags + umdh 内存泄露

  1. #gflags开关 对应每个程序一次即可(+ust -ust)要带全路径的
  2. gflags.exe /i "D:\Program Files\IMOS\IA-IT SERVER\IA-IT SERVER.exe" +ust
  3. gflags.exe /i "E:\WorkCode\14版行业主线\IMOS_CODE_IA\imos\tools\ReduceFile\ReduceFile\ReduceFile\Release" +ust
  4. #设置符号表路径
  5. set _NT_SYMBOL_PATH=E:\WorkCode\14版行业主线\IMOS_CODE_IA\imos\tools\ReduceFile\ReduceFile\ReduceFile\ReleaseD:\symbolslocal PDB必须设置)
  6. #运行一次 exe程序,进程ID为10136
  7. umdh.exe -p:10136> F:\telmemory\snap_1437.ini
  8. #运行N次
  9. umdh.exe -p:10136> F:\telmemory\snap_1445.ini
  10. umdh -d F:\reducememory\snap_1437.ini F:\reducememory\snap_1445.ini > F:\reducememory\cmp.txt

windbg 进程崩溃

  1. #windows异常: 这四种基本上能捕获抛异常的堆栈
  2. !findstack kernel32!UnhandledExceptionFilter
  3. !findstack ntdll!KiUserExceptionDispatcher
  4. !findstack ntdll!RtlEnterCriticalSection
  5. !analyse -v

windbg SKILLS

  1. #windows64为修改为32位:
  2. .load wow64exts
  3. !sw
  4. #加载不严格匹配的符号
  5. !sym noisy
  6. .reload /i
  7. #符号表:
  8. SRV*D:\symbols*http://msdl.microsoft.com/download/symbols
  9. #UI数据查看
  10. View -- CallStack
  11. View -- Loacls
  12. 双击堆栈里面对应的函数 Locals跳出 当前数据信息
  13. #windbg崩溃自动重启
  14. C:\WinDbg\Windbg.exe -I
  15. #保存现场
  16. .dump -ma f:\xxx.dmp
  17. #查看这个占有锁的线程运行了多长时间(占用CPU时间)
  18. !runaway
  19. #查看库版本信息:
  20. lmvm dsp_*
  21. lmvm dsp_rtplay
  22. #查看当前堆栈: 一般崩溃跳到windbg 使用kv就能查看对应的错误
  23. k kb kp kv kn 检查 call stack
  24. #显示所有的堆栈信息
  25. ~*k
  26. #列出当前进程中加载的所有模块
  27. lmf
  28. #根据栈信息,打印栈调用,这个会比kv一类的打印的深
  29. !teb therad Environment block
  30. !peb process Environment block
  31. StackBase: 00170000
  32. StackLimit: 00166000
  33. #dps 查看栈信息 起始地址-终点
  34. #显示信息 栈顶 -- 栈底 (栈是向下增长的)
  35. dsp ESP ESP+100
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注