On Monday, September 24, 2012, Tom Hughes wrote: > > ==16432== Invalid read of size 8 > > ==16432== at 0x43319E: trampoline() (thread.cc:134) > > ==16432== Address 0x646b5d8 is 56 bytes inside a block of size 72 > > alloc'd ==16432== at 0x4C285A4: operator new(unsigned long) > > (vg_replace_malloc.c:298) ==16432== by 0x432EFF: thread_new(void > > (*)(void*, void*, void*), void*, void*, void*, unsigned long, int) > > (thread.cc:142) > > [ snip internal stuff ] > > ==16432== by 0x4083AF: main (main.cc:210) > > > > If it's relevant, this is inside a little > > userspace-cooperative-threads package I wrote and the code is running > > on a malloc()'d stack. > > At a guess you're reading below the stack pointer. > > Assuming that the block it is complaining about is the block that your > user space thread is using as stack what is happening is that when the > stack is popped valgrind will mark the stack below the stack pointer as > invalid, and then if you try and read it you will get that error.
The block is only 72 bytes long, though, which seems implausibly small for a stack. J ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Valgrind-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/valgrind-users
