WinDbg调试

设置符号等环境

cache会在本地指定目录缓存symbols
SRV指定symbols的库
cache*e:/symbols/;SRV*https://msdl.microsoft.com/download/symbols;*e:/symbols/*F:\1_QtProject\qt1213\H264Video\dmp\

cache*e:/SymbolCache/;SRV*https://msdl.microsoft.com/download/symbols;*e:/symbols/*E:\project\cpp\measure-junmai\x64\Release;

调试dump文件

  1. 设置VC编译选项,勾选生成MAP和Debug Info、Progma Datebase:
  2. 将编译生成的Release目录中的pdb、map文件保存起来,以后调试会用到:
  3. 运行程序,单击确定按钮出现异常后自动重启,并创建一个Log文件夹,里面生成dump文件:
    我们打开WinDbg,设置一下相关路径

A、设置pdb路径(File \ Symbol File Path)
B、设置源代码路径( File \ Source File Path )
C、设置Exe路径( File \ Image File Path )

  1. 用WiinDbg打开dump文件(File \ Open Crash Dump)
  2. 输入命令!analyze -v,等待几秒后会打印出错误信息,函数调用栈如下图:

获取帮助列表

.hh

调试 exe cpu 占用率高

使用 windbg 运行程序
查看线程池 !threadpool
查看哪个线程占用 cpu 时间过多 !runaway

切换线程 0
~0 s

查看栈
!clrstack

波形符(~) 命令显示指定线程或当前进程中的所有线程的信息