2017-07-12 9 views
0

Qt(QML/C++)アプリケーションがクラッシュし、その理由が見つかりません。私は多くの情報を出力しようとしましたが、信号/スロットの接続によってはクラッシュする可能性があります。理由を見つけようと多くの時間を費やしましたが、失敗しました。WindowsでQtアプリケーションをデバッグする

唯一のポイントは、いつでもクラッシュを再現できることです。

残念ながら、含まれているGDBデバッガを使用するのは難しいです。これは私が得たアウトプットです: Qt Application Crash

どうしたのでしょう?少なくとも私のアプリケーションがクラッシュした関数を見つける必要があります。

他に何を試すことができますか?残念ながら、シグナル/スロットの接続や関連する機能を無効にすることはできません。なぜなら、クラッシュするポイントには到達できないからです。

+0

これはあなたが求めている巨大なものです! Qt Creatorに関するQtの公式チュートリアル(http://doc.qt.io/qtcreator/creator-debugging.html)と[このページ](https://www.tutorialspoint.com/gnu_debugger/what_is_gdb.htm) )あなたに役立つかもしれません:) – Xatyrian

+0

MuzikaとQtをデバッグモードでコンパイルしましたか?これにより、逆アセンブリコードの代わりにソースコードを調べることができ、デバッグがずっと簡単になります。もう1つの提案は[mcve]を作成することです。あなたの問題は、いくつかのメディアを再生することに関連しているようです。 – m7913d

+0

Muzikaは私のアプリケーションであり、デバッグモードでコンパイルしました。しかし、クラッシュは私がリリースとしてダウンロードしたQtCore.dllにあるようです。どのような正確な呼び出しによってライブラリがクラッシュしたのかを知る機会はありませんか?私はQt全体をコンパイルする気がしません。とにかく問題は特定のメディアファイルに関連していませんが、CUEシートを含むファイルが1つの部分の終わりに達してから停止する必要がある場合に起こります。手動で再生を停止すると機能しますが、プログラムで実行すると(現在の位置は部分的に終了しています)、クラッシュします。そして、なぜ私は見つけることができません。 – JeCh

答えて

0

ツール - >オプション - >あなたはこのようなQtのバージョンのキットを持っている場合は、デバッガをチェックする必要が&実行

を構築します。あなたはMinGWのをインストールした後、デバッガを持っているだろうインストールする必要が

https://i.stack.imgur.com/LaY1p.png

https://i.stack.imgur.com/8kTG6.png

。インストール後、F5キーを押してデバッグを開始します。

1

Qtはこちらをご覧デバッガをインストールする方法についてのマニュアルを参照して詳細に説明していますQtCreator Debugger

MinGWのは、より優れたアプリケーションをデバッグするために使用することができGDBを持っています。また、CDBを使用してデバッグすることもできます。

これがインストールされると、ブレークポイントを設定し、変数情報をチェックして、QtCreatorのデバッガビューを使用してプログラムがクラッシュしている場所を確認することができます。

+0

私はGDBと固定Python(GDBクラッシュの原因となっていた)をセットアップしました。しかし、例外が発生しても、それはqlist.hの例でしか見られません。しかし、私のコードでどこに問題が発生したのかはまだ分かりません。それは私のコードからどの呼び出しが例外を引き起こしたかを追跡することは可能ですか? – JeCh

関連する問題