2

デバッグモードとリリースモードでのデバッグの違いは何ですか? リリース モードでは、ロードされるシンボル テーブルに含まれるシンボルの情報が少なくなります。つまり、デバッグ情報が少なくなります。しかし、C/C++->Optimization->Optimization で " Disabled (/Od) " を設定すると、2 つのデバッグ タイプに違いは見られませんでした。デバッグ モードとリリース モード (最適化無効) に違いはありますか?

4

1 に答える 1

3

それに魔法はほとんどありません。Debug と Release は、一連のコンパイラ オプションに割り当てられた単なる名前です。デバッグ構成に最も関連するオプションは /Od オプションです。オプティマイザーを無効にするため、コードのデバッグが容易になります。

明らかに、リリース構成オプションをいつでもデバッグ構成オプションに似たものに変更できます。オプティマイザを無効にするのと同じです。現在、それらの間に関連する違いはなくなり、リリース構成はデバッガーのデバッグ構成と非常によく似た動作をします。

コードに影響を与えるデバッグ構成で通常使用されるその他のオプション:

  • _DEBUG マクロが定義され、アサートが発生します
  • 関数のインライン化はオフになっています
  • /RTC オプションがオンになっているため、コード内のバグを見つけるのに非常に優れています
  • _HAS_ITERATOR_DEBUGGING マクロが定義され、STL クラスを使用するコードのバグをキャッチします。
  • CRT のデバッグ ビルドとリンクし、そのビルドでアサートを有効にします。
  • #include crtdbg.h を指定すると、デバッグ アロケータが有効になります。
  • 編集と継続のサポートがオンになっています。副作用として、スタック フレームがはるかに大きくなります。
于 2013-07-17T11:53:39.983 に答える