From: John R. <jr...@bi...> - 2015-08-04 12:41:37
|
> I installed Valgrind on my openWRT, ARMV7 machine, and tried to use it in the following manner: Which version of vagrind? Run "valgrind --version". Which version of openWRT? And from what source (linux distribution, web page, download location, etc.)? > > valgrind --leak-check=yes <application name> > > in return, I got the following response: > > ==1517== Invalid read of size 4 > ==1517== at 0x48C1950: ??? (in /lib/libuClibc-0.9.33.2.so <http://0.9.33.2.so>) > ==1517== Address 0xbdb60c1c is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes > > > The same case happen with any other application I've tried to run. > It seems to me that I have some low-level configuration issue, but I couldn't find it. It's not a configuration issue. It is a bug in the code for libuClibc-0.9.33.2.so or some caller. As the message indicates, gcc-2.96 often generated such bugs. (gcc-2.96 is a *very* old compiler), although hand-generated assembly code (such as in very early library initialization) also can have such a bug. Please show the complete error message paragraph, including all traceback lines, from valgrind(memcheck). Please be sure to install any debuginfo that is available for libuClibc-0.9.33.2.so. Please remember to compile and link your app with "-g" (in order to generate debugging information), and do not remove or strip the symbols from the executable. Add the command-line parameters "--track-origins=yes --vgdb-error=0" to the invocation of valgrind. Open another terminal window and follow the directions on running gdb. When valgrind's complaint appears, then get more information from gdb: (gdb) bt # backtrace of subroutine calls (gdb) info reg # register contents (gdb) x/8i $pc-4*4 # instruction stream -- |