Abstract
Program analysis to check performance bottleneck or execution coverage is often implemented by instrumentation. Static binary instrumentation (SBI) adds the probing code before runtime, and dynamic binary instrumentation (DBI) changes the code at runtime with an OS support. Unfortunately, both are not appropriate for instrumenting embedded firmware such as the program on the flash memory controller, since it should be analyzed “as-is” on the real target for more realistic testing with target-specific conditions; additional code added by SBI might not fit in the limited memory of the target, while the OS support required by DBI is often not available on the target platform. This paper proposes a novel OS-less DBI framework using a hardware debugger for analyzing this embedded firmware. Our DBI does not increase the code size nor relies on any OS support. We experimented with our DBI tool for performance profiling and code coverage to check its usefulness. We also experimented on the real flash memory controller.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have