Debugging - intelligente Breakpoints
Verfasst: Dienstag 16. September 2008, 07:28
Hallo.
Immer wieder passiert es, dass ich auf der Suche nach einem Fehler fast verzweifle. Angenommen, mein Programm wirft eine Exception an einer Stelle und bricht daraufhin ab. Jetzt setze ich einen Breakpoint kurz vor der Stelle. Dann muss ich aber feststellen, dass der Absturz nicht beim ersten Durchlauf durch die Stelle zustande kommt. Wenn ich Pech habe, ist es erst beim 100sten Durchlauf soweit. Was ich mir wünsche, wäre eine Möglichkeit
schnell und einfach in Eclipse, zu sagen, dass er an der Stelle anhalten soll, falls dort eine Exception entsteht. Dann hätte ich den kompletten Funktionsaufrufstack zur Hand, der zum werfen der Exceptions geführt hat, und könnte mir jeweils die Variablenbelegungen ansehen.
Mein workaround sieht im Moment immer so aus, dass ich mir die betreffende Zeile in einen try-except-block einpacke und dann einen break-point im except-block setze. Dazu muss ich aber jedesmal den Programmcode ändern.
Versteht ihr was ich meine? Übersehe ich was offensichtliches?
danke und gruß
barfoos
Immer wieder passiert es, dass ich auf der Suche nach einem Fehler fast verzweifle. Angenommen, mein Programm wirft eine Exception an einer Stelle und bricht daraufhin ab. Jetzt setze ich einen Breakpoint kurz vor der Stelle. Dann muss ich aber feststellen, dass der Absturz nicht beim ersten Durchlauf durch die Stelle zustande kommt. Wenn ich Pech habe, ist es erst beim 100sten Durchlauf soweit. Was ich mir wünsche, wäre eine Möglichkeit
schnell und einfach in Eclipse, zu sagen, dass er an der Stelle anhalten soll, falls dort eine Exception entsteht. Dann hätte ich den kompletten Funktionsaufrufstack zur Hand, der zum werfen der Exceptions geführt hat, und könnte mir jeweils die Variablenbelegungen ansehen.
Mein workaround sieht im Moment immer so aus, dass ich mir die betreffende Zeile in einen try-except-block einpacke und dann einen break-point im except-block setze. Dazu muss ich aber jedesmal den Programmcode ändern.
Versteht ihr was ich meine? Übersehe ich was offensichtliches?
danke und gruß
barfoos