Watch List im debugger ist halb-kaputt! was tun?

Für Installationen unter Linux-Systemen
mojo777
Beiträge: 13
Registriert: Sa 26. Jul 2008, 21:23

Watch List im debugger ist halb-kaputt! was tun?

Beitrag von mojo777 »

Hallo forum!
Meine watchlist funktioniert nicht mehr.
Immer wenn ich eine variable eingebe, wird deren wert angezeigt.
Wenn es aber ein Objekt ist, wie z.b. der Klasse TSQLQuery,
dann funktioniert folgendes nicht:

Code: Alles auswählen

sql.RecordCount

Das nervt total!
Hatte jemand schon das problem?
würde mich sehr sehr freuen, wenn mit da jemand helfen könnte.

ps:gibt es eine Möglichkeit die Objekte ebenfalls wie in Delphi zu inspizieren? das fehlt auch ein wenig. aber nicht so sehr wie überhaupt die möglichkeit eigenschaften dessen aufzurufen.


danke vielmals!

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Willkommen im Forum.

Um ehrlich zu sein, kann ich dir nicht ganz folgen, was du erreichen möchtest? Ich hab auch kein Delphi laufen, wo ich das mal schnell vergleichen kann. Vielleicht kannst du es nochmal anders formulieren, damit ich und andere es auch verstehen ;)
Johannes

mojo777
Beiträge: 13
Registriert: Sa 26. Jul 2008, 21:23

Beitrag von mojo777 »

also es ist so:

Code: Alles auswählen

for i:=1 to sql.recordCount do
begin
(...) <---- BreakPoint
end;

wobei

Code: Alles auswählen

sql:TSQLConnection;


Wenn ich den debugger im Breakpoint anhalte,
erhalte ich in der watchlist folgendes Ergebnis:
i --liefert--- 3
sql.recordCount ---liefert--- Syntax ERROR...


hoffe, das ist jetzt besser beschrieben.

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Das wurde hier schon ausführlich besprochen.
Der GDB kann keine Properties anzeigen (zumal keine solchen, die nicht direkt auf ein Feld zugreifen, sondern über einen Getter den Wert erhalten).

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Watch List im debugger ist halb-kaputt! was tun?

Beitrag von Socke »

Ein Workaround wäre das entsprechende Property in eine Variable zwischenzuspeichern und dann anzuzeigen....

mojo777
Beiträge: 13
Registriert: Sa 26. Jul 2008, 21:23

Beitrag von mojo777 »

hmmm..
ne. ist nicht so praktikabel die idee.

es muss funktionieren. ich habe diesen fehler letzte woche entdeckt. ich vermute mal, dass er direkt nach der neuinstallation nicht da war. sonst wäre es mir sicherlich aufgefallen. ich benutze die watch list ständig...

hoffe es findet sich noch eine lösung.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Das ging noch nie.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mojo777
Beiträge: 13
Registriert: Sa 26. Jul 2008, 21:23

Beitrag von mojo777 »

echt? boargh!
ok. das ist mal blöd. naja. hoffe, das wird in zukunft erzänzt.

wo kann ich mich denn mit meinem wunsch dazu melden? :)

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

mojo777 hat geschrieben:wo kann ich mich denn mit meinem wunsch dazu melden? :)


http://www.gnu.org/software/gdb/gdb.html

slai
Beiträge: 211
Registriert: Fr 27. Apr 2007, 17:36
Wohnort: Zürich
Kontaktdaten:

Beitrag von slai »

ich löse dieses Debuggerproblem immer mit einer showmessage() dialogen.
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Christian hat geschrieben:Das ging noch nie.


Also. mal ganz im Ernst: Ich verstehe es nicht. Den GNU-Debugger gibt es schon seit Ewigkeiten, er hat sich zum Standard-Debugger unter Linux entwickelt....

... die Mailingliste
http://sourceware.org/ml/gdb/2008-07/
zeugt davon, dass aktiv daran entwickelt wird, regelmäßig erscheinen neue Versionen.

Ich verstehe nicht, wie ein Debugger, der derart im Zentrum der OpenSource-Entwicklung steht und an dem aktiv weiterentwickelt wird, solch fundamentale Funktionen nicht unterstützt. Oder liegt das daran, dass er sie nur für bestimmte Sprachen, nicht aber für Pascal unterstützt?

mojo777
Beiträge: 13
Registriert: Sa 26. Jul 2008, 21:23

Beitrag von mojo777 »

interessante frage. ich vermute mal, dass delphi es kann, weil die entwickler auch die datenstrukturen im speicher kennen.

so oder so, es wird auf jeden fall zeit, dass nach einigen jahren auch die strukturen vom fpc vom debugger unterstütz werden. das ist ja echt wie im kindergarten alles mit showmessage(lalal) auszugeben.

sehr ärgerlich eigentlich. naja. ich bin dennoch weiter auf der suche und schaue mich bei den debuggern noch um. wenn es was spannendes gibt, poste ich das heirrein.

gruss und danke für alle beiträge!

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

Es hat wohl damit zu tun, daß gdb für C "optimiert" ist. Da haben es andere Programmiersprachen entsprechend schwerer.
Es ist geplant, für Lazarus einen eigenen Debugger zu entwickeln. Aber da hakt es wie so oft an der Manpower.

knight

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

anstatt Showmessage würde ich aber debugln() oder writeln() verwenden. Zumindest in Schleifen kann Showmessage ja etwas nervend sein...bei hundert Durchläufen ;)
Johannes

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

knight hat geschrieben:Aber da hakt es wie so oft an der Manpower.


Und die kann nur durch einen größeren Bekanntheitsgrad von Lazarus/FreePascal erreicht werden.

Liege ich richtig in der Annahme, dass widgetsets von den Programmierern des Lazarus-Projekts programmiert werden und sowas wie Debugger eher durch die FreePascal-Programmierer?

Wenn dies so ist: der FPC ist schließlich inzwischen in der zweiten stabilen Version vorhanden. Das würde doch im Prinzip die Wahrscheinlichkeit steigern, dass demnächst ein wenig Zeit für die Programmierung eines Debugger bleiben könnte? Weil der FPC ja im Prinzip "fertig" ist...

Antworten