Segmentation fault
Moderatore: Staff
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Segmentation fault
Ora se lo apro appare una schermata nera per una frazione di secondo e poi si chiude.Se lo apro da shell mi da l'errore "Segmentation fault".
Ho letto riguardo questo errore, ma non capisco cosa c'entri con questo gioco.
Wikipedia dice:
"Un errore di segmentazione (in inglese segmentation fault, spesso abbreviato in segfault) è una particolare condizione di errore che può verificarsi durante l'esecuzione di un programma per computer. Un errore di segmentazione ha luogo quando un programma tenta di accedere ad una posizione di memoria alla quale non gli è permesso accedere, oppure quando tenta di accedervi in una maniera che non gli è concessa (ad esempio, scrivere su una posizione di sola lettura, oppure sovrascrivere parte del sistema operativo)."
Interessante è anche questo : http://www.cyberciti.biz/tips/segmentat ... -unix.html
Come posso risolvere?
Ciao a tutti.
Offtopic: Chiedo scusa per aver aperto un altro topic quando di questa cosa si è già parlato qui viewtopic.php?f=51&t=31079 solo che voglio fare una cosa piu ordinata e pulita
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Segmentation fault
Il segmentation fault è un errore che può avere svariate cause scatenanti, percui risulta molto difficile risalirvi senza molte altre informazioni.
Tanto per darti un'idea, può essere un errore di programmazione, ma anche un banale strip (intendo il rimuovere informazioni superflue dagli eseguibili tramite l'omonimo comando) dei binari può scatenarlo (vedi questo mio topic), per non parlare di dati corrotti sul disco fisso.
Tanto per capire se è un problema di grafica o meno, prova a lanciare il gioco così
Codice: Seleziona tutto
export LIBGL_DEBUG=verbose
/path/del/exe/del/gioco
Nel caso non compaia alcun messaggio di errore, uno stack trace del lancio dell'applicazione potrebbe essere utile. Lancia il programma con
Codice: Seleziona tutto
strace /path/del/exe/del/gioco
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Re: Segmentation fault
Codice: Seleziona tutto
root@darkstar:~# strace /root/BOH
execve("/root/BOH", ["/root/BOH"], [/* 56 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe58335b000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n"..., 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0x7fe58335b000, 4096) = 0
exit_group(1) = ?
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Re: Segmentation fault
Codice: Seleziona tutto
root@darkstar:~# strace /root/BOH
execve("/root/BOH", ["/root/BOH"], [/* 56 vars */]) = -1 EACCES (Permission denied)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe58335b000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Permission denied\n"..., 32strace: exec: Permission denied
) = 32
close(3) = 0
munmap(0x7fe58335b000, 4096) = 0
exit_group(1) = ?
Riguardo l'altro comando, non ho capito come devo scriverlo...il primo era "strace /root/BOH" ed il secondo ??
Codice: Seleziona tutto
root@darkstar:~# export LIBGL_DEBUG=verbose
root@darkstar:~# export LIBGL_DEBUG=verbose /root/BOH
bash: export: `/root/BOH': not a valid identifier
root@darkstar:~#
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Segmentation fault
Puoi fare tutto in una riga sola:
Codice: Seleziona tutto
LIBGL_DEBUG=verbose /root/BOH
- ZeroUno
- Staff
- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: Segmentation fault
Codice: Seleziona tutto
# chmod +x /root/BOH
01
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
-
- Linux 3.x
- Messaggi: 760
- Iscritto il: gio 7 ago 2008, 12:29
- Slackware: slackware64-current
- Kernel: 3.4.4-ck3
- Desktop: FluxBox-1.3.1
- Distribuzione: FreeBSD-8.1(amd64)
- Località: London
Re: Segmentation fault
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Re: Segmentation fault
La prima volta ho avuto questo risultato :
Codice: Seleziona tutto
root@darkstar:~# LIBGL_DEBUG=verbose /root/BOH
bash: /root/BOH: is a directory
Codice: Seleziona tutto
root@darkstar:~# cd /root/B*
root@darkstar:~/BOH# LIBGL_DEBUG=verbose ./BOH
Segmentation fault
Ciao e grazie.
- zoros
- Linux 4.x
- Messaggi: 1361
- Iscritto il: lun 28 mag 2007, 22:51
- Nome Cognome: Fabio`Zorba`
- Slackware: 14.1
- Kernel: 3.10.30-smp
- Desktop: KDE-3.5(works!)
- Località: Gorizia
- Contatta:
Re: Segmentation fault
- zoros
- Linux 4.x
- Messaggi: 1361
- Iscritto il: lun 28 mag 2007, 22:51
- Nome Cognome: Fabio`Zorba`
- Slackware: 14.1
- Kernel: 3.10.30-smp
- Desktop: KDE-3.5(works!)
- Località: Gorizia
- Contatta:
Re: Segmentation fault
che scherzi shock , che shock
io proverei altre librerie 32bit ... prova quelle di bluewhite64, le scarichi tutte:
Codice: Seleziona tutto
wget -cmnd -A txz http://mirrors.xservers.ro/bluewhite64/bluewhite64-13.0/extra/ia32-emulation/
Codice: Seleziona tutto
installpkg -root /percorso ...
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Re: Segmentation fault
Dunque...ho capito tutto del tuo messaggio, tranne questo :
Ciao e scusa per lo shockAttenzione però: forse prima conviene fare una installazione in una directory locale con:
ed esportare questo percorso con LD_LIBRARY_PATHCodice: Seleziona tutto
installpkg -root /percorso ...
- zoros
- Linux 4.x
- Messaggi: 1361
- Iscritto il: lun 28 mag 2007, 22:51
- Nome Cognome: Fabio`Zorba`
- Slackware: 14.1
- Kernel: 3.10.30-smp
- Desktop: KDE-3.5(works!)
- Località: Gorizia
- Contatta:
Re: Segmentation fault
poi il comando:
Codice: Seleziona tutto
export LD_LIBRARY_PATH=/percorso-librerie
- shock
- Linux 2.x
- Messaggi: 359
- Iscritto il: mer 28 ott 2009, 18:47
- Nome Cognome: Ivan
- Slackware: 13.1 x86_64
- Kernel: 2.6.33.4-huge-smp
- Desktop: KDE 4.4.3
Re: Segmentation fault
Ciao.
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Segmentation fault
Ho capito adesso l'errore mostrato qua. Sta tutto nel fatto che hai tentato di lanciare una directory: per forza neanche root ha il permesso...shock ha scritto:Si , il gioco si chiama proprio BOH http://www.bohthegame.com/ (ne approfitto per farne pubblicità, dato che è un gioco tutto italiano )
Codice: Seleziona tutto
root@darkstar:~# strace /root/BOH execve("/root/BOH", ["/root/BOH"], [/* 56 vars */]) = -1 EACCES (Permission denied) dup(2) = 3 fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE) fstat(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe58335b000 lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) write(3, "strace: exec: Permission denied\n"..., 32strace: exec: Permission denied ) = 32 close(3) = 0 munmap(0x7fe58335b000, 4096) = 0 exit_group(1) = ?
A giudicare anche dagli altri output che hai riportato e dai dubbi che hai espresso mi sa che stai facendo un macello fuori misura.
Ricapitoliamo: /root/BOH è la directory nella quale hai estratto/installato il gioco, mentre /root/BOH/BOH è l'eseguibile del gioco. È inutile che tenti di lanciare la directory quando ti chiediamo di lanciare il gioco in un certo modo / con certi argomenti. Devi lanciare l'eseguibile.
Detto questo, mi sono scaricato la demo per Linux e ho provato a lanciarla, ma anche a me dà un bel segmentation fault.
Dando un'occhiata alle librerie necessarie al funzionamento tramite ldd non noto alcuna carenza:
Codice: Seleziona tutto
linux-gate.so.1 => (0xffffe000)
libSDL_mixer-1.2.so.0 => /usr/lib/libSDL_mixer-1.2.so.0 (0xf76f7000)
libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xf7644000)
libm.so.6 => /lib/libm.so.6 (0xf761e000)
libc.so.6 => /lib/libc.so.6 (0xf74be000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf74a6000)
libdl.so.2 => /lib/libdl.so.2 (0xf74a1000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xf7386000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xf7378000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xf7371000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf7368000)
libvga.so.1 => /usr/lib/libvga.so.1 (0xf72e9000)
/lib/ld-linux.so.2 (0xf7790000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf72d0000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xf72cd000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xf72c8000)
Ho usato il pacchetto incluso in Slackware 13.0 (richiede anche libogg) per crearne uno di compatibilità, l'ho installato e la demo è partita tranquillamente.
Te li allego al post. Ti basta installarli con installpkg.
- Allegati
-
- pkgs.zip
- (227.34 KiB) Scaricato 60 volte