qt编译死机,qt如何捕获崩溃异常
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
一、简述今天我们将讨论如何使用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
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com