Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件)
来源:http://www.tudoupe.com时间:2022-07-19
一、简述
今天我们将讨论如何使用Google Breakpad来帮助我们自己的程序在它们崩溃时丢失文件。以Qt为例。其他项目建立过程基本上相似,Google Breakpad与我们正在开发的无关。它主要是理解如何使用Google Breakpad来帮助我们捕捉崩溃文件。
如何使用Google Breakpad
**开发环境:win8+VS2013 **
首先我们建立了一个Qt项目。
(2)修改 BreakTest工程属性。
修改exe生成目录

添加静态库文件
添加了库目录,我们添加了lib库文件,但没有指定库文件目录,这里使用相对路径来防止程序在路径更改后找到库文件。

附加包含目录
当前的配置应该选择“释放模式”并在“释放模式”下设置“可调试”来生成在生成“exe”时。 pdb调试信息文件在两个步骤中实现


下面是Google Breakpad如何捕捉冲突文件所需要的 lib 文件和标题以及我在构建项目的文件位置(确保文件位置正确,否则编译器不会通过)
这里所使用的库文件是从Google Breakpad源代码.lib文件中常见的 crash_generation_client和 exception_handler三个项目中生成的,感兴趣的朋友可以将这些项目添加到他们的项目,然后生成我们需要的 lib 文件。

其中,我做了三种共同的, crash_generation_client和 exception_handler项目,分别是动态和静态。在这个例子中,用于动态编译项目中的lib文件。(对于那些不知道动态和静态编译器的人,你可以独自去百度。
(三)、添加代码
main.cpp
为BreakPadTest中添加一个按钮,下面为按钮点击的槽函数,从代码中可以看到按钮点击后将导致程序崩溃。
void BreakPadTest::onButtonClicked()
{
int *i = NULL;
*i = 0;
}
4.生成解决方案,在程序生成目录中单击执行程序
单击下面的按钮,我们发现程序崩溃并翻转,而我们发现目录 kdeexe成功地生成了dmp文件。


根据dmp文件,在它崩溃时恢复程序的状态。
打开VS的dmp文件,当程序崩溃时我们会看到一些信息。
单击右边的“只在家庭机上使用调试”按钮,查看程序崩溃的堆栈信息和特定代码行中出现的具体错误。

从上面我们定位程序的崩溃位置,并找到错误,然后修改错误。
##有时我们不能直接用裸眼找到问题,这取决于该程序 crashed 的地点,就是通过查看堆栈信息来确定问题的发生地点。
尾
本文详细描述了如何将Google Breakpad添加到一个项目,以图形的方式帮助我们生成一个dmp文件以定位程序崩溃。我将在下一篇文章详细解释上面使用的代码,虽然我们不需要知道所有的Google Breakpad的源代码,但至少应该理解上面所涉及的代码。
————————————————
版权声明:本条是CC4.0 BY-SA版权协议下CSDN主机《前线猪》的原文条目。如欲复制本条目,请参阅原文及本声明的链接。
来源链接: https://blog.csdn.goforwardtostep/article/details/56685810
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
