A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dbxtool: A window-based symbolic debugger for sun workstations
Software—Practice & Experience
Pi: a case study in object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A micro-kernel for concurrency in C
Software—Practice & Experience
Experience with topaz telebugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
The portable common runtime approach to interoperability
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Fast breakpoints: design and implementation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Design and validation of computer protocols
Design and validation of computer protocols
PostScript language reference manual (2nd ed.)
PostScript language reference manual (2nd ed.)
A dataflow approach to event-based debugging
Software—Practice & Experience
A code generation interface for ANSI C
Software—Practice & Experience
A retargetable compiler for ANSI C
ACM SIGPLAN Notices
Systems programming with Modula-3
Systems programming with Modula-3
VAX DEBUG: An interactive, symbolic, multilingual debugger
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Adaptability and portability of symbolic debuggers
Adaptability and portability of symbolic debuggers
EEL: machine-independent executable editing
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Relative debugging: a new methodology for debugging scientific applications
Communications of the ACM
Automatic checking of instruction specifications
ICSE '97 Proceedings of the 19th international conference on Software engineering
Specifying representations of machine instructions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extension Language Automation of Embedded System Debugging
Automated Software Engineering
Pragmatic Aspects of Reusable Program Generators
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
A debugging tool for software evolution
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Debugging scientific applications in the .NET Framework
Future Generation Computer Systems - Tools for program development and analysis
Pragmatic aspects of reusable program generators
Journal of Functional Programming
Tdb: a source-level debugger for dynamically translated programs
Proceedings of the sixth international symposium on Automated analysis-driven debugging
The New Jersey machine-code toolkit
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
A Tcl-based self-configuring embedded system debugger
TCLTK'97 Proceedings of the 5th conference on Annual Tcl/Tk Workshop 1997 - Volume 5
A simple and extensible graphical debugger
ATEC '97 Proceedings of the annual conference on USENIX Annual Technical Conference
Configurable editing of XML-based variable-data documents
Proceedings of the eighth ACM symposium on Document engineering
Debug all your code: portable mixed-environment debugging
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Source-Level debugging for multiple languages with modest programming effort
CC'05 Proceedings of the 14th international conference on Compiler Construction
Hi-index | 0.02 |
We are developing techniques for building retargetable debuggers. Our prototype, 1db, debugs C programs compiled for the MIPS R3000, Motorola 68020, SPARC, and VAX architectures. It can use a network to connect to faulty processes and can do cross-architecture debugging. 1db's total code size is about 16,000 lines, but it needs only 250–550 lines of machine-dependent code for each target.1db owes its retargetability to three techniques: getting help from the compiler, using a machine-independent embedded interpreter, and choosing abstractions that minimize and isolate machine-dependent code. 1db reuses existing compiler function by having the compiler emit PostScript code that 1db later interprets; PostScript works well in this unusual context.