Q: VALGRIND_DISCARD (can't understand how to use)

View: New views
1 Messages — Rating Filter:   Alert me  

Q: VALGRIND_DISCARD (can't understand how to use)

by muzehyun :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

1.
I'm trying to understand VALGRIND_DISCARD(addr, size) client request.
My understanding is that it will suppress any errors related to specified address range.

addr = mmap(..., 0x10, ...);
VALGRIND_DISCARD(VALGRIND_MAKE_MEM_NOACCESS(addr, 0x10));
memset(addr, 1, 0x1);

I thought above code will not report any error messages.
But there is invalid write error.

2.
VALGRIND_MAKE_MEM_NOACCESS(DEFINED,UNDEFINED)
 - suppose to return block handle
 - return zero when not run on valgrind
 - I got -1 for all three macros (is -1 valid?)

VALGRIND_DISCARD return
 - 0: valid handle
 - 1: invalid handle
 - always return 1 because above 3 macro return -1

OS: Ubuntu 9.04 on vmware
Valgrind: valgrind-3.4.1-Debian


Thank you

Sean