Qt崩溃捕捉记录

37 篇文章 0 订阅

1. 使用BreakPad

一篇好的实例文章,按照里面的内容做了Demo: Using Google Breakpad with Qt
Breakpad 库地址:Breakpad 库地址
另一篇相关的文章:Qt and Google breakpad Windows/Linux/MacOS

以上文章中介绍了Windows和Linux下崩溃捕捉的方法,只不过Windows下需要有pdb文件,而我们当前的代码时在MinGW构建套件下能够正常编译运行的,而要生成pdb文件则需要使用MSVC构建套件.最后好不容易搭建好了MSVC套件,发现当前代码编译过程中报了大量的错误(很多类型不能够识别,有的地方像this,if都不能够识别,一些头文件不能够打开,还有很多syntax error…),感觉为了把这些东西调通需要花费的精力和时间不值得.暂时放弃了这种方案.

相关软件下载记录:

MSVC2010版qt下载路径
5.6.3的下载地址为另一个位置
VS中对应的qt插件位置,可以根据版本选择对应的

其他相关文章

Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件)
Linux环境下QT中使用google breakpad捕获程序崩溃异常

这个对Breakpad的原理做了介绍,但没有按照它的代码去做:
12.5-使用Qt实现跨平台C++崩溃捕获,看这一篇就足够了(Breakpad)

2. windows中使用<DbgHelp.h>的方法

qt处理程序异常崩溃:在
不过这种方式也是需要时MSVC套件下进行的

3. Qt mingw编译调试使用addr2line.exe工具

看该文章中最后一个方法:
Qt dump崩溃调试简单整理
这个方法可以在mingw套件环境中对崩溃的信息进行记录,美中不足的是可以对exe进行很好的定位,而对于内部的dll则不能记录信息.

linux下使用addr2line
这个文章说可以通过动态链接库的偏移地址来找到动态链接库的崩溃位置,具体能不能用还没有去试.

addr2line命令最后的地址参数可以为多个,显示多个位置对应的源码行号

4.异常捕捉归纳

  1. dmp文件需要依赖.pdb文件才能分析,可以使用VS或者WinDbg分析.
  2. pdb只能在windows下MSVC套件中产生.
  3. 默认情况下,Debug模式才会生成.pdb文件,也可以配置成Release模式下也生成.

5.遇到的问题部分记录

1.使用MSVC版本的Qt:
在Win7环境中,Qt MSVC2013版本安装成功后,该套件缺少对应的编译器和调试器,安装完VS2013后仍然没有完整提供.后来安装了开发包WDK 8.1问题才解决(注意VS2013对应的是8.1).
QT - error: LNK1327: 运行 rc.exe 期间出错

将MinGW编译器编译通过的代码放到MSVC编译器中,或者VS中编译会报"windwos.h":No such file or directory的错误,解决办法如下:
“windwos.h”:No such file or directory解决办法

2.使用VS2013,安装Qt5.6的插件
VS2013 下安装 Qt5
【问题】VS2010 VS2012 VS2013 安装之后提示 “无法打开文件 kernel32.lib” 解决方案



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingLife99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值