12.04 – Valgrind depura el error

Pregunta:

He estado intentando seguir el tutorial en línea de Learn C The Hard Way .

Sin embargo, después de configurar valgrind (seguí otros enlaces que ayudan a configurar valgrind en ubuntu 12.04), cuando trato de depurar el ejecutable c, encuentro los siguientes errores.

ayusman@ayusman-ubuntu:~/lcthw$ valgrind ./ex4
==1984== Memcheck, a memory error detector
==1984== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==1984== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==1984== Command: ./ex4
==1984== 

valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:  
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strlen
valgrind:  in an object with soname matching:   ld-linux-x86-64.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2
valgrind:  
valgrind:  Possible fixes: (1, short term): install glibc's debuginfo
valgrind:  package on this machine.  (2, longer term): ask the packagers
valgrind:  for your Linux distribution to please in future ship a non-
valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)
valgrind:  that exports the above-named function using the standard
valgrind:  calling conventions for this platform.  The package you need
valgrind:  to install for fix (1) is called
valgrind:  
valgrind:    On Debian, Ubuntu:                 libc6-dbg
valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo
valgrind:  
valgrind:  Cannot continue -- exiting now.  Sorry.

ayusman@ayusman-ubuntu:~/lcthw$ 

¿Hay algo que pueda hacer para que valgrind finalmente funcione?

Tengo ubuntu 12.04 en la caja virtual. Mi computadora portátil es un sistema operativo Windows 7 de 64 bits.

Respuesta:

Recibí esencialmente el mismo mensaje (excepto que ld-linux-x86-64.so.2 fue reemplazado por ld-linux.so.2 ). Había instalado Valgrind usando apt-get por lo que libc6-dbg ya estaba incluido como dependencia.

Aún no lo he resuelto por completo, pero una pista es que el error se correlaciona con mi uso de -m32 al -m32 .

Entonces, parecería que, en mi caso, el problema es la falta de una versión de 32 bits de libc6-dbg (o algunos de sus componentes), cuando se basa en una instalación de 64 bits de Ubuntu 12.04.


Solución (para mi caso)

Para mí, el siguiente comando hizo que todo funcionara …

sudo apt-get install libc6-dbg:i386

Esto se discute en https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/881236

Nota: El paquete libc6-dbg:i386 no aparece como una opción disponible en Synaptic o mediante la finalización de comandos de apt-get , pero estaba allí de todos modos.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım