Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

13.08.2003, 12:06

Degug/Release - Versionen

Hallo,

Sollte die Debug-Version eines Programms mit der Release-Version übereinstimmen (außer Compiler-Optimierungen) oder sollte man vielleicht in der Debug-Version noch zusätzlich irgendwelche Prüfungen anstellen?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

13.08.2003, 12:48

Ja, in der Debug-Version könnte man z.B. prüfen, ob irgendwelche Variablen ungültige Werte haben, auch bei Funktionen, die oft aufgerufen werden. Das umschließt Du dann mit einem #if _DEBUG, damit es bei Release nicht mit reinkommt.

Jens

Treue Seele

Beiträge: 117

Wohnort: Dresden

  • Private Nachricht senden

3

13.08.2003, 12:54

Prüf-Funktionen

zusätzlich kann man auch in der Debugversion mit assert(cond) prüfen, ob eine bestimmte Bedingung stimmt.
Es kommt in der Entwicklungsphase, vor, dass irgendwelche Werte gesetzt sind, die nicht zulässig sind. Erst, wenn die Logik stimmt, kann man sich auf bestimmte Werte verlassen. Deshalb prüfe ich in der Debug-Version z. B. am einfachsten mit assert(pPointer != NULL), ob der Pointer hier auf dem Null-Zeiger liegt.

Anonymous

unregistriert

4

13.08.2003, 14:18

Ja, das mit #ifdef _DEBUG ... #endif war mir bekannt.
Aber kann man in der Release-Version einer Engine voraussetzen, dass der Benutzer nur gültige Werte als Prameter für Funktionen verwendet?
Sonst könnte es ja zu Buffer-Overflows oder unvorhersehbaren Ereignissen kommen.

Was ist mit dem Arbeitsspeicher? Sollte man in der Debug bzw. Release-Version nach jedem Variable = new Typ testen ob Variable == 0/NULL ist?

PS: Was bedeuted assert?

Tobiking

1x Rätselkönig

  • Private Nachricht senden

5

13.08.2003, 14:27

Da fällt mir noch ein ist es ein schlechtes Zeichen wenn die Debug Version obwohl nicht anders ist als bei der Rlease version abstürtzt und die Release version läuft ?

DarthB

Treue Seele

Beiträge: 265

Beruf: Schüler

  • Private Nachricht senden

6

13.08.2003, 15:43

Hmm das kenn ich aber nur anders rum... meinste es vieleicht auch so?
Bei mir lief manchmal die Debug aber die Release nicht. Weil ich beispielsweiße vergessen hatte. Einen Pointer bei der deklartion zu NULL'en das wird wohl bei Debug automatisch gemacht oder so.

Ciao DarthB :huhu:

Tobiking

1x Rätselkönig

  • Private Nachricht senden

7

13.08.2003, 20:05

Ne ich meine das so die Debug Version schmiert immer ab. Liegt vielleicht daran das es sowiso noch experimentier Quellcode drin habe keine lust nach new auch noch delete zu benutzen ;D . Jetzt nicht schlagen aber ich schreibe sowiso demnächst alles noch mal ordentlich.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

14.08.2003, 01:31

Drücke NUR F5 und dann springt die IDE beim Fehler automatisch an die entsprechende Stelle im Quellcode. Also nicht Strg+F5, sondern NUR F5.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

9

14.08.2003, 02:39

Das weiß ich nur aus irgendeinem Grund kA ob ich was falsch mache oder nicht, sehe ich dann nur Assambler Zeugs und weit und breit keine Funktion wo das zu gehört. Liegt teilweise daran das ich d3d retail drauf habe und nicht debug aber ich habe bisher noch nie was anderes auser dem assambler kram gesehen. Hab übrigens MSVC++ 6.

10

25.08.2003, 00:34

Zitat von »"Gast"«

Ja, das mit #ifdef _DEBUG ... #endif war mir bekannt.
Aber kann man in der Release-Version einer Engine voraussetzen, dass der Benutzer nur gültige Werte als Prameter für Funktionen verwendet?
Sonst könnte es ja zu Buffer-Overflows oder unvorhersehbaren Ereignissen kommen.

Was ist mit dem Arbeitsspeicher? Sollte man in der Debug bzw. Release-Version nach jedem Variable = new Typ testen ob Variable == 0/NULL ist?

PS: Was bedeuted assert?


Ich schätze das die Hersteller auch eine Debug-Version ihrer Engine liefern werden.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige