2010-12-20 8 views
1

Ich möchte die Variablenwerte zu sehen, in der Lage sein, während eine Release-Anwendung debuggen. Ich habe die Compiler-Option als Z7 gesetzt und eine/DEBUG und/PDB: Linker-Option gegeben. Jetzt habe ich eine pdb für die Anwendung.Wie die Variablenwerte in Release Erstellungen

Mit dieser Einrichtung Ich bin in der Lage einen Haltepunkt (Windbg) in dem Code zu setzen und es trifft richtig. Aber ich kann die Variablenwerte nicht sehen.

Das Lokalfenster zeigt nur den Wert Zeiger, aber ich kann den Inhalt derselben sehen. Zum Beispiel, wenn ich einen Zeiger auf eine Struktur habe, die ein int darin hat, zeigt es nur den Wert des Zeigers an. Wenn ich dasselbe durch Klicken auf + im Baum expandiere, sehe ich den Variablennamen mit dem Wert <Memory access error>

Wie soll ich die Release-Builds die Variablenwerte anzeigen lassen?

Antwort

1

Viele Male, können Sie sie nicht sehen, weil sie nicht existieren. Wenn Sie sich den optimierten Assembler-Code anschauen, werden Sie feststellen, dass viele Zwischenvariablen zugunsten der Performance komplett entfernt werden. Das ist wahrscheinlich das, was Sie sehen, und der einzige Weg ist es, der Zerlegung zu folgen und die richtigen Speicherplätze/Register zu beobachten.

+0

Ich denke nicht, dass die Optimierung hier der Fall ist. Ich bin nicht in der Lage, sogar die hartnäckigen Gegenstände. – Canopus

+0

werfen Sie einen Blick auf die Disassembly - Sie werden sehen, dass an der Stelle des Breakpoint, der Zustand der Variablen und Registern ist nicht so sauber und klar wie im Debug-Modus. Die Dinge werden in einer anderen Reihenfolge ausgeführt, und der Zeiger, der Ihnen wichtig ist, ist wahrscheinlich nicht einmal zugänglich. – tenfour

+0

Ich bin innerhalb einer Klassenfunktion, trotzdem kann ich den Inhalt dieses Zeigers nicht sehen. – Canopus

Verwandte Themen