zoukankan      html  css  js  c++  java
  • Qt下MSVC/Mingw平台dump/crash log报告调试方法差异

    Qt下MSVC/Mingw平台dump/crash log报告调试方法差异

    原文链接:https://blog.csdn.net/dgj8300/java/article/details/78450638

    经过测试发现,对于MSVC/mingw平台的log到处方法有所不同,下面来介绍下2个平台构建的差异和方法:

    1.MSVC
    使用平台:MSV2015
    1.第一步:编译构建是添加以下

    "CONFIG+=force_debug_info" "CONFIG+=separate_debug_info"

    这样编译以后可生成*.pdb文件

    将dump文件和*.pdb及map文件放在同目录下,使用vs2015打开dump文件既可以定位到dump代码行。

    2.Mingw
    使用平台:mingw530
    mingw平台下,目前只在windows下测试过,但是无法精确定位到代码行,方法如下:
    1.首先由于mingw平台下便有不支持生产pdb文件,所以无法直接使用VS来调试dump文件,但是我们可以通过cv2pdb来转换,具体转换在另外文档中详细讲解。
    同时,qt工程在编译mingw-release版本时,在pro中需要加上一下配置:

    #加入调试信息
    QMAKE_CFLAGS_RELEASE += -g
    QMAKE_CXXFLAGS_RELEASE += -g
    #禁止优化
    QMAKE_CFLAGS_RELEASE -= -O2
    QMAKE_CXXFLAGS_RELEASE -= -O2
    #release在最后link时默认有"-s”参数,表示"Omit all symbol information from the output file",因此要去掉该参数
    QMAKE_LFLAGS_RELEASE = -mthreads -Wl

    这样编译出来的exe程序可以被cv2pdb工具转换出来。

    上面说了mingw平台上虽然可以导出pdb文件,但是还是无法精确的定位到代码行,所以这个方法也没多大作用,但是不要放弃,还有google的神器:BreakPad
    通过dump_syms.exe将pdb转换为sym文件后,在使用minidump_stackwalk.exe来进行分析,同时要注意minidump_stackwalk.exe需要使用在linux下使用BreakPad源码编译才可以分析dump文件。

    ================= End

  • 相关阅读:
    [HNOI2015]亚瑟王(概率dp)
    [IOI1998]Polygon(区间dp)
    [SCOI2003]字符串折叠(区间dp)
    [BJOI2006]狼抓兔子(网络流)
    [NOIP2017普及组]跳房子(二分,单调队列优化dp)
    洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom(Tarjan)
    [SCOI2010]股票交易(单调队列优化dp)
    [POJ1821]Fence(单调队列优化dp)
    [Luogu2365]任务安排(斜率优化)
    股神小L
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/13190098.html
Copyright © 2011-2022 走看看