2011-08-04 38 views
3

デバイス上のアプリケーションスタックトレースまたはクラッシュログを確認したい。 Qtに組み込まれた機能がありますか?Qtでスタックトレースまたはデバイスクラッシュログを取得する方法は?

ファイルに書き込んだり、デバイスのデバッグを行うことで、アプリのログを取得できます。 しかし、スタックトレースを取得すると、ターゲットデバイスでアプリケーションを実行しているときに不明な/致命的なエラーが発生した場合に役立ちます。

あなたはどのOSが、あなたはそれが

があなたの.bashrcファイルまたはどこにこれを入れて、このコマンドではulimit -c無制限

セットをコアファイルを作成することができますLinux上を指定していない

答えて

1

クラッシュが発生するたびに、アプリケーションのコアダンプを取得します。

gdbを使用してデバッグできます。

2

これには組み込みのソリューションはありませんが、(C++を使用していると仮定して)google-breakpadは解決策を提供します。ドキュメントは少し不足していて、イベントハンドラにスローされた例外のQt(非)処理には問題がありますが、大量のリフティングの大部分を処理することができます。

他の回答で質問への対応:

GYPはのsrc \ツール\ GYPの\のgyp.batに配置する必要があります。あなたは、次のような何かを実行します:

src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp --include=breakpad_include.gypi -Dwin_debug_RuntimeLibrary=3 -Dwin_release_RuntimeLibrary=2 --generator-output=..\build\google_breakpad 

breakpad_include.gypiファイルはGYPが使用する特別な設定を設定します。私の場合は次のようになります。

{ 
    'target_defaults': { 
    'configurations': { 
     'Common_Base': { 
     'msvs_settings': { 
      'VCCLCompilerTool': { 
      'TreatWChar_tAsBuiltInType': '0', 
      }, 
     }, 
     }, 
    }, 
    }, 
} 

これは、QtとVSがWCharをどのように扱うかの違いを取り入れています。その他の設定では、使用するランタイムライブラリを指定します。これはQtが使用しているものと一致しなければなりません。

+0

お返事ありがとうございました。 –