Speicherzugriffsfehler bei sk1
Speicherzugriffsfehler bei sk1
Hei,
ich bin auf der Suche nach einem Ersatz für inkscape auf einen Fork des Vektorzeichenprogramms skencil namens "sk1" gestoßen, habe dies erfolgreich auf debian squeeze kompiliert und installiert. Da ich debian auf einem powermac zu laufen habe, konnte ich die auf der website von sk1 angebotenen Installationsdateien nicht nutzen.
Zum Problem:
wenn ich sk1 in der konsole starte, bekomme ich die Meldung "Speicherzugriffsfehler" zurück und das wars. Starte ich jedoch das Programm mit root-Rechten, läuft es normal. Hat wer eine Ahnung, worin der fehler liegen könnte?
PS: Das was ich als root von dem Programm zu sehen bekomme läuft ganz ordentlich und flott, allerdings ist es schon sicherheitstechnisch zweifelhaft, ein normales Vektorzeichenprogramm als root zu betreiben ...
ich bin auf der Suche nach einem Ersatz für inkscape auf einen Fork des Vektorzeichenprogramms skencil namens "sk1" gestoßen, habe dies erfolgreich auf debian squeeze kompiliert und installiert. Da ich debian auf einem powermac zu laufen habe, konnte ich die auf der website von sk1 angebotenen Installationsdateien nicht nutzen.
Zum Problem:
wenn ich sk1 in der konsole starte, bekomme ich die Meldung "Speicherzugriffsfehler" zurück und das wars. Starte ich jedoch das Programm mit root-Rechten, läuft es normal. Hat wer eine Ahnung, worin der fehler liegen könnte?
PS: Das was ich als root von dem Programm zu sehen bekomme läuft ganz ordentlich und flott, allerdings ist es schon sicherheitstechnisch zweifelhaft, ein normales Vektorzeichenprogramm als root zu betreiben ...
- mistersixt
- Beiträge: 6601
- Registriert: 24.09.2003 14:33:25
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Speicherzugriffsfehler bei sk1
Du könntest es als User mit "strace" vorweg starten, vielleicht siehst Du, auf was er beim Crash noch versucht zuzugreifen. Oder halt im gdb starten und schauen, ob Du dort etwas Sinnvolles siehst.
Gruss, mistersixt.
Gruss, mistersixt.
--
System: Debian Bookworm, 6.5.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 4.0 Ghz., Radeon RX 5700 XT, 16 GB Ram, XFCE
System: Debian Bookworm, 6.5.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 4.0 Ghz., Radeon RX 5700 XT, 16 GB Ram, XFCE
Re: Speicherzugriffsfehler bei sk1
Danke für den Tipp.mistersixt hat geschrieben:Du könntest es als User mit "strace" vorweg starten, vielleicht siehst Du, auf was er beim Crash noch versucht zuzugreifen. Oder halt im gdb starten und schauen, ob Du dort etwas Sinnvolles siehst.
Gruss, mistersixt.
Das Kommando:
Code: Alles auswählen
strace sk1
spuckt mir tausende Zeilen mit
Code: Alles auswählen
_llseek [whatever]
usw. aus und zum Schluss:
Code: Alles auswählen
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Ich bin also so klug wie vorher.
Mit gdb komm ich gar nicht klar, weil mir bis jetzt das Verständnis für das Programm fehlt . Mal schauen ...
Grüße
Re: Speicherzugriffsfehler bei sk1
OK gdb sagt folgendes:
GDB gibt das allerdings als "user" und als "root" aus. Verwirrt mich, da ich Sk1 mit root-Rechten starten kann .... :/
Code: Alles auswählen
(gdb) file sk1
"/usr/local/bin/sk1": not in executable format: File format not recognized
(gdb)
Re: Speicherzugriffsfehler bei sk1
Was spricht denn (auf der shell)
Und für den Fall, dass es ein Link ist, die Datei dahinter. Wie sind die Berechtigungen? Darf der User das ausführen (+x)?
Code: Alles auswählen
file /usr/local/bin/sk1
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Speicherzugriffsfehler bei sk1
/usr/local/bin/sk1 beinhaltet folgendes:TRex hat geschrieben:Was spricht denn (auf der shell)Und für den Fall, dass es ein Link ist, die Datei dahinter. Wie sind die Berechtigungen? Darf der User das ausführen (+x)?Code: Alles auswählen
file /usr/local/bin/sk1
Code: Alles auswählen
#!/usr/bin/python
#
# Wrapper script to start a sK1 application once it is installed
#
# Copyright (C) 2007 Igor E. Novikov
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
from sk1 import sk1_run
sk1_run()
Re: Speicherzugriffsfehler bei sk1
Ah, python! Da kommst mit gdb natürlich nicht weit.
Allerdings hab ich noch keine Speicherzugriffsfehler bei python erlebt. Hier [1] hab ich ein paar Ansätze fürs debugging gefunden. Ich tippe ebenfalls auf C-Modul, sowas kann von python eingebunden werden.
[1] http://stackoverflow.com/questions/1003 ... tion-fault
Allerdings hab ich noch keine Speicherzugriffsfehler bei python erlebt. Hier [1] hab ich ein paar Ansätze fürs debugging gefunden. Ich tippe ebenfalls auf C-Modul, sowas kann von python eingebunden werden.
[1] http://stackoverflow.com/questions/1003 ... tion-fault
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Speicherzugriffsfehler bei sk1
Jepp das Programm ist in Python geschrieben. Mit dem Thread http://stackoverflow.com/questions/1003 ... tion-fault kann ich leider nicht viel anfangen und verstehe da nur Bahnhof. Ich hab vom Programmieren keine Ahnung, als dass ich mit "iterative recursion limit" und dergleichen irgend was anfangen kann .
Trotzdem danke
Trotzdem danke
Re: Speicherzugriffsfehler bei sk1
Ich würde folgendes tun (ich hab weder squeeze noch nen powerpc hier):
Einfügen der Zeilen, sodass der Code in der Datei ungefähr so aussieht:
Dann wie bereits empfohlen gdb starten (aber mit python) und wie im Link beschrieben vorgehen:
und das letzte ist das, was du nach nopaste schieben könntest, vielleicht ergibt sich daraus was. Das sollte dann der C-Stacktrace sein (ich hab das sourcepaket heruntergeladen und tatsächlich *.c gefunden)
Einfügen der Zeilen
Code: Alles auswählen
import sys
sys.settrace()
Code: Alles auswählen
from sk1 import sk1_run
import sys
sys.settrace()
sk1_run()
Code: Alles auswählen
gdb python
(gdb) run /usr/local/bin/sk1
# warten bis es kracht
(gdb) backtrace
## stack trace of the c code
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Speicherzugriffsfehler bei sk1
ok ich habs mal wie beschrieben gemacht und (gdb) backtrace zeigt folgendes an:
http://nopaste.debianforum.de/37433
Btw: Opensuse uns Arch Linux haben sk1 bereits in den Paketquellen. Wäre doch mal was ...
Danke für die Anleitung
http://nopaste.debianforum.de/37433
Btw: Opensuse uns Arch Linux haben sk1 bereits in den Paketquellen. Wäre doch mal was ...
Danke für die Anleitung