2010-09-30 9 views
6

Hallo ich benutze Visual Studio 2010 und ich kann eine Sache nicht herausfinden. Ich kann Breakpoints sowohl im Release- als auch im Debug-Modus debuggen und setzen. Also, was ist der Unterschied zwischen den beiden?Visual Studio Debug vs Release-Modus

+0

möglich Duplikat von [Debug VS Release in .net] (http://stackoverflow.com/questions/90871/debug-vs-release-in-net) – nawfal

Antwort

8

Der Unterschied sind Optimierungen, die der Compiler im Freigabemodus anwendet. Sie können Breakpoints platzieren, wenn Sie PDB-Dateien haben, und sie werden standardmäßig auch im Release-Modus generiert.

+0

So können Sie Projekte erstellen und testen Sie sie mit Release-Modus in Visual Studio ohne Angst, einen Haltepunkt zu überspringen oder keine Debug-Informationen zu bekommen? – Rumplin

3

Neu zugewiesener Speicher enthält willkürliche Werte - was auch immer passiert ist, um zuletzt dort zu sitzen. In Release-Builds ist dies unberührt. Debug-Build in VS initialisiert neu zugewiesenen Speicher für 0xcdcdcdcd, um Flag als "nicht initialisiert" zu kennzeichnen.

Warum sollte ein Release Speicher mit Junk füllen, um das Debuggen zu erleichtern? Release-Modi sind genau das - minimaler zusätzlicher Overhead für aktuelle Releases.

5

hier ist eine detailliertere Antwort auf Scott Hanselmans Blog

Aber die Wurzel des Problems ist, dass der Code mit mehr Optimierungen kompiliert wird, Sie immer noch durch die Schaffung der PDB-Dateien debuggen kann. Hier

Verwandte Themen