Treffer: Debug all your code ; portable mixed-environment debugging

Title:
Debug all your code ; portable mixed-environment debugging
Source:
ACM SIGPLAN Notices ; volume 44, issue 10, page 207-226 ; ISSN 0362-1340 1558-1160
Publisher Information:
Association for Computing Machinery (ACM)
Publication Year:
2009
Document Type:
Fachzeitschrift article in journal/newspaper
Language:
English
DOI:
10.1145/1639949.1640105
Accession Number:
edsbas.462FFEC0
Database:
BASE

Weitere Informationen

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.