Shadow State Encoding for Efficient Monitoring of Block-level Properties
Memory shadowing associates addresses from an application’s memory to values stored in a disjoint memory space called shadow memory. At runtime shadow values store metadata about application memory locations they are mapped to. Shadow state encodings – the structure of shadow values and their interpretation – vary across different tools. Encodings used by the state-of-the-art monitoring tools have been proven useful for tracking memory at a byte-level, but cannot address properties related to memory block boundaries. Tracking block boundaries is however crucial for spatial memory safety analysis, where a spatial violation such as out-of-bounds access, may dereference an allocated location belonging to an adjacent block or a different struct member.
This paper describes two novel shadow state encodings which capture block-boundary-related properties. These encodings have been implemented in E-ACSL – a runtime verification tool for C programs. Initial experiments involving checking validity of pointer and array accesses in computationally intensive runs of programs selected from SPEC CPU benchmarks demonstrate runtime overheads comparable to state-of-the-art memory debuggers.
Sun 18 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | Session 2: Clever Data TricksISMM 2017 at Aula Master Chair(s): Michael D. Bond Ohio State University | ||
11:00 30mTalk | A Marshalled Data Format for Pointers in Relocatable Data Blocks ISMM 2017 | ||
11:30 30mTalk | Flexible and Efficient Memory Object Metadata ISMM 2017 Zhengyang Liu Beijing University of Posts and Telecommunications, John Criswell University of Rochester | ||
12:00 30mTalk | Shadow State Encoding for Efficient Monitoring of Block-level Properties ISMM 2017 |