Segmentation fault auf debain

Für Installationen unter Linux-Systemen
Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Segmentation fault auf debain

Beitrag von Phil1977 »

Hallo,

ich habe nun eine funktionierende Terminal-Anwendung auf einem Ubuntu-System geschrieben und kompliiert. Die Anwendung läuft dort fehlerfrei. Wenn ich die Anwendung nun auf einen Debian-Server hochlade und ausführe kommt sofort "Segmentation fault".
Hab testweise auf Ubuntu dann noch ein einfaches Programm geschrieben (Hallo Welt). Auch das sorgt auf dem Debian-Server für die Fehlermeldung Segmentation fault. Hat jemand eine Ahnung was falsch läuft? Danke für die Hilfe

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: Segmentation fault auf debain

Beitrag von Socke »

Wie wär's, wenn du die Anwendung unter Debian kompilierst?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Re: Segmentation fault auf debain

Beitrag von Phil1977 »

Mhh bin leider bei Linux noch recht neu und bin schon heilfroh das ich das unter der graphischen Ubuntu-Oberfläche mit viel Einarbeitung hingebracht habe das Programm das ursprünglich von Windows kam dort zu kompilieren. Gibt es da keine andere (einfachere) Möglichkeit?

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: Segmentation fault auf debain

Beitrag von Socke »

Phil1977 hat geschrieben:Mhh bin leider bei Linux noch recht neu und bin schon heilfroh das ich das unter der graphischen Ubuntu-Oberfläche mit viel Einarbeitung hingebracht habe das Programm das ursprünglich von Windows kam dort zu kompilieren. Gibt es da keine andere (einfachere) Möglichkeit?

Debian und Ubuntu sind zwar eng miteinander verwand, trotzdem ist es möglich, dass Binärprogramme nicht auf beiden Betriebssystemen laufen. In diesem Fall muss das Programm für jedes Betriebssystem neu übersetzt werden.

Die zusätzliche Installation von Debian (auf einer anderen Festplatte oder in einer Virtuellen Maschine) ist hier häufig die einfachste Möglichkeit - leider. Es gibt zwar ein paar andere Möglichkeiten, diese sind aber wesentlich aufwändiger, komplexer zu konfigurieren und fehleranfälliger.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

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:

Re: Segmentation fault auf debain

Beitrag von Christian »

Also ich kann mir den fall gerad nicht vorstellen Socke. In welchem Fall soll ein Binary auf Ubuntu und Debian auf der selben Architektur inkompatibel sein ?
Auch die Schutzverletzung spricht eher für einen programmierfehler als für ein symatisches Problem.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Re: Segmentation fault auf debain

Beitrag von Phil1977 »

Könnte das ganze denn eventuell ein 32-bit/64-bit Problem sein? Das Programm wurde auf einem 32-bit Ubuntu kompiliert und auf dem 64-bit Debian läuft es jetzt nicht.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: Segmentation fault auf debain

Beitrag von af0815 »

Verwendest du externe Bibliotheken? Oder verwenden die Komponenten die externe Bibliotheken verwenden?

Andi
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 1909
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Segmentation fault auf debain

Beitrag von Warf »

Das schlauste wäre zunächst mal GDB installieren und das Programm mit debuggerinformationen auf dem Server laufen lassen.

Benutzt du zufällig libs die die auf Ubuntu hattest aber nicht auf Debian? (z.B. wenn du Ubuntu mit KDE verwendet hast wird mit KDE QT installiert, wenn du jetzt eine QT anwendung gebaut hast, und auf dem Debian kein QT installiert hast könnte das so laufen, selbiges gilt natürlich auch für GTK)

Jole
Beiträge: 114
Registriert: Fr 4. Jul 2014, 14:39
OS, Lazarus, FPC: Linux
CPU-Target: amd64

Re: Segmentation fault auf debain

Beitrag von Jole »

Christian hat geschrieben:Also ich kann mir den fall gerad nicht vorstellen Socke. In welchem Fall soll ein Binary auf Ubuntu und Debian auf der selben Architektur inkompatibel sein ?
Auch die Schutzverletzung spricht eher für einen programmierfehler als für ein symatisches Problem.

Beispielsweise deshalb?
Phil1977 hat geschrieben:Könnte das ganze denn eventuell ein 32-bit/64-bit Problem sein? Das Programm wurde auf einem 32-bit Ubuntu kompiliert und auf dem 64-bit Debian läuft es jetzt nicht.

Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Re: Segmentation fault auf debain

Beitrag von Phil1977 »

Danke für die Tipps! Ich habe das Programm jetzt auf debian mit gdb debugged und erhalte die Fehlermeldung: "not in executable format: File format not recognized"
Ich habe das Programm von Ubuntu auf den Debian-Server mit Filezilla hochgeladen und mit "777" als ausführbar markiert. Könnte beim hochladen vielleicht etwas schief gelaufen sein? Wie gesagt unter Ubuntu läuft das Programm fehlerfrei.Ich habe auf Ubuntu auch ein ganz einfaches "Hallo Welt" Programm geschrieben und auf den Debian-Server hochgeladen. Auch da gibt es den Fehler Segmentation fault. Wäre für Ideen dankbar.

BeniBela
Beiträge: 309
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Segmentation fault auf debain

Beitrag von BeniBela »

Früher hatte man immer Probleme wenn FTP im Textmodus alle Zeilenenden ersetzt

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Segmentation fault auf debain

Beitrag von creed steiger »

ist das die komplette ausgabe von gdb?

ich denke das ist immernoch ein 32/64 bit Problem

http://stackoverflow.com/questions/2754 ... recognized


file könnte helfen
https://de.wikipedia.org/wiki/File

Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Re: Segmentation fault auf debain

Beitrag von Phil1977 »

Also ich habe mit Hilfe von "file" die Datei jetzt auf Ubuntu untersucht und habe folgende Ausgabe bekommen:
"Streamserver: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped"

Für mich stellt sich die Frage: Müssten für 32-bit kompilierte Programme nicht auch auf einem 64-bit Sytsem lauffähig sein? Unter Windows ist das ja auch kein Problem. Wie könnte ich das Programm denn mit Lazarus für 64-bit kompilieren?

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:

Re: Segmentation fault auf debain

Beitrag von Christian »

Nein sind sie nicht denn 32bit programme brauchen 32bit bibliotheken. Die sind unter Linux nicht standardmässig mitinstalliert. Unter Windows ist dem so daher sicher auch deine vermutung.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Phil1977
Beiträge: 11
Registriert: Mi 24. Jun 2015, 22:20

Re: Segmentation fault auf debain

Beitrag von Phil1977 »

Danke für die Antworten! Ich habe jetzt mit Virtualbox ein 64-bit Ubuntu aufgesetzt und mein Programm dort kompiliert. Das Programm läuft in der Virtualbox jetzt auch mit 64-bit einwandfrei. Wenn ich das Programm samt den benötigten Bass-Bibliotheken auf den Debian-Server hochlade gibt es aber ein neues Problem. Ich starte das Programm (Rechte: 777) im Programmverzeichnis mit ./Streamserver und es kommt nur die Fehlermeldung "-bash: ./Streamserver: No such a file or directory"
Hat jemand eine Idee was da falsch läuft? Die Fehlermeldung scheint für mich zu besagen das die Datei garnicht da ist. Sie ist aber in den angegeben Verzeichnis und es liegt auch kein Schreibfehler vor. Debugging mit gdb bringt wieder die Fehlermeldung "not in executable format: File format not recognized" und die file-Funktion liefert als Ergebnis "Streamserver: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), stripped"
Ich weiß langsam echt nicht mehr weiter und wäre für weitere Tipps dankbar

Antworten