Messages in this thread | | | Date | Sat, 10 May 2008 15:22:51 +0200 | From | "Bart Van Assche" <> | Subject | Re: [ANNOUNCE] kmemcheck v7 |
| |
On Sat, May 10, 2008 at 2:37 PM, Andi Kleen <andi@firstfloor.org> wrote: >> - kmemcheck can only warn for dynamic memory, whereas kmemcheck I >> believe will also work for local variables, static variables, etc. > > I don't think that's true. valgrind can only detect uninitialized > local variables in one special case (first use of the stack region). > But as soon as you reuse stack which is pretty common it won't > be able to detect the next uninitialized use in a stack frame.
As long as the compiler is not told to optimize the compiled code, Valgrind's memcheck tool is able to detect uninitialized local variables. Valgrind a.o. tracks all updates of the stack pointer. If the stack pointer is increased, the memory range between the old and the new stack pointer is marked as undefined. This works as long as gcc doesn't optimize away individual stack pointer updates. (I'm one of the Valgrind developers.)
Bart.
| |