Debugger zeigt Variableninhalt zur Laufzeit nicht mehr an...

Für Fragen rund um die Ide und zum Debugger
Antworten
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:

Debugger zeigt Variableninhalt zur Laufzeit nicht mehr an...

Beitrag von Euklid »

Hallo!

Ich habe mit meinem Lazarus 0.9.24 FPC 2.2.0 folgendes Debugger-Problem:

Durch Setzen eines Breakpoints im Quelltext konnte ich bisher immer durch einen Hint über entsprechender Variablen dessen Inhalt sehen. Statt des Variableninhalts wird im Hint nun folgendes ausgegeben:
Internal error: `this' is not an aggregate
Noch merkwürdiger verhält es sich, wenn ich mir den Variableninhalt über "Ansicht --> Debugger --> Lokale Variablen" angucken möchte:
Die neben den Variablen angezeigten Werte nehmen unerwartete Werte an. Insbesondere ändern sich die Werte mit jedem F8-Schritt zufällig und unabhängig vom Quelltext, der gerade abgearbeitet wird.
Da dies auch bei Quelltext der Fall ist, welcher richtig funktioniert, scheint auch dies ein Debugger-Problem zu sein.

Frage: Wie werde ich dieses Problem los?

Was ich schon versucht habe:
Ich habe die Einstellungen nach offensichtlichen Fehleinstellungen überprüft. Hier keine Auffälligkeiten.
Anschließend habe ich den GNU Debugger neu installiert, ohne Erfolg. Auch eine Neuinstallation von Lazarus samt FPC brachte keine Besserung.
Google findet zu oben zitierter Meldung nichts, was mir weiter hilft.

Bin also auf Eure Hilfe angewiesen ;)

Achso: Eben schien der Debugger sogar den X-Server zum Absturtz gebracht zu haben.

Meine Einstellungen unter "Projekt --> Compilereinstellungen --> Linken":
Hier habe ich nur das Häckchen bei "zeilennummern..." gesetzt.

Ihr könnt ja Bescheid geben, wenn ihr noch weitere Infos benötigt. Danke schonmal!

Viele Grüße, Euklid

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6790
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Zusatzfrage:

a)Ist was geändert worden zwischen dem letzten Funktionieren und dem 'nicht' Funktionieren. (BS-Patch, SW geändert)

b)Gibt es Zusatzinformationen, wenn du Lazarus von der Konsole aus startest ?

c)Alle Projekte betroffen, oder gehen die Beispiele von Lazarus ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

af0815 hat geschrieben:a)Ist was geändert worden zwischen dem letzten Funktionieren und dem 'nicht' Funktionieren.
An meiner Lazarus-Installation ist nichts geändert worden. Ich verwende die "original Beta 0.9.24" sozusagen.
Auf meinem Betriebssystem (Debian) habe ich zwischenzeitlich viele neue Software installiert und einiges wieder deinstalliert. Hier gehe ich immer vorsichtig vor, Synaptic erkennt keine Ungereimtheiten oder nicht gelöste Abhängigkeiten. An den mir bekannten lazarusrelevanten Paketen wurde nichts geändert.

Was sich geändert haben könnte, sind Einstellungen in der Lazarus-Umgebung. Ich bin hier sehr experimentierfreudig und probiere verschiedene Optionen einfach mal aus. In der Regel mache ich die Änderungen aber stets wieder rückgängig, wenn sie keine Vorteile bringen. Möglicherweise habe ich das irgendwann mal vergessen?

af0518 hat geschrieben:b)Gibt es Zusatzinformationen, wenn du Lazarus von der Konsole aus startest ?
Ja, es gibt solche Informationen, jedoch nicht beim Start von Lazarus, sondern wenn ich von Lazarus aus mein Programm starte:
[Debugger] Log output: &"info functions FPC_CPUINIT\n"
[Debugger] Log output: &"info address main\n"
[Debugger] Log output: &"info file\n"
[Debugger] File type: elf32-i386
[Debugger] Entry point: 0x823ca60
[Debugger] Log output: &"Failed to read a valid object file image from memory.\n"
[Debugger] Console output: ~"[Thread debugging using libthread_db enabled]\n"
[Debugger] Console output: ~"[New Thread -1213249856 (LWP 3605)]\n"
[Debugger] Console output: ~"[Switching to Thread -1213249856 (LWP 3605)]\n"
[WARNING] Debugger: Unknown stopped reason:
[Debugger] Log output: &"info program\n"
[Debugger] Target PID: 3605
af0518 hat geschrieben:c)Alle Projekte betroffen, oder gehen die Beispiele von Lazarus ?
Es scheinen alle Projekte betroffen. Sogar ein fast leeres Projekt mit einem Button und button1click, wo die Zeilen

Code: Alles auswählen

test:='test';
showmessage(test);
drin stehen. Hier scheint schrittweises Debuggen (mit F8 ) nicht zu funktionieren. Gestern hatte ich an dieser Stelle sogar mal n X-Server-Absturz.

Da ich die Debugger-Probleme _nicht_ schon immer hatte, gehe ich davon aus, dass ich die irgendwie unbewusst verursacht habe. :(
Nur habe ich im letzten Monat sogut wie nicht programmiert, und da sind mir die Probleme erst jetzt aufgefallen.

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 »

Einstellungen -> Debuggereinstellungen

Debugger Typ GNU Debugger
Pfad /usr/bin/gdb

Projekt->Compilereinstellungen->Linken

Zeilennummern in Laufzeit Backtraces anzeigen -> muss angehakt sein
Debuggersymbole aus der ausführbaren Datei entfernen -> darf nicht angehakt sein !!!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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:Einstellungen -> Debuggereinstellungen
Projekt->Compilereinstellungen->Linken
Ok, danke. Ist bei mir so eingestellt, wie du es sagst; leider ohne Erfolg.

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 »

Euklid hat geschrieben: Es scheinen alle Projekte betroffen. Sogar ein fast leeres Projekt ...
Sorry, diese Aussage muss ich (glücklicherweise) zurücknehmen, da sie durch einen Bedienungsfehler von mir ausgelöst wurde (ich hatte einige Datei-Rechte nicht). Der Fehler tritt also nicht bei jedem Projekt auf.

Die Problematik scheint tatsächlich nur unser Projekt zu betreffen. :shock:
So ein Mist!

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6790
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Euklid hat geschrieben: Die Problematik scheint tatsächlich nur unser Projekt zu betreffen. :shock:
So ein Mist!
Mal ein "Export" probieren - und die Projektdatei mal händisch durchforsten (vorheriges BACKUP nicht vergessen).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

af0518: Was meinst du mit "Export"?
Habe gerade mal die ganze *.lpi-Datei gelöscht und neu angelegt. Half leider auch nichts: Der Compiler konnte das Programm zwar problemlos kompilieren, der Debugger aber leider nicht die Variableninhalte anzeigen.

Ob der Debugger Probleme mit include-Dateien hat?
Ich habe hier nämlich eine rießige Unit auf mehrere Dateien aufgeteilt, und diese mittels

Code: Alles auswählen

{$INCLUDE unit2_hilfsroutinen.pas}
{$INCLUDE unit2_vereinfachung.pas}
{$INCLUDE unit2_zahlentheorie.pas}
{$INCLUDE unit2_funkwert.pas}
{$INCLUDE unit2_analysis.pas}
{$INCLUDE unit2_konsole.pas}
{$INCLUDE unit2_parser.pas}
 
{$INCLUDE unit2_public.pas}
in die eigentliche Unit eingebunden.

Vielleicht ist die Überlegung zu einfach - aber kann es sich möglicherweise um einen gdb-Bug handeln?

Ich möchte mich bei Euch jedenfalls schonmal bedanken.
[Attachment entfernt]

Gruß, Euklid
Zuletzt geändert von Euklid am Mi 2. Apr 2008, 19:30, insgesamt 1-mal geändert.

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 »

Hallo Leute!

Jetzt klappt es plötzlich wieder. Das Problem ist also genauso plötzlich verschwunden, wie es aufgetaucht ist.

Sehr merkwürdig. Ich kann mir das zwar nicht erklären - aber gut, dass es wieder funktioniert.

Danke af und Christian für Eure Hilfe!

Viele Grüße, Euklid

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6790
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Euklid hat geschrieben:af0518: Was meinst du mit "Export"?
Ich habe mich schlecht ausgedrückt, Projekt veröffentlichen ist das. Damit kann man einigen Ballast abwerfen. Bereinigt das Projekt auf das wesentliche.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

af0815 hat geschrieben:Projekt veröffentlichen ist das.
Ok, eine etwas ältere Version gibt es schon im Netz und steht unter der GPL3:

http://www.promathika.lazarusforum.de" onclick="window.open(this.href);return false;

Wir haben uns aber vorgenommen, dass die nächste veröffentlichte Version die Versionsnummer 1 tragen muss, und bis dahin muss noch einiges geschehen...

... dank plötzlich funktionierendem Debugger bin ich gestern der V1 ein Schritt näher gekommen und habe die Bruchrechung neu implementiert.

Viele Grüße, Euklid

Antworten