Institute for Communication Technologies and Embedded Systems

NQC²: A Non-Intrusive QEMU Code Coverage Plugin

Authors:
Bosbach, N. ,  Salama, A. ,  Jünger, L. ,  Burton, M. ,  Zurstraßen, N.Pelke, R.Leupers, R.
Book Title:
Rapid Simulation and Performance Evaluation for Design (RAPIDO '24), January 18, 2024, Munich, Germany
Publisher:
Association for Computing Machinery
Series:
RAPIDO '24
Address:
New York, NY, USA
Status:
accepted for publication
Date:
Jan. 2024
ISBN:
979-8-40071-791-8
DOI:
10.1145/3642921.3642924
Language:
English
Abstract:
Code coverage analysis has become a standard approach in software development, facilitating the assessment of test suite effectiveness, the identification of under-tested code segments, and the discovery of performance bottlenecks. When code coverage of software for embedded systems needs to be measured, conventional approaches quickly meet their limits. A commonly used approach involves instrumenting the source files with added code that collects and dumps coverage information during runtime. This inserted code usually relies on the existence of an operating and a file system to dump the collected data. These features are not available for bare-metal programs that are executed on embedded systems. To overcome this issue, we present NQC², a plugin for QEMU. NQC² extracts coverage information from QEMU during runtime and stores them into a file on the host machine. This approach is even compatible with modified QEMU versions and does not require target-software instrumentation. NQC² outperforms a comparable approach from Xilinx by up to 8.5 x.
Download:
BibTeX