KDAlloc: The KLEE Deterministic Allocator: Deterministic Memory Allocation during Symbolic Execution and Test Case Replay

bibtex
1@inproceedings{schemmelKDAllocKLEEDeterministic2023,
2  author = {Schemmel, Daniel and Büning, Julian and Busse, Frank and Nowack, Martin and Cadar, Cristian},
3  title = {{{KDAlloc}}: {{The}} {{KLEE}} {{Deterministic}} {{Allocator}}: {{Deterministic}} {{Memory}} {{Allocation}} during {{Symbolic}} {{Execution}} and {{Test}} {{Case}} {{Replay}}},
4  booktitle = {32nd {{ACM}} {{SIGSOFT}} {{International}} {{Symposium}} on {{Software}} {{Testing}} and {{Analysis}}, {{Tool}} {{Demonstrations}} {{Track}} {{(ISSTA}} 2023)},
5  location = {Seattle, WA, USA},
6  pages = {1491--1494},
7  year = {2023},
8  month = {jul},
9  doi = {10.1145/3597926.3604921},
10}

The memory allocator can have an important impact in symbolic execution. Taking a user-centric view, this tool demonstration paper discusses some of the main benefits provided by KLEE’s new allocator KDAlloc in terms of improved deterministic execution and bug-finding capabilities. We then introduce a new replay tool for KLEE which enables the native execution to integrate KDAlloc and receive the same heap addresses as during symbolic execution.