AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Debug-Bug ?

Ein Thema von stahli · begonnen am 5. Mai 2021 · letzter Beitrag vom 23. Sep 2024
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#1

Debug-Bug ?

  Alt 5. Mai 2021, 23:12
Ich habe ein Problem beim Debuggen.

An einem bedingten Haltepunkt wird mit F8 statt schrittweise Debuggen "weiter ausführen" (F9) ausgeführt.
Video: https://youtu.be/yTVGrz3I-nk

Kennt Ihr sowas?
Normal sollte das ja nicht sein...

Ich könnte ggf. mal versuchen, das in einem kleinen Testprojekt nachzustellen und zu melden.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Debug-Bug ?

  Alt 6. Mai 2021, 01:39
Eigentlich sollte er hier vor Auswertung des bedingten Breakpoints anhalten (bzw. direkt nach dem vorherigen Befehl),
aber kann sein, dass er diese Breakpoint-Bedingung doch noch prüft, weil der Debugger grade auf dieser Zeile landet.
Und weil der Breakpoint grade "nicht" zutrifft, dann fehlerhaft ins F9 weitergeht (was dieser Breakpoint normal ja machen würde ... nja, eigentlich ohne Änderung einfach weiter, aber zum Prüfen muß der Debugger ja "unbemerkt" kurz anhalten und dann neu starten, oder nicht).

Ja, würde es auch als Fehler betrachten.
Aber nur diese "Vermutung", warum er es leider nicht macht. (als Hinweis/Vermutung für deine Fehlermeldung, bzw. für weitere Suchen, nach diesem Problem)


Mach mal ein Beep; , Sleep(0); , if Tag = 0 then ; oder sowas als "leeren" Befehl zwischen deine beiden Zeilen.




PS: Warum F8 und nicht F7?
Du hast doch nicht etwas die grauenhaften DebugDCUs in den Projektoptionen aktiv?
Es war echt eine schwachsinnige perverse perfide Idee, diese Option in neuen Projekten standardmäßig zu aktivieren. (und seit Jahrzehnten sooooo unfähig/unwillig zu sein, dass wie zurück zu ändern)

Bei F7 (ohne DebugDCUs) passiert das auch?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 6. Mai 2021 um 01:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Debug-Bug ?

  Alt 8. Mai 2021, 18:35
Vielen Dank!

Hier mal ein aktuelles Video mit ein paar neuen Infos: https://youtu.be/6TTqxOtXfj0

M.E. ist das ein Delphi-Bug.
So richtig klar ist mir aber nicht, was da falsch läuft...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Debug-Bug ?

  Alt 8. Mai 2021, 19:03
Man kann sich bestimmt via OTA in den Debugger hängen?

Wenn ja, dann könnte man sich eventuell anzeigen lassen, wann die Bedinnung des Haltepunktes ausgewertet wird, (entsprechend meiner Vermutung von oben)
und dort via MessageBox oder MessageAPI eine Meldundung ins Ereignis-Fenster der IDE ausgeben lassen.
(OutputDebubString geht innerhalb der IDE natürlich nicht, außer man debuggt die IDE selber)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Debug-Bug ?

  Alt 8. Mai 2021, 19:18
Jetzt bringen die zwei Dummy-Zeilen bei der realen Arbeit auch nichts mehr.

Ich versuche morgen (weil ich keine VM nutze und morgen sowieso ein komplettes Update mache) mal den Delphi-Patch und wenn das Problem dann noch besteht, mal ein kleines Testprojekt nachzustellen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: Debug-Bug ?

  Alt 8. Mai 2021, 20:11
Ich habe festgestellt wenn man innerhalb einer Funktion eine andere aufruft wie OutputDebugString dann muß der BreakPoint innerhalb dieser Funktion gesetzt werden.
Ansonsten überspringt der Debugger einfach die nächste Zeile.

Debugg doch mal mit der Unit welche die Funktion OutputDebugString enthält und setze dort den Breakpunkt.
Danach sollte eigentlich die nächste Zeile wo sich der BreakPoint befindet nach OutputDebugString angesprungen werden.

Der Compiler vor allem für 64Bit spinnt mit unter was das debuggen angeht.
Ich habe des öfteren das gleiche Problem wie du gezeigt hast im Video!

Versuch macht klug

PS:
Und ja es ist ein Delphi-Bug.

Geändert von venice2 ( 8. Mai 2021 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:56 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-2025 by Thomas Breitkreuz