AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Debugging: Fehlerzeile wird nicht angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Debugging: Fehlerzeile wird nicht angezeigt

Ein Thema von Rakshasa · begonnen am 7. Jan 2010 · letzter Beitrag vom 9. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#1

Debugging: Fehlerzeile wird nicht angezeigt

  Alt 7. Jan 2010, 21:41
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?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 7. Jan 2010, 23:53
Hallo Rakshasa

Zitat von Rakshasa:
Dies tritt allerdings nur bei eigenen Prozeduren auf
ich habe das gerade mal bei mir getestet und einnen Fehler in eine eigen Prozedure von mir eingebaut. Bei mir spring der Debugger in die richtige Zeile.

Ich würde vieleicht tippen, das die Prozedure gar nicht den Fehler hat. Was steht den im Meldungsfenster.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 12:59
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:

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;
Der Fehler tritt auf, weil list nicht initialisiert wurde - der Debugger spring leider nur auf die Zeile nach DoTest() bei Button1.Click.

Warum ist das so?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 13:02
In dem Fall würde ich einen Breakpoint auf die Prozedur setzen und da rein gehen.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 13:08
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:
var
list: TList;
x: ^integer;
begin
bei deiner Prozedur muß Delphi im End nichts machen, weswegen er dann vermutlich gleich ganz aus der Prozedur rausspringt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 13:55
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 14:01
Zitat von p80286:
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.
Hm...so geht es natürlich - sofern keine Schleifen von mehreren Hundert Einträgen in der jeweiligen Prozedur aufgerufen werden, wie das bei mir leider der Fall ist. Und wenn dann bei Eintrag xx von 100 eines Pointer-Arrays der Fehler auftritt...

Irgendwie ist es schon nervig, dass ich nur den Prozedur-Aufruf angezeigt bekomme und nicht den jeweiligen Fehler in der Prozedur. :-/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#8

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 14:22
Zitat von Rakshasa:
Hm...so geht es natürlich - sofern keine Schleifen von mehreren Hundert Einträgen in der jeweiligen Prozedur aufgerufen werden, wie das bei mir leider der Fall ist. Und wenn dann bei Eintrag xx von 100 eines Pointer-Arrays der Fehler auftritt...
- Kontextmenü des Haltepunkt (Rechtsklick links auf den Punkt)
- 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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 14:59
Zitat von Rakshasa:
Zitat von p80286:
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.
Hm...so geht es natürlich - sofern keine Schleifen von mehreren Hundert Einträgen in der jeweiligen Prozedur aufgerufen werden, wie das bei mir leider der Fall ist. Und wenn dann bei Eintrag xx von 100 eines Pointer-Arrays der Fehler auftritt...

Irgendwie ist es schon nervig, dass ich nur den Prozedur-Aufruf angezeigt bekomme und nicht den jeweiligen Fehler in der Prozedur. :-/
Du könntest auch mit Try except (innerhalb der Schleife) arbeiten - und dann im except den Haltepunkt setzen, dann weißt du auch, in welchem Durchlauf du bist.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Debugging: Fehlerzeile wird nicht angezeigt

  Alt 8. Jan 2010, 15:02
Hallo,

wie sehen überhaupt die Compiler-Optionen aus ?

Hast du mal ein komplettes Build gemacht ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz