Zhenyu Guo, Xi Wang, Xuezheng Liu, Wei Lin, and Zheng Zhang
This paper presents BOX, an API-centric debugging and test-ing platform that uses API calling boundary as the manipula-tion surface to install and extend a variety of important de-bugging tools transparently for legacy applications. We deal with the problem of instrumenting large amount of APIs by using annotation-aware code generation; we carefully design the runtime to eliminate interference from hosted tools to the target application. The framework is highly extensible, thanks to the signal-slot model to process intercepted APIs. We dem-onstrate the power of BOX by prototyping a number of tools, ranging from monitoring, logging, dependency tracking, time-suspending-debugging and deterministic replay. We have successfully replayed several large and complex software package, including MySQL and Apache with low overhead. Our experience has validated the main design points of BOX.