![]() |
dumme Frage zum Debugger, nicht lachen
ich hab irgendwie in Erinnerung, oder kann mich auch täuschen, dass der Debugger an der Stelle des Sources anhalten kann, wenn sich eine bestimmte vorher definierte Variable ändert.
Dachte, ich hätte vor langer Zeit mal sowas gefunden, aber irgendwie .. hmmm |
Re: dumme Frage zum Debugger, nicht lachen
Hi,
Ich glaube, das was du suchst ist unter "Start" -> "Haltepunkt hinzufügen". Dort kannst Du z.B. bedingte Haltepunkte erstellen. mfG mirage228 |
Re: dumme Frage zum Debugger, nicht lachen
@stoxx: könntest du bitte dem Beitrag einen aussagekräftigen Titel geben? Der Titel sagt momentan so gut wie nichts zu deinem Problem aus.
|
Re: dumme Frage zum Debugger, nicht lachen
Zitat:
das ist irgendwie nicht ganz das, was ich suche, da muss unbedingt eine Quelltextzeile eingefügt werden, ich will ja aber gerade die Unit und Quelltextzeile finden, wo eine Veränderung einer ObjectVarialben stattfindet ... hmm Es geht um eine ID, die sich einfach ändert ... *grübel* |
Re: dumme Frage zum Debugger, nicht lachen
also, du kannst auch eine variable in die überwachten Ausdrücke einfügen (Watches) und dann hast du im Popupmenü einen Eintrag wie "Break when changed" damit hält der debugger dann an, wenn sich die variable ändert
|
Re: dumme Frage zum Debugger, nicht lachen
Zitat:
Ab Delphi2005 nix mehr zu finden. Und jetzt? Einfach weg? .. hmmmm |
Re: dumme Frage zum Debugger, nicht lachen
Du gehst mit dem Cursor in die Zeile, in der Du stoppen möchtest.
Dann mit <F5> einen Haltepunkt setzen. Rechtsklick auf den Haltepunkt, Haltepunkt Eigenschaften. Hier kannst Du dann die bedingungen setzen, wann der Haltepunkt aktiv sein soll (wann das Programm angehalten werden soll). |
Re: dumme Frage zum Debugger, nicht lachen
Hallo,
das Prüfen einer Variablen-Änderung darf erst zur Laufzeit festgelegt werden. Besser ist es, statt einer Variablen ein property zu benutzen und den breakpoint auf die Set procedure zu etzen
Delphi-Quellcode:
Wenn sich die ID jetzt trotzdem noch ändert,
type
TMyClass = class private FId: Integer; procedure SetId(const theValue: Integer); function GetId: Integer; public property Id: Integer read GetId write SetId end; procedure TMyClass.SetId(const theValue: Integer); begin FId:= theValue; // <<-- hier mit F5 den breakpoint setzen end; function TMyClass.GetId: Integer; begin Result:= FId; end; ohne das der Breakpoint angesprungen wird, wird meistens im Code Speciher überschrieben. Heiko |
Re: dumme Frage zum Debugger, nicht lachen
Zitat:
|
Re: dumme Frage zum Debugger, nicht lachen
ja, das geht. erst einen haltepunkt erstellen, wie das geht, weisste sicher...
dann, auf den positionieren, rechte maustaste --> haltepunkt eigenschaften... hier kannste dann 'ne bedingung angeben, wann die ziehen soll. noch viel spass gg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 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