Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
IGOR: a system for program debugging via reversible execution
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Query-based debugging of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient algorithms for bidirectional debugging
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Debugging with Reverse Watchpoint
QSIC '03 Proceedings of the Third International Conference on Quality Software
A portable virtual machine for program debugging and directing
Proceedings of the 2004 ACM symposium on Applied computing
Snapshot Query-Based Debugging
ASWEC '04 Proceedings of the 2004 Australian Software Engineering Conference
Mirrors: design principles for meta-level facilities of object-oriented programming languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Why Programs Fail: A Guide to Systematic Debugging
Why Programs Fail: A Guide to Systematic Debugging
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object-Oriented Legacy System Trace-based Logic Testing
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Tracking Objects to Detect Feature Dependencies
ICPC '07 Proceedings of the 15th IEEE International Conference on Program Comprehension
Efficient checkpointing of java software using context-sensitive capture and replay
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Tracking bad apples: reporting the origin of null and undefined value errors
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Object flow analysis: taking an object-centric view on dynamic analysis
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Change-Enabled Software Systems
Software-Intensive Systems and New Computing Paradigms
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Pinocchio: bringing reflection to life with first-class interpreters
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The architecture of the DecentVM: towards a decentralized virtual machine for many-core computing
Virtual Machines and Intermediate Languages
Summarized trace indexing and querying for scalable back-in-time debugging
Proceedings of the 25th European conference on Object-oriented programming
Agile software assessment with Moose
ACM SIGSOFT Software Engineering Notes
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Hi-index | 0.00 |
Back-in-time debuggers are extremely useful tools for identifying the causes of bugs. Unfortunately the "omniscient" approaches that try to remember allprevious states are impractical because they consume too much space or they are far too slow. Several approaches rely on heuristics to limit these penalties, but they ultimately end up throwing out too much relevant information. In this paper we propose a practical approach that attempts to keep track of only the relevant data. In contrast to other approaches, we keep object history information together with the regular objects in the application memory. Although seemingly counter-intuitive, this approach has the effect that data not reachable from current application objects (and hence, no longer relevant) is garbage collected. We describe the technical details of our approach, and we present benchmarks that demonstrate that memory consumption stays within practical bounds. Furthermore, the performance penalty is significantly less than with other approaches.