Fivee

导航

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的解释。

posted on 2020-04-20 17:52  Fivee  阅读(273)  评论(0)    收藏  举报