Address-Aware Query Caching for Symbolic Execution

David Trabish, Shachar Itzhaky, Noam Rinetzky

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Symbolic execution (SE) is a popular program analysis technique. SE heavily relies on satisfiability queries during path exploration, often resulting in the majority of the time being spent on solving these queries. Hence, it is not surprising that one of the most vital optimizations SE engines use is query caching. To increase the cache hit rate, queries are transformed into a normal form, which is used as a key for updating the cache. An obstacle to caching queries involving pointers is the presence of numerical address values, which are assigned by the engine according to its memory allocation scheme and are hard to canonicalize across different paths.In this paper, we propose a novel query caching technique that allows efficient handling of queries containing expressions that depend on address values. The key insight is that the result of such queries is in fact agnostic to the concrete address values occurring in them, subject to some basic memory safety constraints. This observation can be used to coalesce more queries during cache lookup, thus further increasing cache utilization.Our extensive evaluation shows that our technique achieves significant performance gains when the analysis encounters queries containing symbolic pointers, while incurring only a modest performance overhead in other cases.

Original languageEnglish
Title of host publicationProceedings - 2021 IEEE 14th International Conference on Software Testing, Verification and Validation, ICST 2021
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages116-126
Number of pages11
ISBN (Electronic)9781728168364
DOIs
StatePublished - Apr 2021
Event14th IEEE International Conference on Software Testing, Verification and Validation, ICST 2021 - Virtual, Porto de Galinhas, Brazil
Duration: 12 Apr 202116 Apr 2021

Publication series

NameProceedings - 2021 IEEE 14th International Conference on Software Testing, Verification and Validation, ICST 2021

Conference

Conference14th IEEE International Conference on Software Testing, Verification and Validation, ICST 2021
Country/TerritoryBrazil
CityVirtual, Porto de Galinhas
Period12/04/2116/04/21

Keywords

  • Query caching
  • Symbolic execution

All Science Journal Classification (ASJC) codes

  • Artificial Intelligence
  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Address-Aware Query Caching for Symbolic Execution'. Together they form a unique fingerprint.

Cite this