PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschied Debug- und Release-Version?


WhiteVelvet
2006-06-02, 14:49:02
Was genau ist bei Visual Studio C++ der Unterschied zwischen Release und Debug-Version? Welches ist zu bevorzugen? Im Moment habe ich das Programm auf Debug....

Coda
2006-06-02, 14:56:42
Ist das ernst gemeint?

Debug ist zum debuggen (wie der Name schon sagt), beinhaltet also Symbolinformationen und läuft viel langsamer als Release, weil auch die Optimierungen größtenteils deaktiviert werden müssen.

Release ist zum ausliefern (wie auch der Name schon sagt).

Neomi
2006-06-02, 15:03:58
Der Unterschied ist genau der, der vom Namen schon suggeriert wird.

Die Debug-Version ist zum Debuggen da. Du kannst in Einzelschritten durchsteppen, an Breakpoints anhalten, die den Inhalt von Variablen jederzeit anschauen, ...

Die Releaseversion ist schlanker und schneller, da die Debuginformationen fehlen und einige Optimierungen durchgeführt werden. Sie ist immer dann sinnvoll, wenn du ein Programm auf Performance optimierst oder das Programm weitergeben willst.

Soweit die Kurzfassung. Projektkonfigurationen (du kannst dir noch beliebig viele weitere machen oder die vorgegebenen modifizieren) sind ein mächtiges Werkzeug, da gibt es noch sehr viel mehr zu entdecken. Am besten einfach mal die Doku wälzen.

Gast
2006-06-02, 15:27:29
wo wir schon beim thema sind ich hab hier ne webanwendung (vstudio) die sich nich mehr debuggen lassen will, debug = true, auf der seite selbst als auch in der config. woran könnte das liegen? vor einiger zeit gings noch...

Neomi
2006-06-02, 15:44:02
Gast[/POST]']woran könnte das liegen? vor einiger zeit gings noch...

Na dann wird das an dem liegen, was in der Zwischenzeit verändert wurde. Sorry, aber auf eine so allgemeine Frage kann niemand eine spezielle Antwort geben. Detaillierte Fehlerbeschreibungen sind schon nötig bei solchen Problemen.

WhiteVelvet
2006-06-02, 15:47:54
Coda[/POST]']Ist das ernst gemeint?

Debug ist zum debuggen (wie der Name schon sagt), beinhaltet also Symbolinformationen und läuft viel langsamer als Release, weil auch die Optimierungen größtenteils deaktiviert werden müssen.

Release ist zum ausliefern (wie auch der Name schon sagt).

Ja, das war ernst gemeint. Was was heisst ist mir klar, aber nicht, wieso diese Unterscheidung während der Entwicklung gemacht wird. Ich bin Delphi-Programmierer, da gibt es eine solche Unterscheidung nicht.

Gast
2006-06-02, 16:21:43
WhiteVelvet[/POST]']Ja, das war ernst gemeint. Was was heisst ist mir klar, aber nicht, wieso diese Unterscheidung während der Entwicklung gemacht wird. Ich bin Delphi-Programmierer, da gibt es eine solche Unterscheidung nicht.das ist z.B. sinnvoll damit du jederzeit bequem und schnell zwischen beiden Versionen hin- und herschalten kannst.
Nimm an du compilierst zuerst die Debug-Version. Wenn die dann fehlerfrei läuft, schaltest du auf Release um und testest die Release-Version dann. Wenn die dann noch nicht fehlerfrei läuft, gehst du nochmal in den Debug-Modus und guckst nochmal genauer nach ob du vielleicht einen Fehler übersehen hast. Hast du den schließlich gefunden, änderst du deinen Sourcecode entsprechend ab und compilierst abermals die Release-Version. Vielleicht findest du den Fehler aber nicht um experimentierst daher nochmal ein bißchen mit der Release-Version. Usw.
Wie schon erwähnt ist das insbesondere für solche Programme gedacht, die du nicht zur eigenen Verwendung schreibst, sondern an andere weitergibst.

Kabelsalat
2006-06-02, 16:49:48
Die Unterscheidung gibt es auch in Delphi, bloß musst du Mühsam im Projekt-Optionen-Dialog die gewünschte Konfiguration zurecht klicken.