Unter Debian làufts, unter Ubuntu nicht.
-
knivil schrieb:
Deine Informationen sind recht duerftig. Die Glaskugel habe ich grad nicht dabei. Dein Absturz kann an vielen Sachen liegen, nennt sich undefiniertes Verhalten.
Unter Debian läufts ja. Da wird keine andere Info angezeigt. Meine Glaskugel ist z.Zt. kapudd.
-
^^ubuntu ist doch ein aufgemotztes debian, gross kann der unterschied nicht sein. wahrscheinlich fehlt dem programm unter ubuntu bloss 'ne library oder sowas.
-
segmentation fault klingt als waere irgendwas am speicher kaputt, also entweder fehlt etwas (du solltest also fuer alles was du initialisierst pruefen ob es erfolgreich war) oder es wird zufaellig anders mit dem speicher umgegangen und ein fehler der auf debian nicht auffaellt, kommt dann bei ubuntu zum vorschein.
-
Mal mit "-Wall -pedantic" kompilieren versucht?
-
wenn die glibc oder stdlib++ Versionen nicht dieselben sind, dann kann es zu solchen Problemen führen. Du kannst dein Programm statisch linken und nochmal testen.
-
Muss ich jetzt für jeden Linuxabkömmling das entsprechende Betriebssysem installieren und dann die ausführbare Datei erstellen?
Du kannst auch den Quelltext ausliefern und den Rest die Autotools machen lassen.
Oder eben alles statisch linken.
-
Hatte so einen ähnlichen Fehler neulich auch. Habe mein Programm immer innerhalb einer Subshell von Emacs getestet und außerhalb in einer normalen Bash-Instanz in XFCE's Terminal gab es dann einen Segmentation Fault. Es hatte sich dann herausgestellt, dass ich ein struct nicht mit 0en initialisiert habe, bzw. Teile davon. Ein calloc statt einem malloc hat das Problem dann behoben.
Innerhalb der Emacs Subshell lief es allerdings zu 100% zuverlässig über Wochen hinweg!
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hast du das Programm unter Ubuntu neukompiliert? Wenn ja, dann willkommen in der Welt des undefined behaviours. Es gibt viele Möglichkeiten Undefined Behaviour einzuführen (uninitialisierte Variablen, Zugriff auf freigegebene Speicherbereiche etc.) und es kann sehr schwierig sein, solche Fehler zu finden, da sie oft erst nach einiger Zeit oder bei kleinen Änderungen auftreten.
Am besten benutzt du einen Debugger (gdb) und findest raus, wo der Fehler auftritt.
Falls du das Binary kopiert hast, dann kann es - wie gesagt - an inkompatibilitäten der Libraries liegen. In dem Fall einfach unter Ubuntu neu kompilieren oder statisch linken.
-
Statisch linken funkioniert.
Danke für Eure Antworten.