2016-12-27 2 views
1

リリースモードでVisual Studioを使用してネイティブC++プログラムをデバッグするのはどうですか?リリースモードで単にデバッグするのではなく、2つの異なるモードを設定することによって自分自身を悩ますのはなぜですか?リリースモードでデバッグすることで リリースモードでのデバッグの短所

は、私は私が私が持っているデバッグモードを持つべき理由、つまり

(最適化およびインクリメンタルリンクを...無効化、デバッグ情報を生成する)すべての必要な構成を設定した後の平均しますリリースモードを「デバッグ可能なリリースモード」に変更するだけで、自分のプロジェクトを任意のサードパーティのデバッグバージョンにリンクすることができます(アプリケーションをデバッグする際に3番目のライブラリを掘り下げたくない場合)

答えて

6

Ifあなたは)デバッグ情報を生成し、b)最適化を無効にすると、これはほとんどリリースモードではありません。 _DEBUGを有効にしないと、デバッグモードになります。

一部の人は、pure-debugの上にこのような3番目のビルド構成を定義し、リリース専用にポップアップするデバッグの問題を正確に解決します。

あまりにも、リリース専用のビルドでポップアップする問題のタイプは、最適化によって引き起こされる傾向があります。この種のビルドは、限られた用途に使用されます。しかし、それがあなたに合っていれば、あなたがそれを使うのを妨げるものは何もありません。

_DEBUGは、ログに追加情報を表示させ、チェックするアサーションを作成することになっているだけで、どちらも通常の状況では開発に不可欠です。ですから、 "デバッグ"モードは厳密に "デバッグ"ではなく、実際には "開発"モードと考えてください。

異なるビルドを使用する目的は、常に設定を混乱させる必要がないようにすることです。あなたはあなたが望むビルドを設定するだけで、それらについては忘れてしまいます。デバッグの目的でリリースビルドを変更した場合、次に新しいリリースを屋外に送信する場合は、これらの変更を取り消して、新しい「リアル」リリースモードビルドを再構築する必要があります。あなたはそれをする必要はありません。

また、サードパーティ製ライブラリの_DEBUGモードでは、デバッグに役立つ可能性のあるログが生成される可能性がありますが、最も重要なことは、堅牢なソフトウェアを開発するために不可欠な追加入力パラメータのチェックも行われることです。したがって、あなたは_DEBUGモードではないサードパーティのライブラリで開発したくないです。

+0

ありがとうございます。なぜ私は、リリースモードを「デバッグ可能なリリース」のリリースに変更するだけで、自分のプロジェクトを任意のサードパーティのデバッグバージョンにリンクする必要があるデバッグモードを使用する必要があるのですモード " –

+1

異なるビルドを使用する目的は、常にそれらの構成を混乱させる必要がないためです。あなたはあなたが望むビルドを設定するだけで、それらについては忘れてしまいます。あなたは屋外で新しいリリースを送ろうとするたびに設定を混乱させることはありません。 –

+0

また、サードパーティのライブラリの_DEBUGモードでは、デバッグに役立つ可能性のあるロギングが生成される可能性があります。また、追加の入力パラメータチェックも実行される可能性があります。堅牢なソフトウェアを開発するためには絶対不可欠なので、 _DEBUGモードではないサードパーティのライブラリで開発しています。 –

1

デバッグランタイムライブラリがありません。これにより、ランタイムへの不正な引数がチェックされます。これは、リリースランタイムで説明できないクラッシュを引き起こす可能性のあるエラーの一種です。