Speicherzugriffsfehler bei sk1

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 27.10.2013 11:33:28

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 ...

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Speicherzugriffsfehler bei sk1

Beitrag von mistersixt » 28.10.2013 11:23:33

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.
--
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

ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Re: Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 30.10.2013 20:59:27

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.
Danke für den Tipp.

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. :D

Mit gdb komm ich gar nicht klar, weil mir bis jetzt das Verständnis für das Programm fehlt :(. Mal schauen ...

Grüße

ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Re: Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 30.10.2013 21:15:18

OK gdb sagt folgendes:

Code: Alles auswählen

(gdb) file sk1
"/usr/local/bin/sk1": not in executable format: File format not recognized
(gdb) 
GDB gibt das allerdings als "user" und als "root" aus. Verwirrt mich, da ich Sk1 mit root-Rechten starten kann .... :/

Benutzeravatar
TRex
Moderator
Beiträge: 8084
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Speicherzugriffsfehler bei sk1

Beitrag von TRex » 30.10.2013 22:02:05

Was spricht denn (auf der shell)

Code: Alles auswählen

file /usr/local/bin/sk1
Und für den Fall, dass es ein Link ist, die Datei dahinter. Wie sind die Berechtigungen? Darf der User das ausführen (+x)?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Re: Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 31.10.2013 00:16:11

TRex hat geschrieben:Was spricht denn (auf der shell)

Code: Alles auswählen

file /usr/local/bin/sk1
Und für den Fall, dass es ein Link ist, die Datei dahinter. Wie sind die Berechtigungen? Darf der User das ausführen (+x)?
/usr/local/bin/sk1 beinhaltet folgendes:

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()
Ich habe die Zugriffsrechte so verändert, das Gruppe "users" lesen und schreiben kann. Es gibt trotzdem Speicherzugriffsfehler. Ich hab es auch mit meinem Nutzernamen als Gruppe schon probiert - Speicherzugriffsfehler.

Benutzeravatar
TRex
Moderator
Beiträge: 8084
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Speicherzugriffsfehler bei sk1

Beitrag von TRex » 31.10.2013 08:38:26

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
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Re: Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 31.10.2013 11:34:07

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

Benutzeravatar
TRex
Moderator
Beiträge: 8084
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Speicherzugriffsfehler bei sk1

Beitrag von TRex » 31.10.2013 21:50:36

Ich würde folgendes tun (ich hab weder squeeze noch nen powerpc hier):

Einfügen der Zeilen

Code: Alles auswählen

import sys

sys.settrace()
, sodass der Code in der Datei ungefähr so aussieht:

Code: Alles auswählen

from sk1 import sk1_run
import sys

sys.settrace()
sk1_run()
Dann wie bereits empfohlen gdb starten (aber mit python) und wie im Link beschrieben vorgehen:

Code: Alles auswählen

gdb python
(gdb) run /usr/local/bin/sk1
# warten bis es kracht
(gdb) backtrace
## stack trace of the c code
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)
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

ausfahrt
Beiträge: 228
Registriert: 27.11.2008 23:21:41

Re: Speicherzugriffsfehler bei sk1

Beitrag von ausfahrt » 31.10.2013 22:36:32

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

Antworten