2

プロジェクトはデバッグ ビルドでは問題なく実行されますが、リリース ビルドで実行しようとすると、プロジェクトは無限の海に沈んでしまいましたaccess violation
たとえば、最初の違反は次の場所で発生します:パラメータ
log4cpp::PropertyConfigurator::configure(config_op->m_log4cpp); PropertyConfiguratorを取りQStringます。
2 番目の at:
middle_widget[0]->show(); middle_widget[0]QWidgetオブジェクトであり、既に初期化されています。

configureリリース ビルドではとの両方showにシングルステップ インすることはできず、違反の理由の手がかりを得ることができません。

どちらの違反も同じ場所にアクセスしているようです0xbaadf00d:

Unhandled exception at 0x77ad15de in Npptrail-Empty.exe:   
0xC0000005: Access violation reading location 0xbaadf00d

デバッグ ビルドはリリース ビルドよりも寛容であると言われているため、リリース ビルドの実行に失敗する可能性があります。しかし、デバッグ ビルドが完了した後で、すべてのアクセス違反をクリアするのにあまり労力を使いたくないのです。リリースと同じ厳密なデバッグビルドが必要です。

それは可能ですか?

4

1 に答える 1

0

私は次のことを試します:

  • 最適化をオフにして、デバッグ情報を使用してリリースをビルドします。実際には、デバッグ ビルドになりますが、デバッグ MACRO はありません。時々それは役立ちます。

  • アプリ検証ツール。ハンドルまたはクリティカル セクションで何か問題を行うと、例外が発生し、説明が表示されます。

  • 何も解決しない場合は、リリース モードをデバッグしてみてください。デバッガーで実行するだけです。最適化によっては、例外のコール スタックが表示され、詳細なデバッグのためにログをより正確に使用しようとする場合があります。

于 2013-06-19T04:49:52.740 に答える