![]() |
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 |
Re: dumme Frage zum Debugger, nicht lachen
Zitat:
|
Re: dumme Frage zum Debugger, nicht lachen
Diese Option (anhalten auf Wertänderung) ist mit D2005 entfernt worden und seit dem auch nicht wieder aufgetaucht bis einschliesslich D2007. Den Grund dafür weiss nur Borland/CodeGear. Diese Funktion habe ich schon mehrfach schmerzlich vermisst im BDS2006 und es war sehr ärgerlich festzustellen, dass dies nicht mehr geboten wird.
|
Re: dumme Frage zum Debugger, nicht lachen
Hallo Thomas,
Zitat:
Gruß Hawkeye |
Re: dumme Frage zum Debugger, nicht lachen
Zitat:
Dort war mein Vorgehen wie beschrieben: Beim debuggen Werte untersucht und den überwachten Ausdrücken hinzugefügt und dort dann unter den Eigenschaften entsprechend "Anhalten bei Änderung" aktiviert. Wenn es nun nur noch über das Hauptmenu geht, dann kann ich das gut und gerne noch nie gefunden haben, da ich nur mit Shortcuts lebe und arbeite und das Hauptmenu nie nutze - höchstens die Toolbar. Ich war aber der Meinung dort schonmal geschaut zu haben, aber das kann damals ohne Debugger geschehen sein... |
Re: dumme Frage zum Debugger, nicht lachen
Ziemlich umständlich das Ganze - vor allem, weil man sich die Adresse erst noch manuell besorgen muss (CPU-Fenster) oder STRG+F7.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 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