2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM) (2013)
Sept. 22, 2013 to Sept. 23, 2013
Yan Wang , CSE Department, UC Riverside, USA
Min Feng , NEC Laboratories America, USA
Rajiv Gupta , CSE Department, UC Riverside, USA
Iulian Neamtiu , CSE Department, UC Riverside, USA
Despite significant advances in automated debugging, programmers still rely on traditional interactive debuggers (e.g., GDB) to find and fix bugs. While popular, these debuggers have major deficiencies: they do not guide the programmer in narrowing the source of error, and they only support a limited and low-level set of state-altering commands, hence semantic state alteration requires recompilation and reexecution. To address these shortcomings, we present an interactive debugger that combines capabilities that reduce debugging effort and increase debugging speed. The capabilities that yield these benefits include: state alteration commands for dynamically switching the directions of conditional branches and suppressing the execution of statements; state inspection commands including navigating and pruning dynamic slices; and state rollback and checkpointing commands to allow reexecution of the program from an earlier checkpoint. Our prototype is built on top of GDB using the Pin infrastructure; we also provide a GUI based on KDbg. Our experience shows that our debugger handles many kinds of real bugs effectively and efficiently.
Debugging, Inspection, Switches, Computer bugs, Navigation, Libraries
Y. Wang, M. Feng, R. Gupta and I. Neamtiu, "A state alteration and inspection-based interactive debugger," 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM), Eindhoven, Netherlands Netherlands, 2013, pp. 84-93.