2010-12-20 10 views
1

リリースアプリケーションのデバッグ中に変数値を確認したいと考えています。 コンパイラオプションをZ7として設定し、/ DEBUGと/ PDB:リンカオプションを指定しました。今私はアプリケーションのためのpdbを持っています。リリースビルドで変数値を表示する方法

この設定では、コード内にブレークポイント(Windbg)を入れて正しくヒットします。しかし、私は可変値を見ることができません。

[ローカル]ウィンドウにはポインタの値しか表示されませんが、同じものの内容は表示されません。例えば、内部にintを持つ構造体へのポインタを持っている場合、ポインタの値が表示されます。ツリー内で+をクリックして同じ値を展開すると、変数名に値が表示されます。<Memory access error>

どのようにしてリリースビルドに変数値を表示する必要がありますか?

答えて

1

何度も存在しないため、何も表示されません。最適化されたアセンブリコードを見ると、パフォーマンスのために多くの中間変数が完全に削除されています。それはあなたが見ている可能性が最も高く、その周りの唯一の方法は、逆アセンブリに従って、正しいメモリの場所/レジスタを見ることです。

+0

私はここでは最適化はないと思います。私は永続的な対象物さえできません。 – Canopus

+0

分解を見てください。ブレークポイントの時点で、変数とレジスタの状態は、デバッグモードの場合と同じではなく、明確ではないことがわかります。物事は別の順序で行われ、気にするポインタはおそらくアクセスできません。 – tenfour

+0

私はクラス関数の中にいますが、まだ私はこのポインタの内容を見ることができません。 – Canopus

関連する問題