Beim Debuggen läuft das Programm durch, sonst nicht
-
Hi,
Ich muss mal wieder eure Hilfe in Anspruch nehmen. Also, ich hab da ein Programm, was einfach nicht so will wie es soll. Und zwar erhalte ich, wenn ich es über den Debugger laufen lass( oder wie man das auch immer ausdrückt) richtige Ausgabewerte. Wenn ich es normal ausführe leicht falsche Werte. Ich bin schon seit Tagen am Verzweifeln!
Ich habe schon gehört solche Fehler lassen sich nur schwer finden( es muss aber sein^^).
So, nun zu meiner Frage, kann man so pauschal sagen, um was es sich handeln könnte, dass ich den Fehler so ganz grob eingrenzen kann? Ich bräuchte nur ein paar Hinweise, dass ich den Fehler grob eingrnzen kann.
Ich kompiliere mit dem gcc bzw. mingw. Der Fehler tritt aber auch mit dem gcc unter Linux, also neuste Version auf. Komisch erscheint mir noch, dass das Programm mit dem Vc++ ohne Probleme durchläuft, aber das ist wahrscheinlich Zufall, oder er ist da irgendwie großzügiger. Aber ich denke ein Fehler muss da ja in meinem Programm sein, der vielleicht dann auch irgendwann mit dem Vc++ auftreten wird.
Ich vermute den Fehler irgendwo hier:void test( struct polygon *pol) { int letzte_faltnummer = 0; search_last_faltnummer( pol, &letzte_faltnummer); print_last( pol, letzte_faltnummer); } void print_last( struct polygon *pol, int last) { static int count = 0; struct polygon *poly; char string[10]; if( pol == NULL) return; print_last( pol->next_links, last); if( pol->faltnummer == last) { for( poly = pol; poly->previous != NULL; poly = poly->previous) { if( (poly->previous->next_links == poly) && (poly->vorgehensweise == LINKS)) { spiegeln_4( pol->punkte, pol->anzahl_punkte, poly->faltgerade); } if( (poly->previous->next_rechts== poly) && (poly->vorgehensweise == RECHTS)) { spiegeln_4( pol->punkte, pol->anzahl_punkte, poly->faltgerade); } } itoa( count, string, 10); count += 1; flaeche( pol->punkte, pol->anzahl_punkte, string); } print_last( pol->next_rechts, last); }
Vielleicht sieht jemand hier ja schon einen Fehler? Bin aber auch nicht ganz sicher, ob er sich hier versteckt. Falls hier kein Fehler zu entdecken ist einfach ein paar Hinweise, was so einen eigenartigen Fehler verursachen könnte.
Bin für jeden Hinweise dankbar!
mfg
blut-lecker
-
Log alles in nem file. hast sicher vergessen irgendwas zu initialisiern was der debugger vlt macht
-
du musst halt gescheit debuggen. guck eben auf alle werte, ist doch keine kunst.
-
Hi,
debbugdochohnedebugger schrieb:
Log alles in nem file. hast sicher vergessen irgendwas zu initialisiern was der debugger vlt macht
Was meinst du mit log alles in einem File?
c.rackwitz schrieb:
du musst halt gescheit debuggen. guck eben auf alle werte, ist doch keine kunst.
Naja, irgendwie find ich es nicht so leicht, wenn die Werte stimmen. Soweit ich das überblicken kann.
mfg
blut-lecker
-
vorschlag
du machst ein neues projekt auf.
dort bastelst du einen test fuer deine funktionen.
der checkt, ob alles einzeln funzt wie es soll.
dann checkt der test, ob einzelne teile zusammenspielen.
das dann immer weiter, bis du am ende alles zusammenlaufen hast.wenn das nicht hilft, guck mal hier im unterforum, da hab ich vor einem jahr mal einen thread gestartet, der faengt "RTFM!" an. hat gute tipps. sollte das nicht helfen, postest du deinen testcode, nicht den grossen code mit sachen die nicht relevant sind.