“…With this goal in mind, we bring, from the systems community into the software engineering community techniques to create Program Inspection Points, a notion that we define in Section 2. Like in classic garbage collectors for C/C++, [6][7][8][9][10] inspection points impose no overhead on programs unless they need to be inspected; Moreover, like in that line of work, we are willing to accept some imprecision: the inability to distinguish pointers from integers, for instance, might prevent the inspection of some parts of the heap. Yet, in contrast to garbage collectors, we provide the program with the means to associate low-level data-heap and stack allocated memory, for instance-with high-level source-code information: user-defined names and line locations.…”