2017-09-01 2 views
0
  1. のQtアプリのクラッシュによりソースコードを見つけることが、私はダンプ・スタックを捕獲し、どのようにしている簡単
  2. が再生されませんスタックによって、ソースコードを見つけるために

コンパイルツール:mingwのQTアプリのクラッシュが、容易に再現されていないが、私はダンプスタックをキャプチャしているとどのようにスタック

OS:Windowsの

私たちはFにaddr2lineにを使用することができ、常に前にアンドロイド(Linuxの)と連携クラッシュソースコードを表示します。

ので:

アプリはテストエンジニアによってテストされ、それがダンプ・スタックでクラッシュされたとき、どのように我々は、ソースコードの機能やラインを見つけることができますか?


まず、我々が使用することができます{mingwのパス}/binににありaddr2line.exe、:

答えて

0

最終的には、私のベストを尽くす、私はクラッシュアプ​​リをオフラインでデバッグするには、2つの方法を見つけます。たとえば、あなたがそのようなクラッシュログ取得する場合:

"E:\\qt\\untitled5.exe" 
"Exception Addr: 00904B21 :Module: C:\\Qt\\Qt5.9.0\\5.9\\mingw53_32\\bin\\Qt5Widgetsd.dll" 
"Exception Code: C0000005 :Read Address: 00000000" 
"Instruction: 8B 01 8B 40 34 C7 04 24 00 00 00 00 FF D0 83 EC" 
"Registers: " 
"EAX: 00904B1E EBX: 185304C8 ECX: 00000000 EDX: 18500048" 
"ESI: 1851DD60 EDI: 755E16DD ESP: 0028FD20 EBP: 0028FD68" 
"EIP: 00904B21 EFlags: 00010202" 
"00904B21 :C:\\Qt\\Qt5.9.0\\5.9\\mingw53_32\\bin\\Qt5Widgetsd.dll" 
"0040187C :E:\\qt\\untitled5.exe" 
"004017AB :E:\\qt\\untitled5.exe" 
"004016BC :E:\\qt\\untitled5.exe" 
"00403B45 :E:\\qt\\untitled5.exe" 

を、我々は

C:\Qt\Qt5.9.0\Tools\mingw530_32\bin>addr2line.exe -f -e e:\qt\untitled5.exe 0040187C 004017AB 004016BC 00403B45 
_ZN4testC2Ev 
E:\qt\untitled5/test.cpp:6 
_ZN10MainWindowC2EP7QWidget 
E:\qt\untitled5/mainwindow.cpp:12 
_Z5qMainiPPc 
E:\qt\untitled5/main.cpp:35 
[email protected] 
c:\Users\qt\work\qt\qtbase\src\winmain/qtmain_win.cpp:104 


クラッシュポイントを見つけるためにaddr2lineにを使用して第二、ExcHndl、博士の一部を使用します明私が考える良いツールです。 githubプロジェクトのリンク: enter link description here

また、サンプルがありますので、それを見逃すことはありません。そのようなクラッシュレポートがあります:

Error occurred on Wednesday, September 6, 2017 at 14:25:57. 

untitled5.exe caused an Access Violation at location 008F4B21 in module Qt5Widgetsd.dll Reading from location 00000000. 

Registers: 
eax=008f4b1e ebx=005ff278 ecx=00000000 edx=184b0048 esi=005fdf48 edi=755e16dd 
eip=008f4b21 esp=0028fd20 ebp=0028fd68 iopl=0   nv up ei pl nz na pe nc 
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b    efl=00010202 

AddrPC Params 
008F4B21 00000001 00000000 00000001 Qt5Widgetsd.dll!hide [c:/Users/qt/work/qt/qtbase/src/widgets/kernel/qwidget.cpp @ 8037] 
00401890 00000001 00000000 00050900 untitled5.exe! ?? [E:/qt/untitled5/test.cpp @ 6] 
    4: test::test() 
    5: { 
> 6:  test3 *p = new test3; 
    7: } 
    8: 
004017BF 00000000 184CED38 00050900 untitled5.exe! ?? [E:/qt/untitled5/mainwindow.cpp @ 10] 
    8: { 
    9:  ui->setupUi(this); 
> 10:  test *t = new test; 
    11: } 
    12: 
004016D2 00000001 184CED38 00673108 untitled5.exe!qMain [E:/qt/untitled5/main.cpp @ 29] 
    27: 
    28:  QApplication a(argc, argv); 
> 29:  MainWindow w; 
    30:  w.show(); 
    31: 
関連する問題