Debugging - Wie mach ich das richtig?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Displaced
Beiträge: 83
Registriert: So 12. Jul 2009, 10:08

Re: Debugging - Wie mach ich das richtig?

Beitrag von Displaced »

http://wiki.lazarus.freepascal.org/Logging_exceptions" onclick="window.open(this.href);return false;

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Debugging - Wie mach ich das richtig?

Beitrag von Maik81ftl »

Displaced hat geschrieben:http://wiki.lazarus.freepascal.org/Logging_exceptions
Der link is gold wert :D schade, das ich grad keines hab, was nicht läuft :( nur eines, was nicht das macht, was es soll. geht's auch damit?
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Displaced
Beiträge: 83
Registriert: So 12. Jul 2009, 10:08

Re: Debugging - Wie mach ich das richtig?

Beitrag von Displaced »

Wenn es ne Exception auswirft schon, amsonsten eher nicht.
Dann dürfte es eher ein Logik Fehler sein ;)

Mir hilft es immer, gewissen prozesse auf dem stift oder in gedanken nachzugehen.. Dann finde ich immer den Fehler auch wenn es Aufwändig ist.

Socke
Lazarusforum e. V.
Beiträge: 3178
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: Debugging - Wie mach ich das richtig?

Beitrag von Socke »

MmVisual hat geschrieben:Wie kann ich die backtrace Info (-gl) zur Laufzeit bei einer Exception auslesen?
Während des Debuggens kannst du das auch mit Lazarus machen: Einfach Haltepunkt setzen und Im Menü Ansicht-->Debuggerfenster-->Aufrufstack aufrufen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Debugging - Wie mach ich das richtig?

Beitrag von MmVisual »

Vielen Dank für die Infos.

Ich habe das mal so implementiert:

Code: Alles auswählen

sLine := '';
  p := get_frame;
  while (p <> nil) And (Length(sLine) <= 11) Do
  Begin
    p := get_caller_frame(p);
    If p = nil Then Break;
    pa := get_caller_addr(p);
    sLine := GetLineInfo(pa, False); // E.MethodName(pa);
  end;
Dann habe ich mal ein falscher SQL Befehl ausführen lassen, aber ich bekomme als sLine nur irgend eine 32-Bit Adresse mit einem $ Zeichen vorne dran.
Wie kann ich den Funktionsname zur Laufzeit sehen?

Edit: Der Aufruf dieses Codes wird mit Application.OnException in einer eigenen Routine gemacht.

Gruß Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Displaced
Beiträge: 83
Registriert: So 12. Jul 2009, 10:08

Re: Debugging - Wie mach ich das richtig?

Beitrag von Displaced »

Mit -gl und -l kompilieren hat bei mir wahre Wunder gewirkt.

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Debugging - Wie mach ich das richtig?

Beitrag von MmVisual »

Bei mir wirkt das keine Wunder. Der schreibt nur die Adresse, sonst nichts. Nicht wie die Datei heißt und auch nicht wie die Procedure/Function heißt.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten