AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlfunktion

Ein Thema von ts-d · begonnen am 18. Feb 2025 · letzter Beitrag vom 18. Feb 2025
Antwort Antwort
ts-d

Registriert seit: 29. Apr 2008
39 Beiträge
 
#1

Fehlfunktion

  Alt 18. Feb 2025, 10:30
--- erledigt ---


Hallo,

ich schreibe

Code:
if Suchkriterium <> '7' then
  k := k + 1;
und der Debugger arbeitet bei dem Wert '777' nicht die drunter stehende Anweisung ab, sondern überspringt diese Zeile!

Das ist doch ganz unmöglich!!!

Ich vermute einen Dateidefekt. Weiß jemand, wie man das wieder hin bekommt?


Anderes Symptom: Ich setze einen Haltepunkt bei

Code:
k := 0;
und der Debugger überspringt bei Einzelschritt die Zeile einfach, obwohl vor dem Start der Code neu compiliert worden war.

In dieser Zeile läßt sich auch kein Haltepunkt setzen. Er ist rot durchgestrichen nach dem Setzen.

Geändert von ts-d (18. Feb 2025 um 11:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Fehlfunktion

  Alt 18. Feb 2025, 10:41
Sieht es nur so aus, als wenn er das k := k + ausführt, oder wird es wirklich ausgeführt?

Und zu k := 0; .
Sag bitte nicht, dass man im Compilerlog sowas lesen kann, wie "H2077 Auf ... zugewiesener Wert wird niemals benutzt"
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.788 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fehlfunktion

  Alt 18. Feb 2025, 10:44
Da werden DCU-Dateien verwendet, die nicht zum Quelltext passen. Meistens liegt das an ungünstig gesetzten Such- und/oder Ausgabepfaden oder an nicht eindeutig benannten Units (z.B. Klassiker wie Main.pas in mehreren Projekten).

Das kannst du auch leicht prüfen, indem du vor und nach der Anweisung mit ShowMessage einfach mal den Wert von k ausgeben lässt. Vermutlich kommen diese MessageBoxen nicht, weil nicht der aktuelle Code verwendet wird.

Wenn der Dateiname nicht eindeutig ist, musst du die Unit zuerst umbenennen, damit er das ist. Vermutlich ist das Problem dann schon behoben. Am einfachsten kannst du ansonsten nach <Unitname>.dcu überall auf der Festplatte suchen und alle diese Dateien löschen. Das geht z.B. mit everything sehr schnell. (Das Tool ist ohnehin ein Muss auf jedem Rechner.)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
ts-d

Registriert seit: 29. Apr 2008
39 Beiträge
 
#4

AW: Fehlfunktion

  Alt 18. Feb 2025, 10:48
beim Weiterklicken im Debugger (Schritt-Modus) wird die Zeile übersprungen, d. h. es sieht so aus, wenn er die ganze Zeile einfach ignoriert.

Zu Deinem Hinweis:
Ja, Du hast Recht, da steht
[DCC Hinweis] MAIN.pas(4835): H2077 Auf 'k' zugewiesener Wert wird niemals benutzt
  Mit Zitat antworten Zitat
ts-d

Registriert seit: 29. Apr 2008
39 Beiträge
 
#5

AW: Fehlfunktion

  Alt 18. Feb 2025, 10:53
witzig, ich habe jetzt noch ein paar Prüfoptionen in den Optionen verschärft und jetzt scheint es zu funktionieren

Die Main.pas gibt es öfter, aber es gibt im Projekt nur Bezüge auf den Entwicklungsordner. Aber Löschen hatte auch nichts gebracht.

Es war schon merkwürdig, daß der Debugger wirklich so getan hat, als gäbe es die Zeile gar nicht. Beim schrittweisen Ausführen des Code hat er echt die Zeile ignoriert!!!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.788 Beiträge
 
Delphi 12 Athens
 
#6

AW: Fehlfunktion

  Alt 18. Feb 2025, 13:14
Ja, Du hast Recht, da steht
[DCC Hinweis] MAIN.pas(4835): H2077 Auf 'k' zugewiesener Wert wird niemals benutzt
Dann wird die Zeile einfach wegoptimiert. Der Wert wird ja nirgends verwendet, so dass die Zeile keinerlei Auswirkungen hätte.

Darum habe ich geschrieben, dass du ShowMessage dazupacken sollst. Dann wird der Wert verwendet. Daran siehst du dann beides, einerseits, dass der aktzuelle Quelltext verwendet wird, andererseits ob der Wert sich ändert.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:49 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