Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   dumme Frage zum Debugger, nicht lachen (https://www.delphipraxis.net/99547-dumme-frage-zum-debugger-nicht-lachen.html)

stoxx 13. Sep 2007 19:33


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

mirage228 13. Sep 2007 19:36

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

SirThornberry 13. Sep 2007 19:38

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.

stoxx 13. Sep 2007 19:56

Re: dumme Frage zum Debugger, nicht lachen
 
Zitat:

Zitat von mirage228
Hi,

Ich glaube, das was du suchst ist unter "Start" -> "Haltepunkt hinzufügen". Dort kannst Du z.B. bedingte Haltepunkte erstellen.

mfG
mirage228


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*

Gruber_Hans_12345 13. Sep 2007 20:14

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

stoxx 14. Sep 2007 01:06

Re: dumme Frage zum Debugger, nicht lachen
 
Zitat:

Zitat von Gruber_Hans_12345
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

nach dreimaligem Hinschauen hatte ich es immernoch nicht gefunden, den Eintrag gibts nur bis Delphi7.
Ab Delphi2005 nix mehr zu finden.
Und jetzt? Einfach weg? .. hmmmm

RavenIV 14. Sep 2007 14:21

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).

hoika 14. Sep 2007 14:27

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:
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;
Wenn sich die ID jetzt trotzdem noch ändert,
ohne das der Breakpoint angesprungen wird,
wird meistens im Code Speciher überschrieben.


Heiko

SirThornberry 14. Sep 2007 14:33

Re: dumme Frage zum Debugger, nicht lachen
 
Zitat:

Zitat von SirThornberry
@stoxx: könntest du bitte dem Beitrag einen aussagekräftigen Titel geben? Der Titel sagt momentan so gut wie nichts zu deinem Problem aus.

Daran hat sich noch nichts geändert!

grenzgaenger 15. Sep 2007 14:07

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

s-off 15. Sep 2007 14:48

Re: dumme Frage zum Debugger, nicht lachen
 
Zitat:

Zitat von grenzgaenger
dann, auf den positionieren, rechte maustaste --> haltepunkt eigenschaften... hier kannste dann 'ne bedingung angeben, wann die ziehen soll.

Da ist nicht das, was er möchte!

Muetze1 15. Sep 2007 18:29

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.

Hawkeye219 15. Sep 2007 19:45

Re: dumme Frage zum Debugger, nicht lachen
 
Hallo Thomas,

Zitat:

Zitat von Muetze1
Diese Option (anhalten auf Wertänderung) ist mit D2005 entfernt worden und seit dem auch nicht wieder aufgetaucht bis einschliesslich D2007.

In meinem BDS 2006 kann ich einen Datenhaltepunkt über den Menüeintrag Start / Haltepunkt hinzufügen / Datenhaltepunkt hinzufügen - allerdings nur zur Laufzeit, so wie es Heiko in Beitrag #8 geschrieben hat. Diese Einschränkung gab es aber meiner Meinung nach schon bei Delphi 6.

Gruß Hawkeye

Muetze1 15. Sep 2007 21:49

Re: dumme Frage zum Debugger, nicht lachen
 
Zitat:

Zitat von Hawkeye219
In meinem BDS 2006 kann ich einen Datenhaltepunkt über den Menüeintrag Start / Haltepunkt hinzufügen / Datenhaltepunkt hinzufügen - allerdings nur zur Laufzeit, so wie es Heiko in Beitrag #8 geschrieben hat. Diese Einschränkung gab es aber meiner Meinung nach schon bei Delphi 6.

Wenn das der einzige Weg ist dies zu bewerkstelligen, dann kann es sehr gut sein, dass ich diesen Punkt übersehen habe. Ich suche diese Option immer im Debugger (beim debuggen), wenn ich mir Variablen ansehe (bzw. "untersuche") bzw. zur Überwachung hinzufüge. Dort suche ich dann die entsprechende Option, bei den überwachten Ausdrücken, anzuhalten, wenn sich der spezifische Ausdruck ändert. Dort gibt es diese Option nicht mehr im Gegensatz zu den Delphi Versionen vor 2005.

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...

s-off 15. Sep 2007 22:04

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