AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Breakpoint stoppt in falscher Methode
Thema durchsuchen
Ansicht
Themen-Optionen

Breakpoint stoppt in falscher Methode

Ein Thema von Hobbycoder · begonnen am 7. Jan 2025 · letzter Beitrag vom 8. Jan 2025
Antwort Antwort
Seite 1 von 2  1 2      
Hobbycoder

Registriert seit: 22. Feb 2017
972 Beiträge
 
#1

Breakpoint stoppt in falscher Methode

  Alt Gestern, 11:53
Hi,
ich habe hier ein sehr merkwürdiges Problem. In meinem (VCL D10.3)Programm habe ich eine Zugriffsverletzung und wollte deshalb mit Breakpoints auf die Suche gehen.

Schaut euch an dieser Stelle kurz das Bild an. Interessant ist hier, wo der Breakpoit sitzt, und welche Methode im Call-Stack angezeigt wird.
Zum Anlauf: Ich start das Programm und klicke dort aber nichts an. Dann wechsele ich in die IDE und setze den Breakpoint (könnte ich aber auch vor dem Start machen, das ist egal) auf einem "begin", was eigentlich ja gar nicht gehen sollte. Überhaupt, wie man im Quellcode sieht sie die berücksichtigten Zeilen, wo man Breakpoints setzen könnte etwas willkürlich mit dem blauen Punkt versehen. Wenn ich im Call-Stack auf den obersten Eintrag doppelklicke, dann lande ich auch an der Position, die im Quellcode markiert ist.

Das wirkt für mich so, als wenn der angezeigte Quellcode nicht mit dem übereinstimmt, was der Debugger auswertet. Nur warum?

Ich habe schon das Projekt bereinigt und die IDE neu gestartet. Verhalten bleibt.

Was mir schon vorher aufgefallen ist, hab ich aber ignoriert, ab einer bestimmten Zeile in der Main.pas (die genaue Zeile müsste ich noch prüfen) funktioniert die Code-Vervollständigung für die eigenen Variablen, Classen, Konstanten nicht mehr.

Hat einer eine Idee, wir ich dem auf die Spur kommen könnte?
Miniaturansicht angehängter Grafiken
fehler-breakpoints.png  
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.774 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 11:56
.. bleibt das Problem nach einem neuen build/erzeugen bestehen?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
972 Beiträge
 
#3

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 12:02
Ja, leider.

Er landet auch direkt nach dem Start der Anwendung in der vonScanner1Click-Methode.

Ich hab noch mal einen Screenshot nach den Neu Erzeugen vor dem Start. Da zeigt die IDE sogar eine möglichen Breakpoint in auskommentierten Quelltext an.
Miniaturansicht angehängter Grafiken
fehler-breakpoints2.png  
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
681 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 12:07
Der Debugger findet zuerst veraltete debug-dcus. Such mal, ob dcus mit gleichem Namen noch irgendwo liegen und lösch die mal
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
972 Beiträge
 
#5

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 12:17
Der Debugger findet zuerst veraltete debug-dcus. Such mal, ob dcus mit gleichem Namen noch irgendwo liegen und lösch die mal
Das Problem habe ich lediglich in der main.pas. So heißen aber bei mir immer die Main-Forms, von daher wird es sehr viele main.dcu's geben. Jedoch liegen die immer woanders.
Ich habe jetzt mal alle DCU's im Win32\Debug gelöscht. Fehler bleibt. Dann habe ich das Projekt mal auf Win64 compiliert, gleiches Problem.
In anderen Units habe ich das Problem nicht.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
972 Beiträge
 
#6

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 12:42
Das Problem vergrößert sich.

Nun habe ich eine Procedure
Delphi-Quellcode:
procedure TfrmMain.VorlagenfrZeiten1Click(Sender: TObject);
begin
  frmVorlageUhrzeiten.mmoUhrzeiten.Lines.Assign(ZeitenList);
  if frmVorlageUhrzeiten.showModal=mrOK then
  begin
    ZeitenList.Assign(frmVorlageUhrzeiten.mmoUhrzeiten.Lines);
    SaveZeiten;
  end;
end;
wo das showModal nicht ausgewertet wird. Der Button in der frmVorlageUhrzeiten hat definitiv die Eigenschaft ModalResult=mrOK. Zusätzlich habe ich bei dessen OnClick das nochmal per Code einfügt.

Wenn ich im obigen Code einen Breakpoint setze, wird dieser nicht berücksichtigt. Wahrcheinlich wegen dem Problem in Post #1, und der debugger setzt den breakpoint ganz woanders.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.802 Beiträge
 
Delphi 12 Athens
 
#7

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 13:25
Vielleicht ist ein nicht sichtbares Steuerzeichen irgendwie im Code gelandet. Sowas verursacht dann gerne mal mysteriöse Dinge. Versuch mal den Code komplett zu bereinigen, am einfachsten geht das durch die Codeformatierung.
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
127 Beiträge
 
Delphi 12 Athens
 
#8

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 13:42
Prüf mal die Zeilenumbrüche!

Ich hatte mal soetwas und habe im Nitepad++ die Zeilenumbrüche explizit gesetzt für die PAS-Datei und dann war alles gut. (Waren vorher nicht einheitlich, womit der Editor zu recht kommt, der Debugger nicht)
Björn Reimer
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.669 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 13:47
Benenne deine Unit testweise einfach in einen vollkommen eindeutigen Namen um. Dann kann es keine herumliegenden DCUs geben und da das das Hauptfenster ist, sollte es ja auch keine weiteren Units geben, die dieses referenzieren. Insofern sollte die Umbenennung ja schnell gehen.

An den blauen Punkten kannst du nach dem Ausführen aber auch sehen, ob die verwendete DCU zum Quelltext passt. Du kannst ja einfach ein paar Leerzeichen einfügen, dann sollten sich die Punkte entsprechend verschieben.

Und um zu sehen, ob dein gerade geänderter Quelltext verwendet wird, bietet sich ein ShowMessage an, das dann auch gleich das Ergebnis des ShowModal-Aufrufs anzeigen kann.

Die genannten Punkte zu Steuer- oder Leerzeichen sind auch gute Hinweise.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
972 Beiträge
 
#10

AW: Breakpoint stoppt in falscher Methode

  Alt Gestern, 14:31
Vielleicht ist ein nicht sichtbares Steuerzeichen irgendwie im Code gelandet. Sowas verursacht dann gerne mal mysteriöse Dinge. Versuch mal den Code komplett zu bereinigen, am einfachsten geht das durch die Codeformatierung.
Die Formatierung hat's gebracht. Danach läuft scheinbar alles und ich kann auch wieder überall Breakpoints setzen. Sowas hatte ich bisher noch nie.

Vielen Dank. Das hat mir den Tag gerettet, da ich mit dem Projekt grad fast fertig bin und ich gleich zum Kunden wollte um es mit ihm durchzusprechen.

Allen anderen auch vielen Dank für eure Zeit.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  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 18:03 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