Heapviz: Interactive Heap Visualization for Program Understanding and Debugging

被引:0
作者
Aftandilian, Edward E. [1 ]
Kelley, Sean [1 ]
Gramazio, Connor [1 ]
Ricci, Nathan [1 ]
Su, Sara L. [1 ]
Guyer, Samuel Z. [1 ]
机构
[1] Tufts Univ, Dept Comp Sci, Medford, MA 02155 USA
来源
SOFTVIS 2010: PROCEEDINGS OF THE 2010 INTERNATIONAL SYMPOSIUM ON SOFTWARE VISUALIZATION | 2010年
基金
美国国家科学基金会;
关键词
Software visualization; program understanding; debugging; interactive visualization; graphs;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Understanding the data structures in a program is crucial to understanding how the program works, or why it doesn't work. Inspecting the code that implements the data structures, however, is an arduous task and often fails to yield insights into the global organization of a program's data. Inspecting the actual contents of the heap solves these problems but presents a significant challenge of its own: finding an effective way to present the enormous number of objects it contains. In this paper we present Heapviz, a tool for visualizing and exploring snapshots of the heap obtained from a running Java program. Unlike existing tools, such as traditional debuggers, Heapviz presents a global view of the program state as a graph, together with powerful interactive capabilities for navigating it. Our tool employs several key techniques that help manage the scale of the data. First, we reduce the size and complexity of the graph by using algorithms inspired by static shape analysis to aggregate the nodes that make up a data structure. Second, we introduce a dominator-based layout scheme that emphasizes hierarchical containment and ownership relations. Finally, the interactive interface allows the user to expand and contract regions of the heap to modulate data structure detail, inspect individual objects and field values, and search for objects based on type or connectivity. By applying Heapviz to both constructed and real-world examples, we show that Heapviz provides programmers with a powerful and intuitive tool for exploring program behavior.
引用
收藏
页码:53 / 62
页数:10
相关论文
共 32 条
[1]  
Blackburn S.M., 2006, P ACM SIGPLAN C OBJE, P169
[2]  
Brooks F.P., 1975, The Mythical Man-Month
[3]  
COOPER KD, 2001, SOFTWARE PRACTICE EX, P1
[4]  
De Pauw W, 1999, LECT NOTES COMPUT SC, V1628, P116
[5]   Automatic Extraction of Heap Reference Properties in Object-Oriented Programs [J].
Demsky, Brian ;
Rinard, Martin .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2009, 35 (03) :305-324
[6]  
DEPAUW W, 1998, EUR C OBJ OR PROGR, P541
[7]  
DEPAUW W, 1993, ACM C OBJ OR PROGR S, P326
[8]  
Erkan A, 2007, ITICSE 2007: 12TH ANNUAL CONFERENCE ON INNOVATION & TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, P301, DOI 10.1145/1269900.1268870
[9]  
FALKE R, 2005, VISSOFT 05, P24
[10]  
GHIYA R, 1996, ACM S PRINC PROGR LA, P1