ABSTRACT
A practical system that uses visualization for understanding the execution of complex programs must offer the user views of the execution that are specific to the program being understood and the particular problem at hand without significantly slowing down or perturbing the system being examined. This paper describes a visualization data model and its implementation that accomplishes this. The model starts with program events that can be instrumented efficiently and with little overhead. It uses extended finite state automata to model program behaviors in terms of events. It builds time-varying data structures based on these automata. The data structures are then made available to various visualizations through a set of mappings that let the user dynamically control the visualization. The model and its implementation have been demonstrated on a range of specific understanding problems with a variety of different visualizations.
- David B. Baskerville, "Graphic presentation of data structures in the DBX debugger," UC Berekley UCB/CSD 86/260 (1985). Google ScholarDigital Library
- John Bazik, Roberto Tamassia, Steven P. Reiss, and Andries van Dam, "Software visualization in teaching at Brown University," pp. 383--398 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google Scholar
- Marc H. Brown and Steven P. Reiss, "Debugging in the BALSA-PECAN integrated environment," ACM SIGPLAN-SIGSOFT Symposium on Debugging (1983).Google Scholar
- Marc H. Brown and Robert Sedgewick, "A system for algorithm animation," Computer Graphics Vol. 18(3) pp. 177--186 (July 1984). Google ScholarDigital Library
- Marc H. Brown and Robert Sedgewick, "Interesting Events," pp. 155--172 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google Scholar
- Kenneth W. Church and Jonathan I. Helfman, "Dotplot: a program for exploring self-similarity in millions of lines for text and code," Journal of Computational and Graphical Statistics Vol. 2 pp. 153--174 (1993).Google ScholarCross Ref
- Mikhali Dmitriev, "Design of JFluid: A profiling technology and tool based on dynamic bytecode instrumentation," Sun Microsystems Report TR_2003--125, (November 2003).Google Scholar
- Stephen G. Eick, Joseph L. Steffen, and Eric E. Sumner, Jr., "Seesoft - a tool for visualizing software," AT&T Bell Laboratories (1991).Google Scholar
- Paul Gestwicki and Bharat Jayaraman, "Methodology and Architecture of JIVE," SoftVis 2005, pp. 95--104 (May 2005). Google ScholarDigital Library
- Dean Jerding, John T. Stasko, and Thomas Ball, "Visualizing interactions in program executions," Proc 19th Intl. Conf. on Software Engineering, pp. 360--370 (May 1997). Google ScholarDigital Library
- Dean F. Jerding, "Visualizing patterns in the execution of object-oriented programs," pp. 47--48 in Proceedings of ACM CHI 96 Conference on Human Factors in Computing Systems, (1996). Google ScholarDigital Library
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold, "An Overview of AspectJ," in European Conference on Object-Oriented Programming, (2001). Google ScholarDigital Library
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin, "Aspect-Oriented Programming," in European Conference on Object-Oriented Programming, (jun 1997).Google Scholar
- Doug Kimelman, Bryan Rosenburg, and Tova Roth, "Visualization of dynamics in real world software systems," pp. 293--314 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google Scholar
- Eileen Kraemer, "Visualizing concurrent programs," pp. 237--256 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google Scholar
- Chris Laffra, Doug Lorch, Dave Streeter, Frank Tip, and John Field, "What is Jikes Bytecode Toolkit," http://www.alphaworks.ibm.com/tech/jikesbt, (March 2000).Google Scholar
- Henry Lieberman and Christopher Fry, "Bridging the gap between code and behavior in programming," CHI'95, pp. 480--486 (April 1995). Google ScholarDigital Library
- Sun Microsystems, "JVM Tool Interface," http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html, (2004).Google Scholar
- Brad A. Myers, "Displaying data structures for interactive debugging," Xerox csl-80-7 (June 1980).Google Scholar
- Wim De Pauw, Doug Kimelman, and John Vlissides, "Visualizing object- oriented software execution," pp. 329--346 in Software Visualization: Programming as a Multimedia Experience, ed. John Stasko, John Domingue, Marc H. Brown, and Blaine A. Price, MIT Press (1998).Google Scholar
- Wim De Pauw and Gary Sevitsky, "Visualizing reference patterns for solving memory leaks in Java," in Proceedings of the ECOOP'99 European Conference on Object-oriented Programming, (1999). Google ScholarDigital Library
- Wim De Pauw, Nick Mitchell, Martin Robillard, Gary Sevitsky, and Harini Srinivasan, "Drive-by analysis of running programs," Proc. ICSE Workshop of Software Visualization, (May 2001).Google ScholarDigital Library
- Steven P. Reiss, "PECAN: program development systems that support multiple views," IEEE Trans. Soft. Eng. Vol. SE-11 pp. 276--284 (March 1985). Google ScholarDigital Library
- Steven P. Reiss, Eric J. Golin, and Robert V. Rubin, "Prototyping visual languages with the GARDEN system," Proc. IEEE Symp. on Visual Languages, (June 1986).Google Scholar
- Steven P. Reiss and Joseph N. Pato, "Displaying program and data structures," Proc. 20th Hawaii Intl. Conf. System Sciences, (January 1987).Google Scholar
- Steven P. Reiss, "Working in the Garden environment for conceptual programming," IEEE Software Vol. 4(6) pp. 16--27 (November 1987). Google ScholarDigital Library
- Steven P. Reiss, "Interacting with the FIELD environment," Software Practice and Experience Vol. 20(S1) pp. 89--115 (June 1990). Google ScholarDigital Library
- Steven P. Reiss, "Connecting tools using message passing in the FIELD environment," IEEE Software Vol. 7(4) pp. 57--67 (July 1990). Google ScholarDigital Library
- Steven P. Reiss, FIELD: A Friendly Integrated Environment for Learning and Development, Kluwer (1994). Google ScholarDigital Library
- Steven P. Reiss, "An engine for the 3D visualization of program information," Journal of Visual Languages, (December, 1995).Google ScholarDigital Library
- Steven P. Reiss and Manos Renieris, "Encoding program executions," Proc ICSE 2001, (May 2001). Google ScholarDigital Library
- Steven P. Reiss, "Bee/Hive: a software visualization backend," IEEE Workshop on Software Visualization, (May 2001).Google Scholar
- Steven P. Reiss, "An overview of BLOOM," PASTE '01, (June 2001). Google ScholarDigital Library
- Steven P. Reiss, "A visual query language for software visualization," IEEE 2002 Symposium on Human Centric Computing Languages and Environments, pp. 80--82 (September 2002). Google ScholarDigital Library
- Steven P. Reiss, "JIVE: visualizing Java in action," Proc. ICSE 2003, pp. 820--821 (May 2003). Google ScholarDigital Library
- Steven P. Reiss and Manos Renieris, "JOVE: Java as it happens," Proc. SoftVis '05, pp. 115--124 (May 2005). Google ScholarDigital Library
- Steven P. Reiss, "Efficient monitoring and display of thread state in Java," IWPC 2005, pp. 247--256 (May 2005). Google ScholarDigital Library
- Steven P. Reiss, "Dynamic detection and visualization of software phases," Proc. Third International Workshop on Dynamic Analysis, (May 2005). Google ScholarDigital Library
- Steven P. Reiss, "Checking event-based specificationsin Java systems," Proc. SoftMC 2005, (July 2005).Google Scholar
- John T. Stasko, "TANGO: a framework and system for algorithm animation," IEEE Computer Vol. 23(9) pp. 27--39 (September 1990). Google ScholarDigital Library
- Qin Wang, Wei Wang, Rhodes Brown, Karel Driesen, Bruno Dufour, Laurie Hendren, and Clark Verbrugge, "EVolve: an open extensible software visualization framework," Proc of SoftVis 2003, (June 2003). Google ScholarDigital Library
- Wei Wang, "EVolve: An extensible software visualization framework," McGill University School of Computer Science, (2004).Google Scholar
Index Terms
- Visualizing program execution using user abstractions
Recommendations
Visualizing Java in action
SoftVis '03: Proceedings of the 2003 ACM symposium on Software visualizationDynamic software visualization is supposed to provide programmers with insights as to what the program is doing. Most current dynamic visualizations either use program traces to show information about prior runs, slow the program down substantially, ...
Jove: java as it happens
SoftVis '05: Proceedings of the 2005 ACM symposium on Software visualizationDynamic software visualization is designed to provide programmers with insights as to what the program is doing. Most current dynamic visualizations either use program traces to show information about prior runs, slow the program down substantially, ...
Odin: on-demand instrumentation with on-the-fly recompilation
PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and ImplementationInstrumentation is vital to fuzzing. It provides fuzzing directions and helps detect covert bugs, yet its overhead greatly reduces the fuzzing throughput. To reduce the overhead, compilers compromise instrumentation correctness for better optimization, ...
Comments