首页> 外文期刊>Information visualization >Heapviz: Interactive heap visualization for program understanding and debugging
【24h】

Heapviz: Interactive heap visualization for program understanding and debugging

机译:Heapviz:交互式堆可视化,用于程序理解和调试

获取原文
获取原文并翻译 | 示例
           

摘要

Understanding the data structures in a program is crucial to understanding how the program works, or why it does not 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 implement a powerful visualization component whose interactive interface provides extensive support for exploring the graph. The user can search for objects based on type, connectivity, and field values; group objects; and color or hide and show each group. The user may also inspect individual objects to see their field values and neighbors in the graph. These interactive abilities help the user manage the complexity of these huge graphs. By applying Heapviz to both constructed and real-world examples, we show that it provides programmers with a powerful and intuitive tool for exploring program behavior.
机译:理解程序中的数据结构对于理解程序如何工作或为什么不起作用至关重要。但是,检查实现数据结构的代码是一项艰巨的任务,并且常常无法深入了解程序数据的全局组织。检查堆的实际内容可以解决这些问题,但它本身也面临着巨大的挑战:找到一种有效的方法来呈现堆中包含的大量对象。在本文中,我们介绍了Heapviz,这是一种用于可视化和探索从运行的Java程序获得的堆快照的工具。与传统的调试器等现有工具不同,Heapviz将程序状态显示为图形的全局视图,并具有用于导航的强大交互功能。我们的工具采用了多种关键技术来帮助管理数据规模。首先,我们通过使用受静态形状分析启发的算法来聚合组成数据结构的节点,从而降低了图形的大小和复杂性。其次,我们实现了功能强大的可视化组件,该组件的交互式界面为探索图形提供了广泛的支持。用户可以根据类型,连接性和字段值搜索对象;组对象;并为每个组着色或隐藏并显示。用户还可以检查单个对象,以查看其字段值和图形中的邻居。这些交互式功能可帮助用户管理这些巨大图形的复杂性。通过将Heapviz应用于构造的和真实的示例,我们表明它为程序员提供了一种功能强大且直观的工具来探索程序行为。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号