跳到主要内容
10.1145/3524610.3527913acm会议文章/章节视图摘要出版物页面国际证券交易所会议记录会议集合
研究文章

形状分析驱动的内存图可视化

出版:2022年10月20日 出版历史记录
  • 获取引文警报
  • 摘要

    在调试现代软件系统时,分析包含复杂动态数据结构的堆转储至关重要。然而,现有的内存图可视化工具既不能处理损坏的结构,例如显示循环的二叉树,也不能在遇到大堆时提供足够的抽象。本文介绍了MGE(内存图浏览器)是一个内存分析器和可视化工具,它将新颖的内存图抽象与交互式可视化相结合。MGE借鉴了分离逻辑和形状分析的思想,揭示了内存节点、名称识别结构(如双链表和二叉树)之间的关系,并总结了复杂结构。此摘要也适用于损坏的数据结构,并且由于支持交互式(取消)折叠,因此对于大型嵌套结构尤其有效。MGE用于帮助程序理解的实用程序通过真实世界和教科书示例进行了说明,并与现有的调试器进行了对比。

    工具书类

    [1]
    Omar Benomar、Houari A.Sahraoui和Pierre Poulin。2013年,使用热图可视化软件动态。软件可视化工作会议(VISSOFT’2013)Alexandru C.Telea、Andreas Kerren和Andrian Marcus(编辑)。IEEE计算机学会,1-10。
    [2]
    Alison Fernandez Blanco、Alexandre Bergel和Juan Pablo Sandoval Alcocer。2022.分析记忆消耗的软件可视化:文献综述。ACM计算。Surv公司。第55、1条,第18条(2022年),共34页。
    [3]
    Jan H.Boockmann和Gerald Lüttgen。2020年。从记忆图中学习数据结构形状。程序设计、人工智能和推理逻辑国际会议(LPAR’2020)(EPiC计算系列,第73卷)Elvira Albert和Laura Kovács(编辑)。EasyChair,151-168。https://easychair.org/publications/paper/mkjl
    [4]
    马克·布罗克施米特(Marc Brockschmidt)、陈玉欣(Yuxin Chen)、拜伦·库克(Byron Cook)、普希米特·科尔利(Pushmeet Kohli)、悉达哈斯·克利须那(Siddharth Krishna)、丹尼尔·塔罗(Daniel Tarlow。2016学习验证堆。技术报告。微软研究。https://www.microsoft.com/en-us/research/publication/learning-to-verify-the-heap/
    [5]
    迈克尔·布鲁斯·洛克哈特(Michael Bruce-Lockhart)、西奥多·诺维尔(Theodore S.Norvell)和伊安妮斯·科特伦斯(Yiannis Cotronis)。2007年,《工程与物理程序与算法可视化》。电子。注释Theor。计算。科学。178 (2007), 111--119.
    [6]
    克里斯蒂亚诺·加尔卡尼奥、迪诺·迪斯特法诺、杰雷米·杜布雷尔、多米尼克·加比、彼得·胡伊梅耶尔、马蒂诺·卢卡、彼得·奥赫恩、艾琳·帕帕孔斯坦蒂努、吉姆·珀布里克和杜尔马·罗德里格斯。2015年,软件验证快速发展。NASA形式方法研讨会(NFM’2015)(计算机科学讲稿,第9058卷)克劳斯·哈维隆德(Klaus Havelund)、杰拉德·J·霍尔兹曼(Gerard J.Holzmann)和拉杰夫·乔希(Rajeev Joshi)(编辑)。施普林格,3-11。
    [7]
    标准绩效评估公司。2001.SPECjbb2000文件。网址:https://www.spec.org/jbb2000/(访问时间:2022年3月23日)。
    [8]
    Patrick Cousot和Radhia Cousot。1979年,程序分析框架的系统设计。程序设计语言原理研讨会(POPL’1979)Alfred V.Aho、Stephen N.Zilles和Barry K.Rosen(编辑)。ACM出版社,269--282。
    [9]
    迪诺·迪斯蒂法诺(Dino Distefano)、曼努埃尔·法恩德里奇(Manuel Fähndrich)、弗朗西斯科·洛戈佐(Francesco Logozzo)和彼得·W·奥赫恩(Peter W.O'Hearn)。2019.在Facebook上进行静态分析。Commun公司。ACM公司62, 8 (2019), 62--70.
    [10]
    约翰·埃尔森(John Ellson)、埃姆登·甘斯纳(Emden R.Gansner)、埃利夫瑟里奥斯·库索菲奥斯(Eleftherios Koutsofios)、斯蒂芬·C·诺斯(Stephen C.North)和戈登·伍德赫尔。2001.Graphviz-开源图形绘制工具。国际制图研讨会(GD’2001)(计算机科学讲义,第2265卷)Petra Mutzel、Michael Jünger和Sebastian Leipert(编辑)。施普林格,483-484。
    [11]
    Eclipse基金会。2021.内存分析器(MAT)。https://www.eclipse.org/mat/(访问日期:2022年3月23日)。
    [12]
    马丁·福勒。2011领域特定语言。艾迪森·韦斯利。
    [13]
    Max Franz、Christian T.Lopes、Gerardo Huck、Yue Dong、Onur Sumer和Gary D.Bader。2015.Cytoscape.js:可视化和分析的图论库。生物信息学32, 2 (09 2015), 309--311.
    [14]
    Paul V.Gestwicki和Bharat Jayaraman。2005年,JIVE的方法和架构。软件可视化研讨会(SOFTVIS’2005)托马斯·纳普斯(Thomas L.Naps)和维姆·德鲍(Wim De Pauw)(编辑)。美国医学会,95--104。
    [15]
    Rakesh Ghiya和Laurie J.Hendren。1996.它是树、DAG还是循环图?C.in堆指向指针的形状分析程序设计语言原理研讨会(POPL’1996)Hans-Juergen Boehm和Guy L.Steele Jr.(编辑)。ACM出版社,1-15。
    [16]
    吉恩·伊夫·吉拉德。1987.线性逻辑。西奥。计算。科学。50 (1987), 1--102.
    [17]
    菲利普·J·郭。2013.在线python导师:CS教育的嵌入式网络程序可视化。计算机科学教育技术研讨会(SIGCSE’2013)、Tracy Camp、Paul T.Tymann、J.D.Dougherty和Kris Nagel(编辑)。美国医学会,579-584。
    [18]
    肖恩·凯利(Sean Kelley)、爱德华·阿夫坦迪利安(Edward Aftandilian)、康纳·格拉马齐奥(Connor Gramazio)、内森·里奇(Nathan P.Ricci)、萨拉·苏和塞缪尔·盖耶(Sara L.Su)。2013.Heapviz:用于程序理解和调试的交互式堆可视化。Inf.Vis.公司。12, 2 (2013), 163--177.
    [19]
    Ton Chanh Le、Guolong Zheng和ThanhVu Nguyen。2019.SLING:使用动态分析推断分离逻辑中的程序不变量。编程语言设计与实现会议(PLDI’2019),Kathryn S.McKinley和Kathleen Fisher(编辑)。美国医学会,788--801。
    [20]
    Mark Marron、César Sánchez、Zhendong Su和Manuel Fähndrich。2013.抽象运行时堆以了解程序。IEEE传输。软件工程。39, 6 (2013), 774--786.
    [21]
    克里斯·迈尔斯。2016.使用Xcode进行可视化调试。https://developer.apple.com/videos/play/wwdc2016/410/(访问日期:2022年3月23日)。
    [22]
    神谕。2021.HPROF:堆/CPU分析工具。https://docs.oracle.com/javase/7/docs/technotes/samples/hprof.html(访问日期:2022年3月23日)。
    [23]
    神谕。2021.Java平台,第11版对象#hashCode()API规范。https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()(访问日期:2022年3月23日)。
    [24]
    神谕。2021.LinkedList(Java平台SE 7)。https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html(访问日期:2022年3月23日)。
    [25]
    龙H.范、孙骏和广乐。2019.通过属性引导学习对堆操作程序进行组合验证。亚洲编程语言与系统研讨会(APLAS’2019)(计算机科学讲稿,第11893卷)Anthony Widjaja Lin(编辑)。施普林格,405-424。
    [26]
    Sokhom Pheng和Clark Verbrugge。2006.Java程序的动态数据结构分析。国际程序理解会议(ICPC’2006)。IEEE计算机学会,191-201。
    [27]
    阿列克谢·拉戈津(Alexey Ragozin)。2021.堆库。https://github.com/aragozin/heaplib网站(访问日期:2022年3月23日)。
    [28]
    史蒂文·莱斯(Steven P.Reiss)。2014.调试期间帮助程序员的挑战。软件可视化工作会议(VISSOFT’2014),Houari A.Sahraoui、Andy Zaidman和Bonita Sharif(编辑)。IEEE计算机学会,112-116。
    [29]
    约翰·雷诺兹(John C.Reynolds)。2002.分离逻辑:共享可变数据结构的逻辑。计算机科学中的逻辑专题讨论会(LICS’2002)。IEEE计算机学会,55-74。
    [30]
    Shmuel Sagiv、Thomas W.Reps和Reinhard Wilhelm。2002.通过三值逻辑进行参数形状分析。ACM事务处理。程序。语言系统。24, 3 (2002), 217--298.
    [31]
    Sven Schneider、Leen Lambers和Fernando Orejas。2019.基于逻辑的图形修复增量方法。软件工程基本方法国际会议(FASE’2019)(计算机科学讲稿,第11424卷)Reiner Hähnle和Wil M.P.van der Aalst(编辑)。斯普林格,151-167。
    [32]
    加里·塞维茨基(Gary Sevitsky)、维姆·德鲍(Wim De Pauw)和拉维·科努鲁(Ravi B.Konuru)。2001.Java程序性能分析的信息探索工具。面向对象语言和系统技术国际会议(TOOLS’2001)。IEEE计算机学会,85-101。
    [33]
    查德·史密斯。2021.格德古伊。https://github.com/cs01/gdbgui/(访问日期:2022年3月23日)。
    [34]
    理查德·马斯特曼(Richard M Stallman)。GNU编译器集合内部。自由软件基金会(2002).
    [35]
    玛格丽特·安妮·D·斯托里和豪西·A·米勒。1995.使用SHriMP视图操作和记录软件结构。国际软件维护会议(ICSM’1995)。IEEE计算机协会,275。
    [36]
    莱纳斯·托瓦尔兹。2021.list.h-Linux内核列表头。https://github.com/torvalds/linux/blob/master/include/linux/list.h(访问日期:2022年3月23日)。
    [37]
    马库斯·特里斯卡。2012.SWI-Pro的有限域约束求解器。函数与逻辑编程国际研讨会(FLOPS’2012)(计算机科学讲稿,第7294卷)Tom Schrijvers和Peter Thiemann(编辑)。施普林格,307--316。
    [38]
    弗雷德里克·沃格尔(Frédéric Vogels)、巴特·雅各布斯(Bart Jacobs)和弗兰克·皮森斯(Frank Piessens)。2015年。轻量级VeriFast。日志。方法计算。科学。11, 3 (2015).
    [39]
    David H.White、Thomas Rupprecht和Gerald Lüttgen。2016年DSI:一种基于证据的方法,用于识别C项目中的动态数据结构。软件测试与分析国际研讨会(ISSTA’2016)Andreas Zeller和Abhik Roychoudhury(编辑)。美国医学会,259-269。
    [40]
    Jan Wielemaker、Tom Schrijvers、Markus Triska和Torbjörn Lager。2012.SWI-预测。理论与实践。日志。程序。12, 1--2 (2012), 67--96.
    [41]
    Reinhard Wilhelm、Shmuel Sagiv和Thomas W.Reps.2000。形状分析。国际编译器构造会议(CC'2000)(计算机科学讲稿,第1781卷)David A.Watt(编辑)。斯普林格,1-17。
    [42]
    安德烈亚斯·泽勒(Andreas Zeller)和多萝西娅·吕特霍斯(Dorothea Lütkehaus)。DDD-UNIX调试器的免费图形前端。ACM SIGPLAN通知31, 1 (1996), 22--27.
    [43]
    托马斯·齐默尔曼和安德烈亚斯·泽勒。2001.可视化内存图。软件可视化,2001年5月20日至25日,德国达格斯图尔城堡国际研讨会,修订讲座(计算机科学讲稿,第2269卷)斯蒂芬·迪尔(编辑)。施普林格,191-204。

    引用人

    查看全部

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片ACM会议
    ICPC’22:第30届IEEE/ACM程序理解国际会议记录
    2022年5月
    698页
    国际标准图书编号:9781450392983
    内政部:10.1145/3524610
    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布、在服务器上发布或重新分发到列表,需要事先获得特定许可和/或收取费用。从请求权限[电子邮件保护]

    赞助商

    合作中

    • IEEE CS标准

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史记录

    出版:2022年10月20日

    权限

    请求对此文章的权限。

    检查更新

    限定符

    • 研究文章

    资金来源

    会议

    ICPC’22
    赞助商:
    ICPC’22:第30届程序理解国际会议
    2022年5月16日至17日
    虚拟事件

    即将召开的会议

    ICSE 2025年
    2025 IEEE/ACM第46届国际软件工程会议
    2025年4月26日至5月3日
    渥太华,打开,加拿大

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 下载次数(过去12个月)36
    • 下载次数(最近6周)6

    其他指标

    引文

    引用人

    查看全部

    视图选项

    获取访问权限

    登录选项

    完全访问权限

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享