Windbg 崩溃统计分析
使用cdb.exe,cdb是windbg的命令行版本,功能稍弱一些,但是可以不需要打开界面运行。
cdb -y symbolpath -z dumpfile -c command -logo logfilepath
如果你想在-c 命令中使用多个命令,使用 ; 分割,或者使用 &< 脚本模式,参考巨硬的官方文档即可。
-c "&<xxx.txt"
如果符号表(symbols)加载失败,使用 .sym noisy 显示详细的symbol load 信息
在做崩溃统计时,通常会有批量执行并统计错误的需求,下面给出python中的一个执行方式参考:
def parsedmp(dmpdir, symdir): # 找出所有dmp文件 filelist = glob.glob(dmpdir + '/*.dmp') if len(filelist) == 0: return # 生成txt报告 for dmp in filelist: cmd = 'cdb -y %s -z %s -logo %s.txt -lines -c ".reload /f;!analyze -v;q"' % (symdir,dmp,dmp) os.system(cmd);
针对报告中的 "STACK_TEXT",进行区分统计,输出成统计文件就可以了。
symbolpath 可以参考symstore的用法,在程序生成后直接生成对应的PDB文件
参考 https://chadaustin.me/2009/03/reporting-crashes-in-imvu-creating-your-very-own-symbol-server/ 这篇文章即可
有一个问题要注意,
如果使用了symstore,在windbg中指定符号表位置时,必须带上srv

这里是srv的解释。
浙公网安备 33010602011771号