Fehlersuche
-
Hallo.
Ich habe einen Code, der Punktkoordinaten liest.
Er funktioniert bei 1.4 Mio. Koordinaten problemlos. Bei 10 Mio. Koordinaten gibt es einen Fehler in der Funktion, welche die Koordinaten liest.
Gibt es eine Möglichkeit, den Fehler abzufangen und den Index der Zählvariablen (um zu sehen, wo der Fehler auftritt) zurückzugeben, bevor das Programm endet?
Jetzt kommt immer die Windowsmeldung ("Programm.exe funktioniert nicht mehr... Es wird nach einer Lösung für das Problem gesucht")
Danke für Vorschläge,
Jan
-
Gib einfach die Zählvariable bei jedem (jedem 10, jedem 100, wenn das zu langsam wird) Punkt aus. Der letzte Index, der ausgegeben wird, ist der problematische (+/- 1)
-
Die allgemeinere und meist bessere Möglichkeit ist, einen Debugger zu benutzen.
Weiter kann ich nicht ins Details gehen, da es eben drauf ankäme, welchen Debugger du benutzt. Aber den Wert von irgendwelchen Zählern zum Zeitpunkt des Programmabsturzes auszugeben, das ist eine Kleinigkeit für jeden Debugger. Damit kann man noch viel mehr machen. Sehr nützlich, damit umgehen zu können. Meistens sehr viel besser, als ein Programm mit selbstgeschriebenen Debugausgaben vollzuhauen. Dafür muss man nämlich schon wissen, was falsch ist und kann es nur bestätigen. Wenn man mit den Annahmen falsch liegt, dann erfährt man so überhaupt nichts. Mit dem Debugger kannst du mindestens die unmittelbare Absturzursache leicht ermitteln, egal ob es an den Indizes liegt oder an etwas ganz anderem. Meistens ergibt sich daraus auch die wahr Ursache des Fehlers.
-
...dazu mache ich ein Neues Thema "Probleme bei calloc - bei großen Feldern" auf.