首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向Qt应用程序的多平台崩溃报告系统

面向Qt应用程序的多平台崩溃报告系统
EN

Stack Overflow用户
提问于 2013-02-01 14:05:36
回答 3查看 2.1K关注 0票数 5

我正在创建一个多平台的Qt应用程序,我希望崩溃报告系统在用户的计算机发生崩溃时生成崩溃报告。稍后,我应该能够查看堆栈跟踪以及崩溃报告中的所有调试信息。我已经看过google-breakpad了。

但要使用它,似乎我需要转移到MSVC for windows。现在我在windows上使用MinGW,用MSVC编译所有不同的库会花费我大量的时间和精力。有没有什么方法可以让我在使用MinGW的同时仍然可以使用google-breakpad?或者,有没有其他的替代方案,可以在多平台上工作,并支持windows上的mingw?

EN

回答 3

Stack Overflow用户

发布于 2014-11-17 03:44:21

除了google-breakpad,我不知道任何开放的多平台崩溃报告系统。即使google-breakpad不支持MinGW,据我所知,你仍然可以从你的应用程序中获得回溯。Project Dr. Mingw提供了很好的动态链接库: mgwhelp.dll和exchndl.dll。使用时,您需要:

  • 使用调试信息进行编译。请参阅Dr. Mingw常见问题解答。
  • 通过显式调用LoadLibrary("exchndl.dll")

将mgwhelp.dll和exchndl.dll包含在应用程序二进制文件

  • 中,并在应用程序启动时加载exchndl.dll

例如:

代码语言:javascript
复制
QFile drmingw("exchndl.dll");
if(drmingw.exists())
{// If don't want create reports just delete exchndl.dll from installer
    LoadLibrary(L"exchndl.dll");
}

崩溃后,你会在二进制文件所在的目录中找到带有回溯功能的文件binary_name.RPT。

我还能做什么?

发布模式下的

  • 删除调试符号。

win32:!win32-msvc*{ #条带调试符号。

  • 每次运行检查.RPT文件是否存在并发送或保存在报告目录中。例如,我使用gist来收集报告。
票数 1
EN

Stack Overflow用户

发布于 2015-03-15 06:45:05

libcrashreporter-qt“应该提供一个简单的集成到Qt应用程序中的Google Breakpad崩溃报告”。

它包含断路板的补丁,使其可以使用MinGW工具链进行构建。

票数 1
EN

Stack Overflow用户

发布于 2013-04-11 20:08:38

目前在Breakpad中不支持MinGW。我不认为这种情况会很快改变,除非有人贡献了这个端口,因为谷歌和Mozilla对MinGW都没有任何兴趣。据我所知,没有其他像Breakpad这样以跨平台方式工作的崩溃报告库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14640700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档