Debugging mixed‐environment programs with Blink. (11th June 2014)
- Record Type:
- Journal Article
- Title:
- Debugging mixed‐environment programs with Blink. (11th June 2014)
- Main Title:
- Debugging mixed‐environment programs with Blink
- Authors:
- Lee, Byeongcheol
Hirzel, Martin
Grimm, Robert
McKinley, Kathryn S. - Abstract:
- <abstract abstract-type="main" id="spe2276-abs-0001"> <title>Summary</title> <p id="spe2276-para-0001">Programmers build large‐scale systems with multiple languages to leverage legacy code and 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 often execute in different environments. Unfortunately, traditional multilingual debuggers require a <italic>single</italic> execution environment. This paper presents a novel <italic>composition</italic> 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 <italic>Blink</italic>, a debugger for Java, C, and the Jeannie programming language. We show that Blink is (i) simple: it requires modest amounts of new code; (ii) portable: it supports multiple Java virtual machines, C compilers, operating systems, and component debuggers; and (iii) powerful: composition eases debugging, while supporting new mixed‐language expression evaluation and Java native interface bug diagnostics. To demonstrate the generality of interposition, we build prototypes and demonstrate debugger language transitions with C for five of six other languages (Caml, Common<abstract abstract-type="main" id="spe2276-abs-0001"> <title>Summary</title> <p id="spe2276-para-0001">Programmers build large‐scale systems with multiple languages to leverage legacy code and 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 often execute in different environments. Unfortunately, traditional multilingual debuggers require a <italic>single</italic> execution environment. This paper presents a novel <italic>composition</italic> 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 <italic>Blink</italic>, a debugger for Java, C, and the Jeannie programming language. We show that Blink is (i) simple: it requires modest amounts of new code; (ii) portable: it supports multiple Java virtual machines, C compilers, operating systems, and component debuggers; and (iii) powerful: composition eases debugging, while supporting new mixed‐language expression evaluation and Java native interface bug diagnostics. To demonstrate the generality of interposition, we build prototypes and demonstrate debugger language transitions with C for five of six other languages (Caml, Common Lisp, C#, Perl 5, Python, and Ruby) without modifications to their debuggers. Using real‐world case studies, we show that diagnosing language interface errors require prior single‐environment debuggers to restart execution multiple times, whereas Blink directly diagnoses them with one execution. Copyright © 2014 John Wiley &amp; Sons, Ltd.</p> </abstract> … (more)
- Is Part Of:
- Software, practice & experience. Volume 45:Number 9(2015)
- Journal:
- Software, practice & experience
- Issue:
- Volume 45:Number 9(2015)
- Issue Display:
- Volume 45, Issue 9 (2015)
- Year:
- 2015
- Volume:
- 45
- Issue:
- 9
- Issue Sort Value:
- 2015-0045-0009-0000
- Page Start:
- 1277
- Page End:
- 1306
- Publication Date:
- 2014-06-11
- Subjects:
- Computer software -- Periodicals
Computer programming -- Periodicals
Computer programs -- Periodicals
005.3 - Journal URLs:
- http://onlinelibrary.wiley.com/ ↗
- DOI:
- 10.1002/spe.2276 ↗
- Languages:
- English
- ISSNs:
- 0038-0644
- Deposit Type:
- Legaldeposit
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library DSC - 8321.453000
British Library DSC - BLDSS-3PM
British Library STI - ELD Digital store - Ingest File:
- 4299.xml