Document
拖动滑块完成拼图
个人中心

预订订单
商城订单
发布专利 发布成果 人才入驻 发布商标 发布需求

请提出您的宝贵建议,有机会获取IP积分或其他奖励

投诉建议

在线咨询

联系我们

龙图腾公众号
首页 专利交易 IP管家助手 科技果 科技人才 积分商城 国际服务 商标交易 会员权益 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 中南大学赵颖获国家专利权

中南大学赵颖获国家专利权

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

龙图腾网获悉中南大学申请的专利一种动态函数调用的可视化方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115952230B

龙图腾网通过国家知识产权局官网在2026-02-03发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202211258789.1,技术领域涉及:G06F16/26;该发明授权一种动态函数调用的可视化方法是由赵颖;吕胜蓝;韩非江;姜郦珈;范毅伦;陈茁;袁键;蒋昊瑾;周芳芳设计研发完成,并于2022-10-14向国家知识产权局提交的专利申请。

一种动态函数调用的可视化方法在说明书摘要公布了:本发明公开的一种动态函数调用的可视化方法,属于信息可视化技术领域,具体为获取动态函数调用数据;将原始数据转换为带索引信息的层次结构数据;基于广度优先遍历算法确定函数节点布局及设置调用连边属性;绘制层次化的函数调用概览;将函数调用的索引区间映射到节点高度上;绘制细粒度的函数调用。本发明提出了一种紧凑化和左对齐的层次化函数节点布局方法,提供了函数调用中二元、层次信息的概览;并在函数节点上进行了图元设计,简洁美观地展示了细粒度的函数调用时序信息,方便分析人员快速定位多次发生的调用、高效识别连续或周期调用模式。可以帮助他们精简工作流程,节约工作时间。

本发明授权一种动态函数调用的可视化方法在权利要求书中公布了:1.一种动态函数调用的可视化方法,其特征在于:它包含以下步骤: 步骤1:获取动态函数调用数据; 动态函数调用数据为一个程序动态运行一次产生的函数调用记录,这些记录以表格的形式存储,每一条记录包含三个字段:caller、callee和index; 其中caller字段保存了调用函数的名称、callee字段保存了被调用函数的名称,这两个字段的数据类型为STRING型;index字段保存了函数调用的索引,数据类型为INT型;通过index字段的值Ik能够确定一条唯一的函数调用记录,表示程序动态运行过程中,caller字段的函数调用了callee字段的函数; 步骤2:将动态函数调用数据转换为带索引信息的层次结构数据; 将步骤1得到的动态函数调用数据转换为层次结构的数据;根据函数之间的调用和被调用关系来确定层次结构中的父子关系,合并同一个父节点下的相同调用边同时记录调用发生所对应的索引; 步骤2.1:初始化集合Funccall_set,用于记录所有的调用边对象;按照index的值,升序遍历步骤1中得到的动态函数调用记录,将每一条记录中caller和callee的组合视为一个调用边对象caller|callee; 步骤2.2:对Funccall_set进行遍历,生成以程序的入口函数作为根节点的层次结构数据Hie_calldata; 步骤3:基于广度优先遍历算法确定函数节点布局及设置调用连边属性; 根据步骤2.2获得的层次化数据Hie_calldata进行布局,生成相应的树节点数组和连边数组;树节点数组记录每一个函数节点对象,包括基本属性:函数名称、函数节点在树结构中的深度,以及布局属性即在画布上的位置;树连边数组记录每一条连边对象,包括两个基本属性:连边所对应的源节点对象和目标节点对象; 步骤3.1:定义一个起始位置的坐标start_X,start_Y,函数节点之间的水平间距node_spaceX,节点之间的竖直间距node_spaceY;初始化一个函数节点数组tree_funcnode,和一个函数调用连边数组tree_calllink; 步骤3.2:对步骤2.2中获得的层次化数据Hie_calldata进行广度优先遍历,此步骤基于循环来实现,将函数节点对象添加到tree_funcnode数组中,将函数调用连边对象添加到tree_calllink数组中; 步骤3.3:由于程序的入口函数为根节点,单独位于一层中,为了节省竖直方向上的空间,移除步骤3.2得到的tree_funcnode数组中的根节点对象;移除步骤3.2得到的tree_calllink数组中的根节点到其子节点之间的调用连边对象;因此在下一步中不会绘制根节点及与之相关的连边; 步骤4:绘制层次化的函数调用概览; 根据步骤3.3中得到的tree_funcnode和tree_calllink,分层绘制函数节点和调用连边;将函数节点编码为等大的方块,将函数名称标记在方块内部,并显式绘制父节点到其第一个子节点的调用连边;层次化的布局能够确保动态函数调用数据中层次信息的呈现,连边则保证了二元信息的呈现; 步骤5:将函数调用的索引区间映射到节点高度上; 由于节点是等大的,方块状的,因此将节点的高度作为时间轴,将动态函数调用数据的索引区间映射到节点高度上,以展示细粒度的动态函数调用的时序信息; 获取动态函数调用数据的index区间[0,Imax],表示函数调用数据共包含1+Imax条调用,对应函数节点的高度node_size;计算分配给每一条函数调用的高度均为h_singleIndex,计算方式如下: h_singleIndex=node_size1+Imax; 步骤6:绘制细粒度的函数调用; 在函数节点上进行图元设计,使用绘制在方块相应高度上,与节点同宽的水平条来表示该方块所对应的函数被其父节点调用的时序信息;同时借助水平条的颜色来编码被调用函数的类型; 步骤6.1:定义水平条的高度为步骤5中计算得到的h_singleIndex;定义水平条的宽度和节点边长相等,为node_size;定义水平条的默认颜色为深灰色;用户按需通过水平条的颜色来编码其他类型的信息; 步骤6.2:步骤3.3得到的tree_funcnode中,每个函数节点对象中都记录了函数的名称,函数被其父节点调用时对应的索引all_index、函数节点的x、y坐标属性;循环遍历tree_funcnode,对于每一个函数节点对象Nd,i,其中深度为d,即第d+1层的第i个节点Nd,i;遍历all_index数组中的所有索引值,同时记录同一层函数节点对应的索引区间,依次绘制和编码调用时序信息的水平条,并在每一层第一个函数节点的左侧边上标记该层的索引区间;其中,索引值Ik对应的水平条左上角顶点位置H_xd,i,k,H_yd,i,k计算方式如下,0≤Ik≤Imax; H_xd,i,k=所属函数节点对象的x坐标值N_xd,i; H_yd,i,k=所属函数节点对象的y坐标值N_yd,i+Ik*h_singleIndex。

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人中南大学,其通讯地址为:410083 湖南省长沙市岳麓区麓山南路932号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

以上内容由龙图腾AI智能生成。

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。