首页 > 系统相关 >Qt qBreakPad使用(windows)

Qt qBreakPad使用(windows)

时间:2023-07-04 14:35:59浏览次数:38  
标签:crash Qt windows 跨平台 文件夹 qBreakPad 使用 include

一、介绍
  Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合。而且BreakPad本来就是为了解决C、C++异常捕获而开发的。BreakPad支持跨平台,很容易在Qt项目中使用,使跨平台的应用实现跨平台异常捕获。这里介绍一下qBreakPad的使用。

二、编译

步骤
1、下载qBreakPad源码进行解压,目录如下:

 2、下载BreakPad源码放入qBreakPad源码目录third_party\breakpad下,如下:

 3、使用QT打开handler文件夹下qt工程

 4、运行工程

 可见编译成功了,我们去对应文件夹看到库也成功的生成了,这样我们就能使用qBreakPad了。

 

三、使用

这里我们创建一个名为qBreakPad的qt工程去进行测试使用,工程结构如下

 其中qbreakpadlib文件夹包含的是头文件和lib库,其结构如下

 lib目录下分别编译了debug和release版本库放入,上述操作完毕后需要在pro里面添加对应库和头文件路径,配置如下

 修改pro后记得重新qmake一下,配置才会生效。这样我们就可以编写代码进行使用了,

 1 #include "mainwindow.h"
 2 #include <QApplication>
 3 #include "QBreakpadHandler.h"
 4 #include <QLabel>
 5 
 6 void crash()
 7 {
 8     QLabel *label = nullptr;
 9     label->setText(QString("hello"));
10 }
11 
12 int main(int argc, char *argv[])
13 {
14     QApplication a(argc, argv);
15     MainWindow w;
16     w.show();
17     //设置生成的dump文件位置
18     QBreakpadInstance.setDumpPath("crash");
19     crash();
20     return a.exec();
21 }

运行demo,程序会异常结束,我们去对应生成exe的目录看看生成的文件,里面生成了crash文件夹,崩溃文件就放在里面

 我们使用winDbg查看这个dump信息,

 可以看到提示的非常明显,是在19行中QLabel调用setText导致崩溃的,这样我们就很快能够知道为题所在了。

标签:crash,Qt,windows,跨平台,文件夹,qBreakPad,使用,include
From: https://www.cnblogs.com/ybqjymy/p/17525655.html

相关文章

  • Linux挂载windows共享文件夹
    这篇博客为大家介绍一下Linux上挂载Windows下的网络共享文件夹,实现不同系统间的文件同步。1、环境2、windows上设置共享文件夹右键需要共享的文件夹,在属性中选到共享选择需要共享的用户并且赋权限共享之后取到网络路径3、linux上进行文件夹挂载#保证两台机器能......
  • Qt InputDialog 置顶后模拟键盘输入失效问题
    开发环境:Qt5.12.2+QtCreator4.8.21、问题背景嵌入式linux-arm触摸屏移植了谷歌拼音输入法后测试使用问题2、问题现象1)主窗口编辑框输入法有效2)QInputDialog弹框输入法失效3、问题原因 初步怀疑是QInputDialog置顶问题导致4、问题解决......
  • Windows Server 共享操作日志及分析工具
    前言:作为系统管理员可能会在企业搭建域环境及配置域共享目录,但共享目录的权限设置繁琐,因此大多数子目录都是部门可读可写,怎样审查谁做了新增删除文件成为管理的重点。其实我们可以通过Windows自带的审计服务完成该工作。 一,首先打开服务管理器,点击本地安全策略 二,在审核......
  • 如何通过Java读取到Windows系统日志evtx文件
    近日公司有个需求,需要调研如何使用Java来读取Windows日志文件(类型:应用程序,安全,Setup,系统)一番调研以后,在仅使用java的基础上系统日志文件似乎不太可能(就个人调研结果来看),再通过多渠道查询(百度、chargpt),找到2个可能的实现的方案:1、使用Java来调用C++方法JNA(JavaNativeAccess)......
  • windows上,gbk utf8相互转换
    #include<locale>#include<codecvt>inlinestd::stringutf8_to_gbk(conststd::string&str){std::wstring_convert<std::codecvt_utf8<wchar_t>>conv;std::wstringtmp_wstr=conv.from_bytes(str);//GBKlocalenamei......
  • 在Windows下安装使用Kafka
    准备工作Java环境Kafka安装包(已包含zookeeper)安装步骤1Java安装自行百度2下载、安装Kafka 打开 下载地址 选择下图红框中的版本,Kafka包名组成:Scala版本-Kafka自身版本下载完成之后解压,目录如下图:3启动服务3.1启动ZooKeeper打开kafka_2.12-2.1.0\bin\w......
  • 如何在Windows上安装MySQL和MySQL Workbench
    如果你想学习MySQL,从一个好的客户端开始非常有帮助——尤其是当你刚刚开始你的旅程时。有很多客户端可以满足您基于MySQL的需求,例如XAMPP、DataGrip等。其中,我更喜欢MySQLWorkbench。顺便说一句,它是完全免费的。在本教程中,我将向您展示如何从头开始安装和配置此MySQL和......
  • 最新windows10 下搭建vue开发环境
    特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安装步骤如下:一、安装node.js说明:安装node.js的windows版本后,会自动安装好node以及包管理工具npm,我们后续的安装将依赖npm工具。node.js的官方地址为:https://nodejs.org/e......
  • ubuntu下新安装的qtcreator无法打开?编译好的qt程序缺少qtcore库文件?
    ubuntu下新安装的qtcreator无法打开?编译好的qt程序缺少qtcore库文件?试试添加qt和qtcreator到环境变量。sudovi/etc/profile新增exportQTDIR=你的qt根目录exportPATH=$QTDIR/bin:$PATHexportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexportQTCREATOR=你的qtcret......
  • mysql windows安装
    1.首先下载mysqlhttps://www.mysql.com/downloads/ 2.解压到D盘。在解压后的文件夹里创建一个data文件夹和一个my.ini文件my.ini文件夹内容路径根据自己存放解压位置修改一下,数据库存放目录自己建一个[mysql]#设置mysql客户端默认字符集default-character-set=utf8m......