> Currently, my understanding is that valgrind memchecker can mark a > memory area as non accessible via the VALGRIND_MAKE_MEM_NOACCESS() > macro, but there is currently no way to mark it as read-only.
Yes. READ_ONLY is not a recognized state. > if yes, is there any plan to develop such a feature ? No. The accounting bits are organized into two phases: is the address legal at all, and is the byte writable and initialized. Adding a new state READ_ONLY would be a large task with significant runtime costs. It might be best applied to the first phase, but complications regarding overlap [or splitting] between existing regions and new READ_ONLY regions, plus granularity assumptions (pages now, bytes for READ_ONLY) probably would be messy. >>From an OpenMPI developer point of view, it would be nice to mark the send > buffer as read-only between MPI_Isend() and MPI_Wait() so valgrind can trap > incorrect user code that modifies the send buffer when it is not allowed. Use LD_PRELOAD to intercept MPI_Isend() [etc.]. Allocate a new buffer, copy the message into it, mark the original buffer as NOACCESS, call the original MPI_Isend on the new buffer. Reverse the effects after the original MPI_Isend() is complete, waited, and checked. See the manual page for "man dlsym" and the RTLD_NEXT functionality. Search the web, too. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users