2011-10-27 12 views
1

WinDbg経由でデバッグを実行する必要がある場合、プロまたはコンスまたはリリース対デバッグビルドがありますか?私は、リリースビルドでデバッグを行うことに制限があるのか​​どうか疑問に思っています。リリース対デバッグビルド

答えて

2

まず、デバッグ情報(.pdb)が必要です。そして、リリースが構築さは、通常、最適化されています:いくつかの変数がレジスタ(もはやメモリを占有)、

  • にマッピングされている

    • 一部の機能は、インライン化されている(そして、あなたはそれらの上にブレークポイントを置くことができない)
    • 一部コードが並べ替えられました

    これは現時点で何が起こっているのかを理解することを非常に困難にします。

    一般的に、リリースビルドは注目に値するでしょうが、デバッグすることはしばしば難しくなります。それ以外には大きな違いは見られません。

  • +0

    ノートに関連する素敵な議論は、PDBファイルフォーマットの次のバージョンが最適化されたコードをデバッグするためのサポートを改善しているために起こっていることがあります。かなり素敵なもの、それについては興味深い記事があります:http://blogs.microsoft.co.il/blogs/sasha/archive/2011/10/12/debugging-optimized-code-in-visual-studio-11.aspx – snoone

    +0

    リリースがデバッグするのが難しくなると言うと、デバッグビルドの方が簡単になる方法の具体例を挙げることはできますか? –

    +0

    @Silverlight Student:関数が呼び出されるたびにヒットするように、ブレークポイントを関数の開始中括弧に設定したいとします。その関数がインライン化されていれば、その関数を呼び出すことはできません。そのため、コールサイトの場所とその関数にインライン化されたコードが正確に対応するコードを推測する必要があります。 – sharptooth

    関連する問題