如何在Windows中为Qt应用程序生成良好的崩溃日志报告

时间:2011-08-10 13:03:17

标签: qt crash-dumps crash-reports

我在Qt应用程序中找到了这样的崩溃日志,知道如何实现qt应用程序以获得如此好的崩溃报告吗?

//=====================================================
Crash Time:     Fri Aug 20 15:05:51 2010
Tool Version:   1.6 (08/21/09)
Exception code: C0000005 ACCESS_VIOLATION
Fault address:  06706000 00:01FED9E4 

Registers:
EAX:067689A0
EBX:00000000
ECX:067689A0
EDX:026304C0
ESI:00000012
EDI:01FEF018
CS:EIP:001B:06706000
SS:ESP:0023:01FEE4B4  EBP:01FEE4CC
DS:0023  ES:0023  FS:003B  GS:0000
Flags:00010206

Call stack:
Address   Frame
06706000  01FEE4B0  0000:00000000 
39DE15ED  01FEE4CC  QWidget::reparent+2D
39E7F560  01FEE6F4  QMenuBar::calculateRects+2D0
39E7E4B1  01FEE708  QMenuBar::performDelayedContentsChanged+41
39E7E600  01FEE714  QMenuBar::performDelayedChanges+20
39E7FF24  01FEE88C  QMenuBar::drawContents+24
39E4162E  01FEEA88  QFrame::paintEvent+3BE
39DE060E  01FEEB00  QWidget::event+39E
39D56AE8  01FEEB38  QApplication::internalNotify+1E8
39D56785  01FEEC68  QApplication::notify+865
39D0A89B  01FEEC7C  QApplication::sendSpontaneousEvent+3B
39D13DEF  01FEED2C  QApplication::winMouseButtonUp+20DF
39D1095E  01FEEFB0  QApplication::winFocus+FBE
7E418734  01FEEFDC  GetDC+6D
7E418816  01FEF044  GetDC+14F
7E41B4C0  01FEF098  DefWindowProcW+184
7E41B50C  01FEF0C0  DefWindowProcW+1D0
7C90EAE3  01FEF12C  KiUserCallbackDispatcher+13
7E418A10  01FEF13C  DispatchMessageW+F
39D25EED  01FEF194  QEventLoop::processEvents+2AD
39D76814  01FEF1AC  QEventLoop::enterLoop+74
39D766CD  01FEF1B8  QEventLoop::exec+1D
39D56CCC  01FEF1C8  QApplication::exec+1C
0044847A  01FEFED8  0001:0004747A c:\QtTest\too\main.exe
004465C0  01FEFEE8  0001:000455C0 c:\QtTest\too\main.exe
00F17729  01FEFF18  0001:00B16729 c:\QtTest\too\main.exe
00F148E7  01FEFFC0  0001:00B138E7 c:\QtTest\too\main.exe
7C816FD7  01FEFFF0  RegisterWaitForInputIdle+49

Crash Log:
( 54350.189194700) T> Compile_And_Link_User_Code_Body
( 54350.191276250) T> Create_Header_Expanded_Driver called for: testQt
( 54350.197348809) T> computil.adb:Get_Preprocessed_File called SOURCE_FILE=QtTest_TMP.8.20.54350.2.10156.40.c
( 54350.786834903) T> Create_Header_Expanded_Driver called for: testQt
( 54350.792789012) T> computil.adb:Get_Preprocessed_File called SOURCE_FILE=QtTest_TMP.8.20.54350.8.10156.49.c,
( 54351.056315801) G> add_all_testcase_user_code_to_harness failure COMPILER_PKG.COMPILE_ERROR_EXCEPTION
( 54351.056962252) G> HierarchyView::initCoverage() ...
( 54351.068467625) G> starting Parser::build_testobjectlist_from_xml()

1 个答案:

答案 0 :(得分:3)

作为Qt的一部分,没有提供崩溃报告创建。

有问题的应用程序可能只是在操作系统中注册了一个异常过滤器,例如: Windows上的SetUnhandledExceptionFilter,并自行编译并写入此崩溃报告。

如果您不喜欢自己的崩溃记者,可以使用一些不错的开源库来生成详细的崩溃报告,如Google的Breakpad。

http://code.google.com/p/google-breakpad/