skip to main content
10.5555/2337223.2337280acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Object-centric debugging

Published: 02 June 2012 Publication History

Abstract

During the process of developing and maintaining a complex software system, developers pose detailed questions about the runtime behavior of the system. Source code views offer strictly limited insights, so developers often turn to tools like debuggers to inspect and interact with the running system. Unfortunately, traditional debuggers focus on the runtime stack as the key abstraction to support debugging operations, though the questions developers pose often have more to do with objects and their interactions. We propose object-centric debugging as an alternative approach to interacting with a running software system. We show how, by focusing on objects as the key abstraction, natural debugging operations can be defined to answer developer questions related to runtime behavior. We present a running prototype of an object-centric debugger, and demonstrate, with the help of a series of examples, how object-centric debugging offers more effective support for many typical developer tasks than a traditional stack-oriented debugger.

References

[1]
K. Beck, Test Driven Development: By Example. Addison-Wesley Longman, 2002.
[2]
J. Sillito, G. C. Murphy, and K. De Volder, "Questions programmers ask during software evolution tasks," in Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, ser. SIGSOFT '06/FSE- 14. New York, NY, USA: ACM, 2006, pp. 23-34.
[3]
K. Maruyama and M. Terada, "Debugging with reverse watchpoint," in Proceedings of the Third International Conference on Quality Software (QSIC'03). Washington, DC, USA: IEEE Computer Society, 2003, p. 116.
[4]
B. Lewis, "Debugging backwards in time," in Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG'03), Oct. 2003. {Online}. Available: http://arxiv.org/abs/cs/0310016v1
[5]
G. Pothier, E. Tanter, and J. Piquer, "Scalable omniscient debugging," Proceedings of the 22nd Annual SCM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'07), vol. 42, no. 10, pp. 535-552, 2007.
[6]
J. P. Banning, "An efficient way to find the side effects of procedure calls and the aliases of variables," in Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on principles of programming languages (POPL'79). New York, NY, USA: ACM, 1979, pp. 29-41.
[7]
J. J. Dolado, M. Harman, M. C. Otero, and L. Hu, "An empirical investigation of the influence of a type of side effects on program comprehension," IEEE Transactions on Software Engineering, vol. 29, no. 7, pp. 665-670, 2003.
[8]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, Mass.: Addison Wesley Professional, 1995.
[9]
M. Meyer, T. Gîrba, and M. Lungu, "Mondrian: An agile visualization framework," in ACM Symposium on Software Visualization (SoftVis'06). New York, NY, USA: ACM Press, 2006, pp. 135-144. {Online}. Available: http://scg.unibe.ch/archive/papers/Meye06aMondrian.pdf
[10]
J. Ressia, L. Renggli, T. Gîrba, and O. Nierstrasz, "Run-time evolution through explicit meta-objects," in Proceedings of the 5th Workshop on [email protected] at the ACM/IEEE 13th International Conference on Model Driven Engineering Languages and Systems (MODELS 2010), Oct. 2010, pp. 37-48, http://sunsite.informatik.rwth-aachen.de/Publications/CEURWS/Vol-641/. {Online}. Available: http://scg.unibe.ch/ archive/papers/Ress10a-RuntimeEvolution.pdf
[11]
J. McAffer, "Engineering the meta level," in Proceedings of the 1st International Conference on Metalevel Architectures and Reflection (Reflection 96), G. Kiczales, Ed., San Francisco, USA, Apr. 1996.
[12]
A. Goldberg and D. Robson, Smalltalk 80: the Language and its Implementation. Reading, Mass.: Addison Wesley, May 1983. {Online}. Available: http://stephane.ducasse.free. fr/FreeBooks/BlueBook/Bluebook.pdf
[13]
S. Ducasse, "Evaluating message passing control techniques in Smalltalk," Journal of Object-Oriented Programming (JOOP), vol. 12, no. 6, pp. 39-44, Jun. 1999. {Online}. Available: http://scg.unibe.ch/archive/papers/ Duca99aMsgPassingControl.pdf
[14]
A. Bergel, O. Nierstrasz, L. Renggli, and J. Ressia, "Domain-specific profiling," in TOOLS'11, ser. LNCS, vol. 6705. Springer-Verlag, Jun. 2011, pp. 68-82. {Online}. Available: http://scg.unibe.ch/archive/papers/Berg11b-Profiling.pdf
[15]
B. Gowing and V. Cahill, "Meta-object protocols for C++: The Iguana approach," AAA, Tech. Rep., 1996.
[16]
B. Redmond and V. Cahill, "Supporting unanticipated dynamic adaptation of application behaviour," in Proceedings of European Conference on Object-Oriented Programming, vol. 2374. Springer-Verlag, 2002, pp. 205-230.
[17]
B. Redmond and V. Cahill, "Iguana/J: Towards a dynamic and efficient reflective architecture for Java," in Proceedings of European Conference on Object-Oriented Programming, workshop on Reflection and Meta-Level Architectures, 2000.
[18]
É. Tanter, J. Noyé, D. Caromel, and P. Cointe, "Partial behavioral reflection: Spatial and temporal selection of reification," in Proceedings of OOPSLA '03, ACM SIGPLAN Notices, nov 2003, pp. 27-46. {Online}. Available: http://www.dcc.uchile.cl/~etanter/research/publi/ 2003/tanter-oopsla03.pdf
[19]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, "Aspect-oriented programming," in ECOOP'97, ser. LNCS, M. Aksit and S. Matsuoka, Eds., vol. 1241. Jyvaskyla, Finland: Springer-Verlag, Jun. 1997, pp. 220-242.
[20]
J. Bonér, "What are the key issues for commercial aop use: how does aspectwerkz address them?" in Proceedings of the 3rd international conference on Aspect-oriented software development, ser. AOSD '04. New York, NY, USA: ACM, 2004, pp. 5-6.
[21]
R. Douence, O. Motelet, and M. Sudholt, "A formal definition of crosscuts," in Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns (Reflection 2001), ser. Lecture Notes in Computer Science, vol. 2192. Berlin, Heidelberg, and New York: Springer-Verlag, Sep. 2001, pp. 170-186.
[22]
P. Moret, W. Binder, and E. Tanter, "Polymorphic bytecode instrumentation," in Proceedings of the tenth international conference on Aspect-oriented software development, ser. AOSD '11. New York, NY, USA: ACM, 2011, pp. 129- 140.
[23]
D. Ungar and R. B. Smith, "Self: The power of simplicity," in Proceedings OOPSLA '87, ACM SIGPLAN Notices, vol. 22, Dec. 1987, pp. 227-242.
[24]
H. Lieberman, "Using prototypical objects to implement shared behavior in object oriented systems," in Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, Nov. 1986, pp. 214-223. {Online}. Available: http://web.media.mit.edu/~lieber/Lieberary/OOP/Delegation/ Delegation.htmlhttp://reference.kfupm.edu.sa/content/u/s/ using_prototypical_objects_to_implement_76339.pdf
[25]
Y. Matsumoto, Ruby in a Nutshell. O'Reilly, 2001.
[26]
C. Zhang, D. Yan, J. Zhao, Y. Chen, and S. Yang, "Bpgen: an automated breakpoint generator for debugging," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, ser. ICSE '10. New York, NY, USA: ACM, 2010, pp. 271-274.
[27]
J. J. Barton and J. Odvarko, "Dynamic and graphical web page breakpoints," in Proceedings of the 19th international conference on World wide web, ser. WWW '10. New York, NY, USA: ACM, 2010, pp. 81-90.
[28]
H. Lieberman, "Reversible object-oriented interpreters," in Proceedings ECOOP '87, ser. LNCS, J. Bézivin, J.-M. Hullot, P. Cointe, and H. Lieberman, Eds., vol. 276. Paris, France: Springer-Verlag, Jun. 1987, pp. 11-19.
[29]
C. Hofer, M. Denker, and S. Ducasse, "Design and implementation of a backward-in-time debugger," in Proceedings of NODE'06, ser. Lecture Notes in Informatics, vol. P-88. Gesellschaft für Informatik (GI), Sep. 2006, pp. 17-32. {Online}. Available: http://scg.unibe.ch/archive/papers/Hofe06aUnstuckNode.pdf
[30]
A. Lienhard, T. Gîrba, and O. Nierstrasz, "Practical object-oriented back-in-time debugging," in ECOOP'08, ser. LNCS, vol. 5142. Springer, 2008, pp. 592-615, ECOOP distinguished paper award. {Online}. Available: http://scg. unibe.ch/archive/papers/Lien08bBackInTimeDebugging.pdf
[31]
M. Martin, B. Livshits, and M. S. Lam, "Finding application errors and security flaws using pql: a program query language," in Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05). New York, NY, USA: ACM Press, 2005, pp. 363-385.
[32]
R. Lencevicius, U. Hölzle, and A. K. Singh, "Query-based debugging of object-oriented programs," in Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming (OOPSLA'97). New York, NY, USA: ACM, 1997, pp. 304-317.
[33]
A. Potanin, J. Noble, and R. Biddle, "Snapshot query-based debugging," in Proceedings of the 2004 Australian Software Engineering Conference (ASWEC'04). Washington, DC, USA: IEEE Computer Society, 2004, p. 251.
[34]
S. Ducasse, T. Gîrba, and R. Wuyts, "Object-oriented legacy system trace-based logic testing," in CSMR'06. IEEE Computer Society Press, 2006, pp. 35-44. {Online}. Available: http://scg.unibe.ch/archive/papers/ Duca06aTestLogtestingCSMR.pdf
[35]
S. I. Feldman and C. B. Brown, "Igor: a system for program debugging via reversible execution," in Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging (PADD'88). New York, NY, USA: ACM, 1988, pp. 112-123.
[36]
B. Boothe, "Efficient algorithms for bidirectional debugging," in Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation (PLDI'00). New York, NY, USA: ACM, 2000, pp. 299-310.
[37]
A. J. Ko and B. A. Myers, "Designing the whyline: a debugging interface for asking questions about program behavior," in Proceedings of the 2004 conference on Human factors in computing systems. ACM Press, 2004, pp. 151-158.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '12: Proceedings of the 34th International Conference on Software Engineering
June 2012
1657 pages
ISBN:9781467310673

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Qualifiers

  • Article

Conference

ICSE '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)1
Reflects downloads up to 07 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media