Jump to content

Mixxx segfault (sous Ubuntu Hoary)


Recommended Posts

Salut tout le monde !

J'aurais besoin d'un peu d'aide : j'essaie d'utiliser (logiciel qui simule une console DJ, http://mixxx.sourceforge.net/), mais j'ai à chaque fois une segfault pendant son initialisation :( J'utilise une Ubuntu Hoary.

Comme il n'y a pas de package disponible (pas trouvé en tout cas), j'ai d'abord essayé avec la version binaire, puis en le compilant depuis les sources. J'ai compilé avec et sans le support de JACK, pour tester. Mais j'ai invariablement un segfault, voilà ce que ça donne dans une console :

yannick@shagshag:~/mixxx-1.4.2$ mixxx 
Debug: Starting up... 
Debug: MidiObjectOSS: Open of MIDI device /dev/midi failed. 
Debug: Alsa getapi 
Debug: Track: /home/yannick/.mixxxtrack.xml does not exists. 
Debug: MidiObjectOSS: Open of MIDI device /dev/midi failed. 
Debug: id 0, sr 96000, ch 2, bufsize 16, bufno 120 
Erreur de segmentation

J'ai essayé de voir ce qui fait planter exactement en lançant un "strace mixxx", voici ce que ça donne à partir de la dernière ligne affichée dans la console :

write(2, "Debug: id 0, sr 96000, ch 2, buf"..., 51Debug: id 0, sr 96000, ch 2, bufsize 16, bufno 120
) = 51
open("/dev/dsp", O_WRONLY|O_NONBLOCK)   = 7
close(7)                                = 0
open("/dev/dsp", O_WRONLY)              = 7
ioctl(7, SNDCTL_DSP_SETFRAGMENT, 0xbffff618) = 0
ioctl(7, SNDCTL_DSP_SETFMT or SOUND_PCM_READ_BITS, 0xbffff618) = 0
ioctl(7, SOUND_PCM_READ_CHANNELS, 0xbffff634) = 0
ioctl(7, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xbffff618) = 0
mmap2(NULL, 8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb4477000
mprotect(0xb4477000, 4096, PROT_NONE)   = 0
clone(child_stack=0xb4c77b28, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM
|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0xb4c77bf8, {entry_number:6,
base_addr:0xb4c77bb0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,
useable:1}, child_tidptr=0xb4c77bf8) = 18604
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 8
getsockname(8, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
getpeername(8, 0xbffff620, [128])       = -1 ENOTCONN (Transport endpoint is not connected)
setsockopt(8, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(8, {sa_family=AF_INET, sin_port=htons(33033), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
getsockname(8, {sa_family=AF_INET, sin_port=htons(33033), sin_addr=inet_addr("127.0.0.1")}, [16]) = 0
getpeername(8, 0xbffff5e0, [128])       = -1 ENOTCONN (Transport endpoint is not connected)
listen(8, 1)                            = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
futex(0x81e4d9c, FUTEX_WAKE, 1)         = 1
futex(0x81e4dbc, FUTEX_WAKE, 1)         = 1
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
futex(0x81e4d9c, FUTEX_WAKE, 1)         = 1
futex(0x81e4dbc, FUTEX_WAKE, 1)         = 1
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
gettimeofday({1122804484, 871748}, NULL) = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
gettimeofday({1122804484, 883275}, NULL) = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
gettimeofday({1122804484, 893036}, NULL) = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
gettimeofday({1122804484, 901455}, NULL) = 0
ioctl(5, FIONREAD, [1])                 = 0
ioctl(5, FIONREAD, [1])                 = 0
gettimeofday({1122804484, 901912}, NULL) = 0
gettimeofday({1122804484, 959304}, NULL) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Voilà, je ne sais pas trop où chercher quel est le problème, est-ce que quelqu'un aurait une idée ? J'ai déjà tenté les forums Ubuntu mais personne n'a l'air inspiré (aucune réponse)

Merci d'avance pour toutes vos suggestions :)

Link to comment
Share on other sites

ça segfault toujours au même endroit ?

tu peux owner tous les périphériques audio par le group audio (/dev/dsp et compagnie)

l'appel ioctl est pour changer les propriétés d'un périphérique et je me demande si ça viendrait pas d'un manque de droit :transpi:

Link to comment
Share on other sites

Ce qu'il y a, c'est que le kernel n'aime pas qu'un programme aille écrire dans l'espace d'adressage de son voisin, ce qui est normal, et balance un SIGSEGV.

L'application est mal codée, enfin c'est ce que je pense.

Trouve une autre version binaire du programme.

neo

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...