![]() |
Debugging: Fehlerzeile wird nicht angezeigt
Hallo,
ich habe eine kurze Frage zum Debugging: Bei einem Fehler wird bei mir leider nicht die eigentliche Quellcodezeile des Fehlers angezeigt, sondern nur der Aufruf der Prozedur, in welcher der Fehler aufgetreten ist. Dies tritt allerdings nur bei eigenen Prozeduren auf, bei Fehlern, die bspw. innerhalb eines Button.OnClick() auftreten, springt der Debugger korrekt zu der jeweiligen Quellcodezeile. Woran kann das liegen? Muss ich irgendwelche besonderen Einstellungen vornehmen? |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Hallo Rakshasa
Zitat:
Ich würde vieleicht tippen, das die Prozedure gar nicht den Fehler hat. Was steht den im Meldungsfenster. Gruß Jens |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Ok, ich habe das etwas spezifizieren können: Der Fehler tritt anscheinend immer nur dann auf, wenn der Fehler durch eine Pointer-Operation ausgelöst wird. Der Fehler ist mit folgender Proezdur reproduzierbar:
Delphi-Quellcode:
Der Fehler tritt auf, weil list nicht initialisiert wurde - der Debugger spring leider nur auf die Zeile nach DoTest() bei Button1.Click.procedure TForm1.Button1Click(Sender: TObject); begin DoTest; end; Procedure TForm1.DoTest; var list: TList; x: ^integer; begin // list := Tlist.create; <-- Um den Fehler zu provozieren... New(x); x^ := 12; list.add(x); end; Warum ist das so? |
Re: Debugging: Fehlerzeile wird nicht angezeigt
In dem Fall würde ich einen Breakpoint auf die Prozedur setzen und da rein gehen. ;)
|
Re: Debugging: Fehlerzeile wird nicht angezeigt
Der Compiler Debugger hält in der nächsten Zeile, welche er ausführen würde, wenn man danach weitermacht.
(ab D2009 scheint dieses Verhalten aber geändert zu sein und dort hält er oftmals in der Fehlerzeile)
Delphi-Quellcode:
bei deiner Prozedur muß Delphi im End nichts machen, weswegen er dann vermutlich gleich ganz aus der Prozedur rausspringt. :gruebel:
var
list: TList; x: ^integer; begin |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Bei den älteren Versionen, wird (wenn in der IDE ausgeführt) in der Zeile nach der fehlerhaften Procedure/Function angehalten.
Ich mach es so das ich bis dahin mit F4 springe und dann die Procedure/Function mit F7 Schritt für Schritt abarbeite. Gruß K-H |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Zitat:
Irgendwie ist es schon nervig, dass ich nur den Prozedur-Aufruf angezeigt bekomme und nicht den jeweiligen Fehler in der Prozedur. :-/ |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Zitat:
- Haltepunkt-Eigenschaften - ... - Durchlaufzähler 100 : es wird erst beim 100-sten Durchlauf (zusammenhängend mit F5, F8 und Co.) angehalten - Bedingung "i = 100" : es wird nur angehalten, wenn i = 100 ist so, nun kannst du dich an dein Problem herantasten ansonsten mußt du halt eine Loggingfunktion einrichten und IM Programm mitloggen, was wann passiert ist |
Re: Debugging: Fehlerzeile wird nicht angezeigt
Zitat:
|
Re: Debugging: Fehlerzeile wird nicht angezeigt
Hallo,
wie sehen überhaupt die Compiler-Optionen aus ? Hast du mal ein komplettes Build gemacht ? Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz