SEGV bei Beenden des Programms

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

kralle hat geschrieben:Moin,

hast Du mal die Suche hier im Forum genutzt?
https://www.lazarusforum.de/search.php?keywords=+SEGV&terms=all&author=&sc=1&sf=all&sr=posts&sk=t&sd=d&st=0&ch=300&t=0&submit=Suche

Die beiden Themen ganz unten helfen Dir auch nicht weiter?

Gruß Heiko


Moin Heiko,

Bei meinem „Start bei Null“-Test trat das Problem ja auf, sobald ich den OpenFileDialog nutzte; sonst war ja nichts im im Programm enthalten: keine Strukturen, die freigegeben werden, kein Filehandling - nichts.

Ciao,
Photor

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Hallo Forum,

da das Problem weiter besteht und mich nervt, habe ich ein minimales Projekt erstellt (schnell zusammen geklickt), an dem sich das Ganze demonstrieren lässt:

Fenster mit einem Load-File-Button, der den OpenDialog aufruft, der den gewählten Filenamen an ein Edit weiter gibt und mit einem Close-Button, der das Fenster schließt und damit das Program beendet. DAS endet mit eine SIGSEGV! Beende ich das Programm (Close-Button) direkt, ohne ein File zu laden, beendet es sich einfach.

DAS passiert in der IDE!

Starte ich das ganze direkt aus dem File-Manager (Thunar, XFCE), sehe ich bei beenden nichts. Starte ich dagegen aus einer Shell heraus, sehe ich folgendes:

Code: Alles auswählen

[photor@Picard OpenFile-Test]$ ./OpenFileTest 
An unhandled exception occurred at $00007FB2258EBEE3:
EAccessViolation: 
  $00007FB2258EBEE3

Es sieht also so aus, dass da wirklich eine Access Violation passiert.

Projekt habe ich (nicht compiliert, ohne EXE), angehängt. Ich nutze FPC version Version 3.0.4, Lazarus 2.0.8 (für GTK 2, so wie vom Archlinux Pakage-Manager pacman installiert).

Vielleicht fällt ja jemand was auf (vielleicht auch was super simples, wo mir dann der Kopf auf die Tischplatte knallt).

Ciao,
Photor
Dateianhänge
OpenFile-Test.zip
(126.3 KiB) 140-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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:

Re: SEGV bei Beenden des Programms

Beitrag von af0815 »

Geht als Win32 kompiliert ohne Probleme und Errormessage auf der Commandline,

Lazarus 2.0.7 r62768M FPC 3.2.0 i386-win32-win32/win64

Lazarus 2.1.0 r62735 FPC 3.3.1 i386-win32-win32/win64
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Hm, danke. Also eventuell Linux-spezifisch. Mal sehen, ob es sich weiter eingrenzen lässt.

Ciao,
Photor

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: SEGV bei Beenden des Programms

Beitrag von m.fuchs »

Kein Problem unter Linux Mint x64. Kompiliert mit FPC 3.0.4 und Lazarus 2.0.8.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Ich habe mal mein altes (Minimal-)Wissen über den GDB rausgekramt:

Dort bekomme ich folgenden Back Trace:

Code: Alles auswählen

Thread 1 "OpenFileTest" received signal SIGSEGV, Segmentation fault.
0x00007ffff033cee3 in ?? () from /usr/lib/librsvg-2.so.2
(gdb) bt
#0  0x00007ffff033cee3 in  () at /usr/lib/librsvg-2.so.2
#1  0x00007ffff7454dff in __call_tls_dtors () at /usr/lib/libc.so.6
#2  0x00007ffff745469d in __run_exit_handlers () at /usr/lib/libc.so.6
#3  0x00007ffff74546ee in  () at /usr/lib/libc.so.6
#4  0x00007ffff743d02a in __libc_start_main () at /usr/lib/libc.so.6
#5  0x0000000000000000 in  ()
(gdb) 
Hier endet aber mein Wissen. Für mich sieht das aus, als wäre was mit der librsvg faul. Die ist installiert und (nach Archlinux) uptodate:

Code: Alles auswählen

extra/librsvg 2:2.48.4-1 [installiert] 
    SVG rendering library 
BTW: in dem erzeugten Executable von OpenFileTest wird sie aber wohl nicht gebraucht:

Code: Alles auswählen

[photor@Picard OpenFile-Test]$ ldd OpenFileTest | grep svg
[photor@Picard OpenFile-Test]$ 
Also irgendwo in den Lazarus/FPC-Libs? Lazarus ist mit AnchorDocking und Gtk2 gebaut.

Vielleicht hilft das ja.

Ciao,
Photor

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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:

Re: SEGV bei Beenden des Programms

Beitrag von af0815 »

Ist der OpenFileDialog nicht aus dem Widgetset? Deswegen kann man den mit ldd nicht direkt finden, da das ganze innerhalb von GTK2 eingebettet ist.

Ich würde riskieren mit dem Minimalbeispiel und der genauen BS Version einen Eintrag in den Bugtracker machen. Mit dem Hinweis, das es nur auf diesen BS Probleme gibt.

Alternativ einen aktuelleren fpc/Lazarus testen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Ich habe mal geschaut, wo diese Lib verwendet wird: wichtigste Pakete sind Gtk2 und Gtk3 und allem, was damit zu tun hat. Das ist also sehr zentral.

Du redest von dem Lazarus/fpc-Bugtracker? Schau ich mir mal an.

Ciao,
Photor

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Moin,

kurze Rückmeldung: ich habe das mal beim Bug-Tracker gemeldet. Dort konnte der Fehler nicht nachvollzogen werden - allerdings mit den neuen SVN-Versionen bzw. ich müsste fpc-3.2.0 installieren.

Da der noch nicht im Archlinux angekommen ist und ich nicht am System vorbei installieren will, werde ich wohl warten müssen.

PS: zwischen durch auf Nachfrage noch das Paket appmenu-gtk-module 0.7.3-1 nach installiert. Hat aber auch nichts gebracht.

Ich bleibe aber dran.

Ciao,
Photor

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
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:

Re: SEGV bei Beenden des Programms

Beitrag von af0815 »

mit fpcupdeluxe installierst du nicht am System vorbei, sondern ist es eine isolierte installation.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Moin,

Neuer Status: mit dem Update heute kam der neue FPC (mit angepasstem Lazarus-Paket). Der Fehler scheint beseitigt. :D

Ciao,
Photor

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: SEGV bei Beenden des Programms

Beitrag von Winni »

Hi!

Das ist ein Zusammenspiel einer bestimmten (???) GTK2 Version plus fpc 3.04. plus OpenDialog

Angeblich ist das Problem mit fpc 3.2 gelöst.

Als ich das hatte, war ich so genervt, dass ich unter

Werkzeuge-->Einstellungen-->Debugger-->Debuggertyp

auf "none" gesetzt habe.

Dann knallt es auch nicht mehr.

Winni

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: SEGV bei Beenden des Programms

Beitrag von Mathias »

Werkzeuge-->Einstellungen-->Debugger-->Debuggertyp

auf "none" gesetzt habe.
Das hat bei mir gerade auch ein Problem gelöst. Bei AVR kam immer eine Debuggerfehler.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: SEGV bei Beenden des Programms

Beitrag von photor »

Moin,

wie gesagt, mit der neuen Version (hab allerdings nach der Installation alles neu compiliert, da ich die ein-Fenster-Version des IDE bevorzuge) scheint das Problem auch gelöst.

Auf die Möglichkeit zu debuggen würde ich sehr ungern verzichten wollen; das abzuschalten ist also keine Option.

Das einzige, was neuerdings nervt, sind viele Meldungen vom Typ Note vonwegen „Unicode“- und „Ansi“-String. Das habe ich mir noch nicht angesehen.

Ciao,
Photor

Antworten