[ET Trac] [Einstein Toolkit] #1430: out-of-bounds write access checking in Cactus
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Mon Sep 2 20:16:44 CDT 2013
#1430: out-of-bounds write access checking in Cactus
-------------------------+--------------------------------------------------
Reporter: rhaas | Owner:
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: Other | Version: development version
Keywords: |
-------------------------+--------------------------------------------------
I possibly very useful (and simple to implement) debugging help in Cactus
would be if the Cactus driver provided some means to detect array accesses
out of the array/grid-function bounds. In general that is hard to do (in
C, for Fortran there are compiler switches) however a possible useful
partial solution might already be to put canary values before and after
the user-visible data of grid functions/grid arrays. The flesh/driver
could then check after each scheduled routine if any of the canary values
were modified and if so output a warning.
Schematically the layout in memory would be
Canary1 data Canary2
and CCTK_VarDataPtr would return a pointer to "data" only. After a
scheduled function all we check Canary1 and Canary2 and output an error if
they are corrupted. Similarly the
IncreaseGroupStorage/DecreaseGroupStorage routines could set/check the
canary values.
This would prevent these errors triggering failures at some later
unrelated call to malloc or free. glibc's malloc function provides some of
this if _MALLOC_DEBUG is set, though I am not sure how well that actually
works in practice in particular since eg OpenMP provides its own malloc
function.
I don't have an implementation of this right now and am mostly fishing for
comments.
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1430>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list