C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von corpsman »

Hallo Zusammen,

ich darf Beruflich FPC nutzen und binde hierzu einen vom GCC Compilierten Code in meine FPC-Sourcen mit ein. Bis vor wenigen Wochen war ich gezwungen dies mit der 32-Bit Version von Lazarus zu machen
Lazarus 2.0.2 r60954 FPC 3.0.4 i386-win32-win32/win64
Nun habe ich endlich den Fehler im C-Sourceode gefunden und kann nun endlich auf die 64-Bit Version von Lazarus wechseln
Lazarus 2.3.0 r65334M FPC 3.2.0 x86_64-win64-win32/win64
Wie ihr in der Anlage sehen könnt erstelle ich die .o Dateien wie folgt:

Code: Alles auswählen

REM die 32-Bit Version
gcc -g -m32 -o test_32.o -Wall -c test.c

REM die 64-Bit Version
gcc -g -o test_64.o -Wall -c test.c
Geht man nun aber in den Quellcode und setzt einen Haltepunkt auf den Aufruf der C Funktionen, dann stellt man fest, dass man in der 32-Bit Lazarus Version mit dem Schritt für Schritt debugger einfach in die .c Datei hinein steppen kann und dann ganz normal eben C-Code Debuggt. Wohingegen in der 64-Bit Version dies nicht geht und der F7 direkt nach dem Aufruf der C-Funktion zum stehen kommt.

In der Anlage habe ich euch mal alles rein gepackt, so dass ihr das testen könnt.
Weiß einer von euch wie ich den Schritt für Schritt Debugger auch unter der 64-Bit Version ans laufen kriegen kann ? Denn ich kann so keinen Unterschied mehr finden..
Dateianhänge
C_Demo.zip
(5.33 KiB) 57-mal heruntergeladen
Zuletzt geändert von corpsman am Di 23. Nov 2021, 06:47, insgesamt 1-mal geändert.
--
Just try it

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?

Beitrag von martin_frb »

Nur ne Idee:
Die 32 und 64 bit Lazarus benutzen unterschiedlich alte Versionen von GDB. Vielleicht liegt es daran?
Auf Sourceforge gibt es für beide 32/64 alternative GDB Versionen.

Oder mal FpDebug probieren.... Keine Ahnung ob das geht...

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?

Beitrag von corpsman »

hmm, ist ne Idee, dann werde ich morgen mal versuchen raus zu kriegen welche GDB Version die Laz 32 hat und schauen ob ich eine "passende" 64-Bit Variante dazu finden kann...
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von corpsman »

@martin_frb

Da hast du den Richtigen Riecher gehabt.
Der GDB meiner 32-Bit Lazarus version hat die Version: 7.7.1
Der GDB meiner 64-Bit Lazarus version hatte die Version: 7.3.5
Nun habe ich mir einfach aus meiner Cygwin-64 Installation den GDB 9.2 rüber kopiert und schon funktioniert es so wie es soll ;)
--
Just try it

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von sstvmaster »

Hier sind auch Alternative GDB zu finden:

Windows 32 Bit: https://sourceforge.net/projects/lazaru ... ive%20GDB/

Windows 64 Bit: https://sourceforge.net/projects/lazaru ... ive%20GDB/
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von corpsman »

@sstvmaster
Danke, in der Tat hat der 9.2er Probleme gemacht beim Debuggen von Consolen Anwendungen. Habe nun auf den 7.7 gewechselt und da scheint bisher alles zu gehen ;)
--
Just try it

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von martin_frb »

corpsman hat geschrieben:
Mi 24. Nov 2021, 07:41
@sstvmaster
Danke, in der Tat hat der 9.2er Probleme gemacht beim Debuggen von Consolen Anwendungen. Habe nun auf den 7.7 gewechselt und da scheint bisher alles zu gehen ;)
Probleme welcher Art?

Filenamen, Command-Argumente und Environment haben bei gdb generell Probleme mit Utf8 (zb Umlaute).
Ausnahme "GDB 9.2 - Modified for unicode" => ABER, nur mit Laz 2.2 und höher.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1496
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C-Code Debuggen unter FPC_64 geht nicht, aber unter FPC_32 schon, warum?[gelöst]

Beitrag von corpsman »

ich hatte lazarus mit dem 9.2er gestartet und es kam immer sofort diese Panik Meldung "speichere alles und starte neu".

dan habe ich einfach nur die gdb.exe getauscht gegen die 7.7 die du verlinkt hast und nu geht alles.
--
Just try it

Antworten