0

開発用 PC でのデバッグとリリースで正常に動作する、かなり標準的な C++/QT アプリがあります。クリーンな PC でリリース バージョンを試すと、動作しますが、機能の一部 (USB 接続を介してビデオを表示する) が動作しません。これは前に見たことがありますが、私の標準的な手法は、デバッグ情報をリリース ビルドに追加し、リモート デバッグをセットアップして確認することです。驚いたことに、これまでに見たことのないデバッグ情報 (.pdb) を含むリリース ビルドとして正常に動作します。

依存関係ウォーカーを使用しても、依存関係に問題はありません。Dependency Walker の一部であるプロファイラーを使用すると、完全に動作します。

私はデバッグ技術を使い果たしました。私が考えることができる唯一のことは、さまざまな場所にメッセージ ボックスを追加することです。これは、マルチスレッド アプリケーションでは良い考えとは思えません。

この問題を見つけるのに役立つデバッグ手法はありますか? VS2008 と Qt 4.7.1 を使用しています。

4

2 に答える 2

1

ロギングはあなたの友達だと思います。複数のスレッドがある場合は、各スレッドを別のログ ファイルに記録したい場合があります。

于 2013-10-13T08:04:27.250 に答える
1

メッセージ ボックスを絞り込む - ログ ファイルを使用します。

あなたの説明から、ある種の競合状態/タイミングの問題があり、何かによって観察されることによってスレッドまたは他のスレッドが遅くなったときに解決される可能性があるように思えます。または、デバッグ情報をバイナリに追加します。

タイムスタンプ付きのログ ファイルを使用すると、いつ発生したかを追跡できるはずです。

于 2013-10-13T08:04:30.880 に答える