From: Nicholas M. L. <nm...@cs...> - 2004-08-31 02:01:32
|
hi all, haven't managed to find the answer to this in the valgrind headers, in the manual, faq or by googling, so if theres something simple i'm missing please let me know. i'm writing a custom memory allocator that allocates chunks of memory of the same size. It's capable of placing a redzone after each allocated chunk (so that each chunk has either a redzone before, or the superblock header, and a redzone afterward). I'd like to integrate valgrind checking into my allocator, so that it detects accesses to the allocators structures from outside of the allocator (by using valgrind to mark the structures invalid when not in allocator code), detects memory leaks (presumably by using VALGRIND_MALLOCLIKE_BLOCK etc) and detecting writes into the redzones. VALGRIND_MALLOCLIKE_BLOCK takes an argument that describes the size of the red-zone associated with the block. What i don't understand is where the red-zone is expected to be relative to the addr argument. And what does MALLLOCLIKE_BLOCK do with the redzone info? Is it going to mark a section of memory non-accessable? I've looked at the examples given and i'm still not quite sure how it operates. On a related note, what do the _MEMPOOL user requests do? Are they just used to associate a bit of memory with a given memory pool address? Will memory leaks be reported if i DESTROY a mempool that has outstanding allocations? thanks in advance Nick |