Violación de segmento

Horst von Brand vonbrand en inf.utfsm.cl
Lun Mar 7 13:12:34 CLST 2005


"Pablo Campos S." <pcamposs en articlynx.cl> dijo:
> Gracias por responder, esto es lo que me arrojo el strace xmms
> 
> espero se entienda
> 
> > - Ejecuta:
> > 
> >   # strace xmms 
> 
> close(9)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
> directory)
> open("/usr/lib/libGLcore.so.1", O_RDONLY) = 9
> read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\267\n"...,
> 512) = 512
> fstat64(9, {st_mode=S_IFREG|0755, st_size=7230360, ...}) = 0
> old_mmap(NULL, 7276776, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) =
> 0xb68bb000
> old_mmap(0xb6f7c000, 114688, PROT_READ|PROT_WRITE, MAP_PRIVATE|
> MAP_FIXED, 9, 0x6 c0000) = 0xb6f7c000
> old_mmap(0xb6f98000, 80104, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
> MAP_ANON YMOUS, -1, 0) = 0xb6f98000
> close(9)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
> directory)
> open("/usr/lib/libnvidia-tls.so.1", O_RDONLY) = 9
> read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\3\0\000"...,
> 512) = 51 2
> lseek(9, 1304, SEEK_SET)                = 1304
> read(9, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\2\0\0\0"..., 32)
> = 32
> fstat64(9, {st_mode=S_IFREG|0755, st_size=2352, ...}) = 0
> old_mmap(NULL, 5588, PROT_READ|PROT_EXEC, MAP_PRIVATE, 9, 0) =
> 0xb68b9000
> old_mmap(0xb68ba000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
> 9, 0) = 0xb68ba000
> close(9)                                = 0
> mprotect(0xb68b9000, 4096, PROT_READ|PROT_WRITE) = 0
> mprotect(0xb68b9000, 4096, PROT_READ|PROT_EXEC) = 0
> mprotect(0xb68bb000, 7081984, PROT_READ|PROT_WRITE) = 0
> mprotect(0xb68bb000, 7081984, PROT_READ|PROT_EXEC) = 0
> mprotect(0xb6fac000, 380928, PROT_READ|PROT_WRITE) = 0
> mprotect(0xb6fac000, 380928, PROT_READ|PROT_EXEC) = 0

Estos mprotect(2) con direcciones repetidas son sospechosos...

> munmap(0xb701a000, 53338)               = 0
> open("/dev/zero", O_RDWR)               = 9
> mmap2(NULL, 1024, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 9, 0) =
> 0xb702700 0

Primero old_mmap luego mmap2... hay alguien que no tiene claro lo que esta
haciendo. Versiones muy separadas en tiempo de las bibliotecas en uso?

> close(9)                                = 0
> getpid()                                = 8696
> mmap2(NULL, 688128, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0x b6811000
> getpid()                                = 8696
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---

Y se va de hocico. Por lo visto no es un problema al cargar las bibliotecas
(eso parece haberlo hecho antes, aunque me faltan varias... particularmente
glibc). Esta cargando una libnvidia-tls.so.1, que supongo es parte del
driver de nVidia? Es la ultima version de eso?
 
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux