Affiliation:
1. University of Texas at Austin, Austin, TX, USA
2. IBM Watson Research Center, Hawthorne, USA
3. New York University, New York, USA
Abstract
Programmers build large-scale systems with multiple languages to reuse legacy code and leverage languages best suited to their problems. For instance, the same program may use Java for ease-of-programming and C to interface with the operating system. These programs pose significant debugging challenges, because programmers need to understand and control code across languages, which may execute in different environments. Unfortunately, traditional multilingual debuggers require a
single
execution environment.
This paper presents a novel
composition
approach to building portable mixed-environment debuggers, in which an intermediate agent interposes on language transitions, controlling and reusing single-environment debuggers. We implement debugger composition in
Blink
, a debugger for Java, C, and the Jeannie programming language. We show that Blink is (1) relatively simple: it requires modest amounts of new code; (2) portable: it supports multiple Java Virtual Machines, C compilers, operating systems, and component debuggers; and (3) powerful: composition eases debugging, while supporting new mixed-language expression evaluation and Java Native Interface (JNI) bug diagnostics. In real-world case studies, we show that language-interface errors require single-environment debuggers to restart execution multiple times, whereas Blink directly diagnoses them with one execution. We also describe extensions for other mixed-environments to show debugger composition will generalize.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference37 articles.
1. C. Bailey. Java technology IBM style: Introduction to the IBM developer kit. http://www.ibm.com/developerworks/java/library/j-ibmjava1.html May 2006. C. Bailey. Java technology IBM style: Introduction to the IBM developer kit. http://www.ibm.com/developerworks/java/library/j-ibmjava1.html May 2006.
2. The DaCapo benchmarks
3. P. Bothner. Compiling Java with GCJ. http://www.linuxjournal.com/article/4860 Jan. 2003. P. Bothner. Compiling Java with GCJ. http://www.linuxjournal.com/article/4860 Jan. 2003.
4. Free Standards Group. DWARF 3 debugging information format. http://www.dwarfstd.org/Dwarf3.pdf Dec. 2005. Free Standards Group. DWARF 3 debugging information format. http://www.dwarfstd.org/Dwarf3.pdf Dec. 2005.
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献