CN113626017A - 异构程序的分析方法、装置、计算机设备和存储介质 - Google Patents

异构程序的分析方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113626017A
CN113626017A CN202110761137.9A CN202110761137A CN113626017A CN 113626017 A CN113626017 A CN 113626017A CN 202110761137 A CN202110761137 A CN 202110761137A CN 113626017 A CN113626017 A CN 113626017A
Authority
CN
China
Prior art keywords
kernel function
program
heterogeneous
user interface
graphical user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110761137.9A
Other languages
English (en)
Other versions
CN113626017B (zh
Inventor
肖熠
霍志坤
李志功
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN202110761137.9A priority Critical patent/CN113626017B/zh
Publication of CN113626017A publication Critical patent/CN113626017A/zh
Application granted granted Critical
Publication of CN113626017B publication Critical patent/CN113626017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种异构程序的分析方法、装置、计算机设备和存储介质。该分析方法包括:加载预设文件,并根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,通过这种树状可视化结构,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,之后,响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数,如此,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。

Description

异构程序的分析方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种异构程序的分析方法、装置、计算机设备和存储介质。
背景技术
异构计算(HeterogeneousComputing)是指使用不同类型指令集和体系架构的计算单元组成的计算系统,异构计算可以大幅提升计算机的计算能力,随着异构计算的广泛应用,异构加速器成为高性能计算机中的主要计算单元。
CUDA(ComputeUnifiedDeviceArchitecture,统一计算设备架构)和LLVM(LowLevelVirtualMachine,底层虚拟机)分别是目前异构加速器领域广泛使用的异构并行系统和异构程序编译系统。然而,LLVM虽然可以编译和反汇编异构并行程序,读取异构加速器可执行程序镜像,却并不具备相关静态分析功能。CUDA虽然提供有命令行形式的工具cuobjdump和nvdisasm,以支持异构加速器可执行程序的静态分析功能,但是,需要使用上述工具并添加对应参数以生成可执行程序镜像中核函数的结构生成图,操作复杂,且当可执行程序镜像包含大量核函数时,其生成核函数结构生成图的效率较低,若核函数逻辑过于复杂,则结构生成图会非常庞大,不利于异构程序性能分析者对核函数进行性能和效率分析。
发明内容
本申请实施例提供一种异构程序的分析方法、装置、计算机设备和存储介质,可以将核函数分析数据可视化展示,以便于使用者对核函数进行性能和效率分析。
第一方面,本申请实施例提供一种异构程序的分析方法,包括:
加载预设文件;
根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,所述异构程序分析树包括至少一个核函数标识;
响应于针对所述核函数标识的第一操作,在所述图形用户界面上显示目标核函数的分析数据,所述目标核函数为所述第一操作所选择的核函数标识对应的核函数。
在上述实施例中,通过在图形用户界面上显示异构程序分析树,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,并且,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。
在一个实施例中,在所述图形用户界面上显示目标核函数的分析数据之前,所述方法还包括:
对所述目标核函数进行反汇编,以得到所述目标核函数的汇编程序;
根据所述汇编程序的分支指令对所述汇编程序的进行切片,以得到多个程序切片;
使用条件分支线将所述多个程序切片按照控制流关系进行排列连接,以生成所述目标核函数的分析数据。
在上述实施例中,使用分支指令对汇编程序进行切片,之后使用条件分支线将多个程序切片按照控制流关系排列连接,得到的分析数据可以清晰地构建出程序块的结构关系,使分析数据更加直观,提高使用者对核函数进行分析的效率。
在一个实施例中,所述根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,包括:
提取所述预设文件中的可执行程序镜像;
提取所述可执行程序镜像中的核函数;
根据所述预设文件、所述可执行程序镜像、所述核函数以及所述预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,并显示在所述异构程序分析器提供的图形用户界面上。
在上述实施例中,通过树状结构使异构程序内部的层级结构更加直观,使用者可以十分便捷的选择所需要查看和研究的层级对象,提升用户操作的便利性,更加人性化。
在一个实施例中,所述异构程序分析树包括多个层级,每一个所述层级包括至少一个层级对象,所述方法还包括:
响应于针对目标层级对象的第二操作,在所述图形用户界面上显示所述目标层级对象的描述信息,所述目标层级对象为所述第二操作所选择的所述层级对象。
在上述实施例中,将使用者所选择的层级对象的描述信息显示在异构程序分析器提供的图形用户界面上,可以使显示内容更加全面,进一步便于用户对异构程序进行分析。
在一个实施例中,所述分析数据包括可编辑内容,所述方法还包括:
响应于针对所述可编辑内容的修改操作;
根据修改操作对所述可编辑内容进行更新。
在上述实施例中,使用者可以直接对需要修改的内容进行编辑修改,提升了该异构程序的分析方法的实用性、可操作性以及便利性。
在一个实施例中,所述方法还包括:
在所述图形用户界面上显示所述异构程序分析器的工作状态。
在上述实施例中,将异构程序分析器的工作状态透明化,使用者可以直观地观察处理进度,从而对异构程序的分析进展有明显的感知,进而及时发现并处理问题。
在一个实施例中,所述图形用户界面包括搜索输入框,所述方法还包括:
获取所述搜索输入框的输入数据;
搜索所述预设文件中与所述输入数据对应的内容,并将所述与所述输入数据对应的内容突出显示在所述图形用户界面上。
在上述实施例中,用户可以通过输入的方式一键寻找相关数据以及内容,提高该分析方法的实用性,为使用者提供了极大的便利。
第二方面,本申请实施例还提供了一种异构程序的分析装置,包括:
加载模块,用于加载预设文件;
第一显示模块,用于根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,所述异构程序分析树包括至少一个核函数标识;
第二显示模块,响应于针对所述核函数标识的第一操作,在所述图形用户界面上显示目标核函数的分析数据,所述目标核函数为所述第一操作所选择的核函数标识对应的核函数。
第三方面,本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现如上述方法的步骤。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述方法的步骤。
本申请实施例提供了一种异构程序的分析方法、装置、计算机设备和存储介质,该分析方法包括:加载预设文件,并根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,通过这种树状可视化结构,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,之后,响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数,如此,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的异构程序的分析方法的流程示意图。
图2是本申请实施例提供的异构程序的分析方法的第一应用场景示意图;
图3是本申请实施例提供的异构程序的分析方法的第二应用场景示意图;
图4是本申请实施例提供的异构程序的分析方法的第三应用场景示意图;
图5是本申请实施例提供的异构程序的分析方法的第四应用场景示意图;
图6是本申请实施例提供的异构程序的分析方法的第五应用场景示意图;
图7是本申请实施例提供的异构程序的分析方法的第六应用场景示意图;
图8是本申请实施例提供的异构程序的分析方法的第七应用场景示意图;
图9是本申请实施例提供的异构程序的分析方法的另一流程示意图;
图10是本申请实施例提供的异构程序的分析装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种异构程序的分析方法、装置、计算机设备和存储介质。具体地,本实施例提供适用于异构程序的分析装置的异构程序的分析方法,该异构程序的分析装置可以集成在计算机设备中。
请参阅图1,图1为本申请实施例提供的异构程序的分析方法的流程示意图,该方法应用于运行于计算机设备上的异构程序分析器,主要可以包括步骤101至步骤103,针对各个步骤的说明如下:
步骤101:加载预设文件。
其中,预设文件可以为ELF(ExecutableandLinkableFormat,可执行与可链接格式)文件,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件,被Unix和Linux系统广泛采用。
容易理解的是,异构加速器通常使用精简指令结构的特定指令集,无法直接运行主机端程序,因此,通常将异构加速器可执行程序镜像作为数据块存储在异构程序中。
具体地,计算机设备上可以运行有异构程序分析器,使用者可以在异构程序分析器打开预设文件,比如,当使用者打开异构程序分析器时,显示异构程序分析器提供的图形用户界面,该图形用户界面包括顶部控制区域,包括但不限于打开/关闭文件、文件内容搜索等功能,用户可以通过打开文件功能打开预设文件。比如,如图2所示,该计算机设备2000显示有图形用户界面100,该图形用户界面100上包括顶部控制区域110,顶部控制区域110包括“File(F)”按钮111,当户点击该“File(F)”按钮111时,显示文件浏览页面200,使用者可以通过文件浏览页面200导入预设文件。
步骤102:根据预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识。
其中,核函数标识可以为核函数名称,每一个核函数标识对应一个核函数。
具体地,以ELF文件为例,ELF文件可以包括可执行程序镜像,可执行程序镜像包括多个核函数。在加载ELF文件后,可以首先对ELF文件的结构进行拆分,将其中的层级关系以树形结构图的形式显示在图形用户界面上,通过这种树形可视化结构,使用者可以十分便捷的了解该ELF文件的内部层级结构,并且可以十分便捷的选择所需要查看和研究的核函数,极大地提高核函数查找和分析效率。
在本实施例中,步骤102主要可以包括:提取预设文件中的可执行程序镜像;提取可执行程序镜像中的核函数;根据预设文件、可执行程序镜像、核函数以及预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,并显示在异构程序分析器提供的图形用户界面上。
具体地,ELF文件由四部分组成,分别是ELF头部(ELFheader)、程序头表(Programheadertable)、节(Section)和节头表(Sectionheadertable)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头部的位置是固定的,其余各部分的位置、大小等信息由ELF头部中的各项值来决定。
在本实施例中,ELF文件中可以同时存储针对不同架构异构加速器的可执行程序镜像,并使用Fatbinary将不同架构异构加速器的可执行程序镜像以特定结构排列。具体地,可以通过ClangOffloadBundle作为Fatbinary结构标准将装载至ELF文件中。当使用者选择并加载ELF文件后,首先可以校验ELF文件的头部信息以及结构是否正确,若不正确,则提示使用者文件加载失败,若正确,则可以根据头部提取ClangOffloadBundle结构,以提取Fatbinary部分,并分别提取多种异构加速器架构的可执行程序镜像。提取出可执行程序镜像文件后,若其头部信息和结构正确,则解析头部信息,以确定其中包含的核函数数量和核函数信息,包括但不限于名称、大小、起止地址、数据等之后,可以根据核函数数量和核函数信息提取核函数。
由上述描述可知,针对ELF文件,自顶向下的层级关系依次为ELF文件、ClangOffloadBundle结构、可执行程序镜像和核函数,即ELF文件包含ClangOffloadBundle结构,ClangOffloadBundle结构包含不同异构加速器架构对应的可执行程序镜像,可执行程序镜像包含多个核函数。当对上述架构解析完成后,可以根据各个层级的名称生成异构程序分析树,并显示在异构程序分析器提供的图形用户界面上。
步骤103:响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,目标核函数为第一操作所选择的核函数标识对应的核函数。
其中,第一操作可以为触控操作,比如,点击操作、双击操作、滑动操作等。比如,该异构程序分析器提供的图形用户界面上可以预设有核函数结构显示与编辑区域,响应于针对核函数标识的点击操作,在核函数结构显示与编辑区域中显示点击操作对应核函数的分析数据。
譬如,请参见图3,当预设文件载入后,该图形用户界面100上显示有层级区域120,该层级区域120上显示有异构程序分析树,自上而下的层级结构为Binary(ClangOffloadBundle结构)、arch(可执行程序镜像)、kernel(核函数),当使用者点击kernel1时,该图形用户界面100的核函数结构显示与编辑区域130上显示有kernel1的分析数据。
容易理解的是,实际上核函数的分析数据可能较为复杂,无法通过一个页面完全展示,核函数结构显示与编辑区域130可设置滚动条,使用者通过滚动条查看完整的分析数据。
在一些实施例中,在步骤“在图形用户界面上显示目标核函数的分析数据”之前,还可以包括:对目标核函数进行反汇编,以得到目标核函数的汇编程序;根据汇编程序的分支指令对汇编程序进行切片,以得到多个程序切片;使用条件分支线将多个程序切片按照控制流关系进行排列连接,以生成目标核函数的分析数据。
具体地,可以使用llvm-objdump将目标核函数进行反汇编,构建出文本化核函数汇编表示,得到的目标核函数的汇编程序后,可以对汇编程序的指令进行解析,根据汇编程序中的分支指令对汇编程序进行切片,其中,分支指令包括S_BRANCH及其扩展、S_SETPC及其扩展、S_CALL等等。容易理解的是,切片可以理解为将汇编程序进行代码分割,根据分支指令对汇编程序进行代码分割,之后使用分支线将多个程序切片按照控制流关系排列连接起来,得到的核函数的分析数据可以清楚的展示核函数的整体控制逻辑,便于使用者分析核函数的逻辑结构和性能效率。
在一些实施例中,该分析方法还可以包括:确定目标核函数的参数传递顺序,以确定目标核函数的参数所对应的寄存器;将汇编程序中与寄存器相关指令修改为预设表示形式。
其中,预设表示形式为与核函数参数顺序、大小相对应的具有实际作用的字符描述信息。具体地,在上述步骤中得到的核函数信息包括核函数描述信息,可以根据核函数描述信息解析该目标核函数的参数结构,确定其参数传递顺序,以此确定参数所对应寄存器,之后将汇编程序中与寄存器相关指令修改为具有实际作用的字符描述信息,可以使与寄存器相关指令的作用更加直观,不再晦涩难懂,进一步提升使用者对核函数分析的效率,使该分析方法更加人性化。
在一些实施例中,该异构程序分析树包括多个层级,每一个层级包括至少一个层级对象,该分析方法还可以包括:响应于针对目标层级对象的第二操作,在所述图形用户界面上显示所述目标层级对象的描述信息,所述目标层级对象为所述第二操作所选择的所述层级对象。
其中,第二操作可以为触控操作,比如,点击操作、双击操作、滑动操作等。该图形用户界面还可以包括描述信息显示区域,用来显示上述目标层级对象的描述信息。
譬如,根据ELF文件可以解析出三个层级,其中,自顶向下的第一个层级为ClangOffloadBundle结构,第二个层级为可执行程序镜像,第三个层级为核函数,其中,ELF文件包括一个ClangOffloadBundle结构,则第一个层级包括一个层级对象,比如Binary,ClangOffloadBundle结构可以包括N个可执行程序镜像,则第二个层级包括N个层级对象,分别为Arch1至ArchN,每一个可执行程序镜像可以包括N个核函数,则第三层级包括N个层级对象,分别为Kernel1至KernelN,其中,N为大于0的整数。比如,如图4所示,该图形用户界面100还包括描述信息显示区域140,当使用者点击Binary时,该描述信息显示区域140显示ClangOffloadBundle的描述信息,再比如,如图5所示,当使用者点击Arch1时,该描述信息显示区域140显示可执行程序镜像的描述信息,如图5中的代码对象信息以及代码对象中的符号信息,其中,可执行程序镜像的描述信息还可以包括但不限于头部描述、符号信息、节结构信息、段结构信息等,再比如,如图6所示,当使用者点击Kernel1时,则显示核函数信息,包括但不限于核函数名、寄存器使用数量和其他内部参数设定。
如此,可以使每一层级对象的信息展示的更加具体、完整,进一步提高使用者对异构程序分析的效率。
在一些实施例中,上述核函数的分析数据包括可编辑内容,该方法还可以包括:响应于针对可编辑内容的修改操作;根据修改操作对所述可编辑内容进行更新。
其中,可编辑内容可以包括指令、寄存器编号、参数等。具体地,若使用者想对核函数进行修改,例如,在满足空间大小的情况下修改指令、修改寄存器编号、修改指令其他参数等,则可以直接对核函数的分析数据进行修改,然后直接使用修改后的内容更新核函数,提高该分析方法的可操作性以及便利性。
在一些实施例中,该方法还可以包括:在图形用户界面上显示异构程序分析器的工作状态。
其中,上述图形用户界面上还可以包括系统状态区域,用于显示异构程序分析器的工作状态,比如,加载预设文件时,可以显示文件加载中,加载完成时,可以显示文件加载已完成。如此,将异构程序分析器的工作状态透明化,使用者可以直观地观察处理进度,从而对异构程序的分析进展有明显的感知,进而及时发现并处理问题,如图7所示,当使用者点击Kernel1,且核函数分析信息以及描述信息显示在图形用户界面100时,系统状态区域150显示“核函数加载完成…”。
在一些实施例中,图形用户界面上还包括搜索输入框,该方法还包括:获取搜索输入框的输入数据;搜索预设文件中与输入数据对应的内容,并将与输入数据对应的内容显示在图形用户界面上。
其中,该突出显示可以包括高亮显示、亮暗闪烁或边缘高光等。
譬如,如图8所示,该图形用户界面100内的顶部控制区域110设置有搜索输入框112,若使用者想要搜索与参数1有关内容,则将参数1输入搜索输入框并点击搜索按钮,则将与参数1对应的内容在图形用户界面上突出显示,比如该参数1为Kernel1的参数,则层级区域120内的Kernel1以及核函数结构显示与编辑区域130内的相关内容(v_add)突出显示。
具体地,若一个可执行程序镜像包括大量核函数,则其中的内容逻辑、参数等的数量也将十分复杂,当使用者需要查阅其中的内容时,将花费大量时间来寻找,因此,本案提供搜索功能,使用者可以通过输入的方式一键寻找相关数据以及内容,提高该分析方法的实用性,为使用者提供了极大的便利。
本申请实施例提供的异构程序的分析方法,通过加载预设文件,并根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,通过这种树状可视化结构,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,之后,响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数,如此,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。
请参阅图9,图9是本申请实施例提供的异构程序的分析方法的另一流程示意图,本实施例提供的异构程序的分析方法的具体流程可以如下:
步骤201:加载预设文件。
其中,预设文件可以为ELF(ExecutableandLinkableFormat,可执行与可链接格式)文件,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件,被Unix和Linux系统广泛采用。
步骤201:提取预设文件中的可执行程序镜像。
在本实施例中,ELF文件中可以同时存储针对不同架构异构加速器的可执行程序镜像,并使用Fatbinary将不同架构异构加速器的可执行程序镜像以特定结构排列。具体地,可以通过ClangOffloadBundle作为Fatbinary结构标准将装载至ELF文件中。当使用者选择并加载ELF文件后,首先可以校验ELF文件的头部信息以及结构是否正确,若不正确,则提示使用者文件加载失败,若正确,则可以根据头部提取ClangOffloadBundle结构,以提取Fatbinary部分,并分别提取多种异构加速器架构的可执行程序镜像。
步骤203:提取可执行程序镜像中的核函数。
具体地,提取出可执行程序镜像文件后,若其头部信息和结构正确,则解析头部信息,以确定其中包含的核函数数量和核函数信息,包括但不限于名称、大小、起止地址、数据等,之后,可以根据核函数数量和核函数信息提取核函数。
步骤204:根据预设文件、可执行程序镜像、核函数以及预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,并显示在异构程序分析器提供的图形用户界面上,该异构程序分析树包括至少一个核函数标识。
由上述描述可知,针对ELF文件,自顶向下的层级关系依次为ELF文件、ClangOffloadBundle结构、可执行程序镜像和核函数,即ELF文件包含ClangOffloadBundle结构,ClangOffloadBundle结构包含不同异构加速器架构对应的可执行程序镜像,可执行程序镜像包含多个核函数。当对上述架构解析完成后,可以根据各个层级的名称生成异构程序分析树,并显示在异构程序分析器提供的图形用户界面上。
步骤205:响应于针对核函数标识的第一操作,对目标核函数进行反汇编,以得到目标核函数的汇编程序,该目标核函数为第一操作所选择的核函数标识对应的核函数。
其中,第一操作可以为触控操作,比如,点击操作、双击操作、滑动操作等。具体地,可以使用llvm-objdump将目标核函数进行反汇编,构建出文本化核函数汇编表示。
步骤206:根据汇编程序的分支指令对汇编程序进行切片,以得到多个程序切片。
其中,分支指令包括S_BRANCH及其扩展、S_SETPC及其扩展、S_CALL等等。容易理解的是,切片可以理解为将汇编程序进行代码分割,根据分支指令对汇编程序进行代码分割。
步骤207:使用条件分支线将多个程序切片按照控制流关系进行排列连接,以生成目标核函数的分析数据。
如此,得到的核函数的分析数据可以清楚的展示核函数的整体控制逻辑,便于使用者分析核函数的逻辑结构和性能效率。
步骤208:在图形用户界面上显示目标核函数的分析数据。
比如,该异构程序分析器提供的图形用户界面上可以预设有核函数结构显示与编辑区域,响应于针对核函数标识的点击操作,在核函数结构显示与编辑区域中显示点击操作对应核函数的分析数据。
譬如,请参见图3,当预设文件载入后,该图形用户界面100上显示有层级区域120,该层级区域120上显示有异构程序分析树,自上而下的层级结构为Binary(ClangOffloadBundle结构)、arch(可执行程序镜像)、kenel(核函数),当用户点击kernel1时,该图形用户界面100的核函数结构显示与编辑区域130上显示有kernel1的分析数据。
进一步地,该分析方法还可以包括:确定目标核函数的参数传递顺序,以确定目标核函数的参数所对应的寄存器;将汇编程序中与寄存器相关指令修改为预设表示形式。
其中,预设表示形式为与核函数参数顺序、大小相对应的具有实际作用的字符描述信息。具体地,在上述步骤中得到的核函数信息包括核函数描述信息,可以根据核函数描述信息解析该目标核函数的参数结构,确定其参数传递顺序,以此确定参数所对应寄存器,之后将汇编程序中与寄存器相关指令修改为具有实际作用的字符描述信息,可以使与寄存器相关指令的作用更加直观,不再晦涩难懂,进一步提升使用者对核函数分析的效率,使该分析方法更加人性化。
在一些实施例中,上述核函数的分析数据包括可编辑内容,该方法还可以包括:响应于针对可编辑内容的修改操作;根据修改操作对所述可编辑内容进行更新。
具体地,核函数的分析数据为核函数的汇编程序的程序块,若使用者想对核函数进行修改,则可以直接对核函数的分析数据进行修改,然后直接使用修改后的内容更新程序块,提高该分析方法的可操作性以及便利性。
在一些实施例中,该方法还可以包括图形用户界面上显示所述异构程序分析器的工作状态。
其中,上述图形用户界面上还可以包括系统状态区域,用于显示异构程序分析器的工作状态,比如,加载预设文件时,可以显示文件加载中,加载完成时,可以显示文件加载已完成。如此,让使用者对当前项目进展了如执掌,如图7所示,当使用者点击Kernel1,且核函数分析信息以及描述信息显示在图形用户界面100时,系统状态区域150显示“核函数加载完成…”。
在一些实施例中,图形用户界面上还包括搜索输入框,该方法还包括:获取搜索输入框的输入数据;搜索预设文件中与输入数据对应的内容,并将与所述输入数据对应的内容显示在图形用户界面上。
其中,该突出显示可以包括高亮显示、亮暗闪烁或边缘高光等。
譬如,如图8所示,该图形用户界面100内的顶部控制区域110设置有搜索输入框112,若用户想要搜索与参数1有关内容,则将参数1输入搜索输入框并点击搜索按钮,则将与参数1对应的内容在图形用户界面上突出显示,比如该参数1为Kernel1的参数,则层级区域120内的Kernel1以及核函数结构显示与编辑区域130内的相关内容(v_add)突出显示。
具体地,若一个可执行程序镜像包括大量核函数,则其中的内容逻辑、参数等的数量也将十分复杂,当使用者需要查阅其中的内容时,将花费大量时间来寻找,因此,本案提供搜索功能,使用者可以通过输入的方式一键寻找相关数据以及内容,提高该分析方法的实用性,为使用者提供了极大的便利。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的异构程序的分析方法,通过加载预设文件,接着提取预设文件中的可执行程序镜像,之后提取可执行程序镜像中的核函数,并根据预设文件、可执行程序镜像、核函数以及预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,显示在异构程序分析器提供的图形用户界面上,该异构程序分析树包括至少一个核函数标识,从而使用者可以十分便捷的了解该预设文件的内部层级结构,并且可以十分便捷的选择所需要查看和研究的核函数,极大地提高核函数查找和分析效率,之后,响应于针对核函数标识的第一操作,首先对目标核函数进行反汇编,以得到目标核函数的汇编程序,该目标核函数为第一操作所选择的核函数标识对应的核函数,之后根据汇编程序的分支指令对汇编程序进行切片,以得到多个程序切片,并使用条件分支线将多个程序切片按照控制流关系进行排列连接,以生成目标核函数的分析数据,并在图形用户界面上显示该目标核函数的分析数据,如此,得到的核函数的分析数据可以清楚的展示核函数的整体控制逻辑,从而便于使用者分析核函数的逻辑结构和性能效率,同时,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。。
为便于更好的实施本申请实施例的异构程序的分析方法,本申请实施例还提供一种异构程序的分析装置。请参阅图10,图10为本申请实施例提供的异构程序的分析装置的结构示意图。该异构程序的分析装置10可以包括加载模块11,第一显示模块12,以及第二显示模块13。
其中,加载模块11,用于加载预设文件。
第一显示模块12,用于根据预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,异构程序分析树包括至少一个核函数标识。
第二显示模块13,用于响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,目标核函数为第一操作所选择的核函数标识对应的核函数。
在一些实施例中,该异构程序的分析装置10还可以包括生成模块,用于:在图形用户界面上显示目标核函数的分析数据之前,对目标核函数进行反汇编,以得到目标核函数的汇编程序;根据汇编程序的分支指令对汇编程序的进行切片,以得到多个程序切片;使用条件分支线将多个程序切片按照控制流关系进行排列连接,以生成目标核函数的分析数据。
在一些实施例中,第一显示模块12可以用于:提取预设文件中的可执行程序镜像;提取可执行程序镜像中的核函数;根据预设文件、可执行程序镜像、核函数以及预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,并显示在异构程序分析器提供的图形用户界面上。
在一些实施例中,异构程序分析树包括多个层级,每一个层级包括至少一个层级对象,该异构程序的分析装置10还可以包括第三显示模块,用于:响应于针对目标层级对象的第二操作,在图形用户界面上显示目标层级对象的描述信息,目标层级对象为第二操作所选择的层级对象。
在一些实施例中,分析数据包括可编辑内容,该异构程序的分析装置10还可以包括更新模块,用于:响应于针对可编辑内容的修改操作;根据修改操作对可编辑内容进行更新。
在一些实施例中,该异构程序的分析装置10还可以包括第四显示模块,用于:在图形用户界面上显示异构程序分析器的工作状态。
进一步地,图形用户界面还包括搜索输入框,该异构程序的分析装置10还可以包括搜索模块,用于:获取搜索输入框的输入数据;搜索预设文件中与输入数据对应的内容,并将与输入数据对应的内容突出显示在图形用户界面上。
本申请实施例提供的异构程序的分析装置10,通过加载模块11加载预设文件,之后第一显示模块12根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,接着响应于针对核函数标识的第一操作,第二显示模块13在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数,从而通过异构程序分析树,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,同时,将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。
此外,本申请实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为笔记本电脑、个人计算机(PC,PersonalComputer)、个人数字助理(PersonalDigitalAssistant,PDA)等终端设备。如图11所示,图11为本申请实施例提供的计算机设备的结构示意图。该计算机设备2000包括有一个或者一个以上处理核心的处理器2001、有一个或一个以上计算机可读存储介质的存储器2002及存储在存储器2002上并可在处理器上运行的计算机程序。其中,处理器2001与存储器2002电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器2001是计算机设备2000的控制中心,利用各种接口和线路连接整个计算机设备2000的各个部分,通过运行或加载存储在存储器2002内的软件程序和/或模块,以及调用存储在存储器2002内的数据,执行计算机设备2000的各种功能和处理数据,从而对计算机设备2000进行整体监控。
在本申请实施例中,计算机设备2000中的处理器2001会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器2002中,并由处理器2001来运行存储在存储器2002中的应用程序,从而实现各种功能:
加载预设文件;
根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识;
响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图11所示,计算机设备2000还包括:触控显示屏2003、射频电路2004、音频电路2005、输入单元2006以及电源2007。其中,处理器2001分别与触控显示屏2003、射频电路2004、音频电路2005、输入单元2006以及电源2007电性连接。本领域技术人员可以理解,图11示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏2003可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏2003可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,LiquidCrystalDisplay)、有机发光二极管(OLED,OrganicLight-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器2001,并能接收处理器2001发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器2001以确定触摸事件的类型,随后处理器2001根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏2003而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏2003也可以作为输入单元2006的一部分实现输入功能。
射频电路2004可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路2005可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路2005可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路2005接收后转换为音频数据,再将音频数据输出处理器2001处理后,经射频电路2004以发送给比如另一计算机设备,或者将音频数据输出至存储器2002以便进一步处理。音频电路2005还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元2006可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源2007用于给计算机设备2000的各个部件供电。可选的,电源2007可以通过电源管理系统与处理器2001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源2007还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图11中未示出,计算机设备2000还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,通过加载预设文件,并根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,使用者可以十分便捷的选择需要查看和研究的核函数,极大提高了核函数查找和分析的效率,之后,响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数,如此,通过将核函数的分析数据可视化,便于使用者寻找核函数中的异常,进而便于使用者对异常数据进行修改。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种异构程序的分析方法中的步骤。例如,该计算机程序可以执行如下步骤:加载预设文件,并根据预设文件在异构程序分析器提供的图形用户界面上显示异构程序分析树,该异构程序分析树包括至少一个核函数标识,响应于针对核函数标识的第一操作,在图形用户界面上显示目标核函数的分析数据,该目标核函数为第一操作所选择核函数标识对应的核函数。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种异构程序的分析方法中的步骤,因此,可以实现本申请实施例所提供的任一种异构程序的分析方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种异构程序的分析方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种异构程序的分析方法,其特征在于,包括:
加载预设文件;
根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,所述异构程序分析树包括至少一个核函数标识;
响应于针对所述核函数标识的第一操作,在所述图形用户界面上显示目标核函数的分析数据,所述目标核函数为所述第一操作所选择的核函数标识对应的核函数。
2.根据权利要求1所述的异构程序的分析方法,其特征在于,在所述图形用户界面上显示目标核函数的分析数据之前,所述方法还包括:
对所述目标核函数进行反汇编,以得到所述目标核函数的汇编程序;
根据所述汇编程序的分支指令对所述汇编程序的进行切片,以得到多个程序切片;
使用条件分支线将所述多个程序切片按照控制流关系进行排列连接,以生成所述目标核函数的分析数据。
3.根据权利要求1所述的异构程序的分析方法,其特征在于,所述根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,包括:
提取所述预设文件中的可执行程序镜像;
提取所述可执行程序镜像中的核函数;
根据所述预设文件、所述可执行程序镜像、所述核函数以及所述预设文件、可执行程序镜像和核函数之间的层级关系,生成异构程序分析树,并显示在所述异构程序分析器提供的图形用户界面上。
4.根据权利要求1所述的异构程序的分析方法,其特征在于,所述异构程序分析树包括多个层级,每一个所述层级包括至少一个层级对象,所述方法还包括:
响应于针对目标层级对象的第二操作,在所述图形用户界面上显示所述目标层级对象的描述信息,所述目标层级对象为所述第二操作所选择的所述层级对象。
5.根据权利要求1所述的异构程序的分析方法,其特征在于,所述分析数据包括可编辑内容,所述方法还包括:
响应于针对所述可编辑内容的修改操作;
根据所述修改操作对所述可编辑内容进行更新。
6.根据权利要求1所述的异构程序的分析方法,其特征在于,所述方法还包括:
在所述图形用户界面上显示所述异构程序分析器的工作状态。
7.根据权利要求1所述的异构程序的分析方法,其特征在于,所述图形用户界面还包括搜索输入框,所述方法还包括:
获取所述搜索输入框的输入数据;
搜索所述预设文件中与所述输入数据对应的内容,并将所述与所述输入数据对应的内容突出显示在所述图形用户界面上。
8.一种异构程序的分析装置,其特征在于,应用于编码工具,包括:
加载模块,用于加载预设文件;
第一显示模块,用于根据所述预设文件,在异构程序分析器提供的图形用户界面上显示异构程序分析树,所述异构程序分析树包括至少一个核函数标识;
第二显示模块,响应于针对所述核函数标识的第一操作,在所述图形用户界面上显示目标核函数的分析数据,所述目标核函数为所述第一操作所选择的核函数标识对应的核函数。
9.一种计算机设备,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种存储介质,其特征在于,存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
CN202110761137.9A 2021-07-06 2021-07-06 异构程序的分析方法、装置、计算机设备和存储介质 Active CN113626017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110761137.9A CN113626017B (zh) 2021-07-06 2021-07-06 异构程序的分析方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110761137.9A CN113626017B (zh) 2021-07-06 2021-07-06 异构程序的分析方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113626017A true CN113626017A (zh) 2021-11-09
CN113626017B CN113626017B (zh) 2023-10-31

Family

ID=78379111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110761137.9A Active CN113626017B (zh) 2021-07-06 2021-07-06 异构程序的分析方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113626017B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116360798A (zh) * 2023-06-02 2023-06-30 太初(无锡)电子科技有限公司 一种针对异构芯片的异构可执行文件的反汇编方法
CN117032841A (zh) * 2023-08-04 2023-11-10 太初(无锡)电子科技有限公司 异构计算中核函数参数的高性能传递方法及异构计算系统

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046663A1 (en) * 2001-08-14 2003-03-06 Rogers Steven W. System and method for analyzing a graphical program using debugging graphical programs
US7203925B1 (en) * 2001-09-14 2007-04-10 Emc Corporation Graphical compiler
US20070118542A1 (en) * 2005-03-30 2007-05-24 Peter Sweeney System, Method and Computer Program for Faceted Classification Synthesis
US20120117535A1 (en) * 2010-11-10 2012-05-10 Src Computers, Inc. System and method for computational unification of heterogeneous implicit and explicit processing elements
US20120159452A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Graphical user interface for exploring source code execution behavior
CN104820613A (zh) * 2015-05-27 2015-08-05 中国科学院自动化研究所 一种异构多核程序的编译方法
US20150363192A1 (en) * 2014-06-16 2015-12-17 Silverthread, Inc. Computer-implemented tools and methods for extracting information about the structure of a large computer software system, exploring its structure, discovering problems in its design, and enabling refactoring
US9218443B1 (en) * 2014-11-12 2015-12-22 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
CN106407809A (zh) * 2016-09-20 2017-02-15 四川大学 一种Linux平台恶意软件检测方法
CN106598839A (zh) * 2016-10-31 2017-04-26 华东师范大学 一种面向目标代码的程序静态分析方法
CN108681455A (zh) * 2018-05-10 2018-10-19 成都我有科技有限责任公司 图形与代码的转换方法及装置
CN109901841A (zh) * 2019-03-01 2019-06-18 太仓市同维电子有限公司 一种查看java字节码时显示方法调用关系图的方法
CN110764760A (zh) * 2019-10-29 2020-02-07 中国工商银行股份有限公司 用于绘制程序流程图的方法、装置、计算机系统和介质
CN111930472A (zh) * 2020-08-19 2020-11-13 曙光信息产业(北京)有限公司 一种代码调试方法、装置、电子设备及存储介质
CN112148570A (zh) * 2019-06-27 2020-12-29 英特尔公司 改进在异构系统上执行的软件的运行时性能的方法和设备
US20210158194A1 (en) * 2017-06-20 2021-05-27 Nec Corporation Graph structure analysis apparatus, graph structure analysis method, and computer-readable recording medium
CN112860256A (zh) * 2021-02-08 2021-05-28 中科院软件研究所南京软件技术研究院 一种Linux内核设备树的可视化配置系统和方法

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046663A1 (en) * 2001-08-14 2003-03-06 Rogers Steven W. System and method for analyzing a graphical program using debugging graphical programs
US7203925B1 (en) * 2001-09-14 2007-04-10 Emc Corporation Graphical compiler
US20070118542A1 (en) * 2005-03-30 2007-05-24 Peter Sweeney System, Method and Computer Program for Faceted Classification Synthesis
US20120117535A1 (en) * 2010-11-10 2012-05-10 Src Computers, Inc. System and method for computational unification of heterogeneous implicit and explicit processing elements
US20120159452A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Graphical user interface for exploring source code execution behavior
US20150363192A1 (en) * 2014-06-16 2015-12-17 Silverthread, Inc. Computer-implemented tools and methods for extracting information about the structure of a large computer software system, exploring its structure, discovering problems in its design, and enabling refactoring
US9218443B1 (en) * 2014-11-12 2015-12-22 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
CN104820613A (zh) * 2015-05-27 2015-08-05 中国科学院自动化研究所 一种异构多核程序的编译方法
CN106407809A (zh) * 2016-09-20 2017-02-15 四川大学 一种Linux平台恶意软件检测方法
US20180082064A1 (en) * 2016-09-20 2018-03-22 Sichuan University Detection method for linux platform malware
CN106598839A (zh) * 2016-10-31 2017-04-26 华东师范大学 一种面向目标代码的程序静态分析方法
US20210158194A1 (en) * 2017-06-20 2021-05-27 Nec Corporation Graph structure analysis apparatus, graph structure analysis method, and computer-readable recording medium
CN108681455A (zh) * 2018-05-10 2018-10-19 成都我有科技有限责任公司 图形与代码的转换方法及装置
CN109901841A (zh) * 2019-03-01 2019-06-18 太仓市同维电子有限公司 一种查看java字节码时显示方法调用关系图的方法
CN112148570A (zh) * 2019-06-27 2020-12-29 英特尔公司 改进在异构系统上执行的软件的运行时性能的方法和设备
CN110764760A (zh) * 2019-10-29 2020-02-07 中国工商银行股份有限公司 用于绘制程序流程图的方法、装置、计算机系统和介质
CN111930472A (zh) * 2020-08-19 2020-11-13 曙光信息产业(北京)有限公司 一种代码调试方法、装置、电子设备及存储介质
CN112860256A (zh) * 2021-02-08 2021-05-28 中科院软件研究所南京软件技术研究院 一种Linux内核设备树的可视化配置系统和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116360798A (zh) * 2023-06-02 2023-06-30 太初(无锡)电子科技有限公司 一种针对异构芯片的异构可执行文件的反汇编方法
CN116360798B (zh) * 2023-06-02 2023-08-18 太初(无锡)电子科技有限公司 一种针对异构芯片的异构可执行文件的反汇编方法
CN117032841A (zh) * 2023-08-04 2023-11-10 太初(无锡)电子科技有限公司 异构计算中核函数参数的高性能传递方法及异构计算系统
CN117032841B (zh) * 2023-08-04 2024-04-26 太初(无锡)电子科技有限公司 异构计算中核函数参数的高性能传递方法及异构计算系统

Also Published As

Publication number Publication date
CN113626017B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
US7490298B2 (en) Creating documentation screenshots on demand
US10592211B2 (en) Generation of application behaviors
CN106844181B (zh) 用于记录用户行为的方法、系统及移动终端
CN110766289A (zh) 一种风控规则动态调整方法、装置和电子设备
CN113626017B (zh) 异构程序的分析方法、装置、计算机设备和存储介质
CN112099684A (zh) 一种搜索展示方法、装置及电子设备
CN114116441A (zh) 一种ui界面测试方法、装置、电子设备及存储介质
US9684738B2 (en) Text-based command generation
KR20140116438A (ko) 연산 순서의 그래픽 표현 기법
CN112817582A (zh) 代码处理方法、装置、计算机设备和存储介质
JP2013097470A (ja) ソースファイル再利用支援装置、ソースファイル再利用支援方法、及び、プログラム
CN110959153A (zh) 使用灵活后处理的应用分析
US9082104B2 (en) Method and apparatus for managing system specifications
US11822905B2 (en) Interactive service providing system, interactive service providing method, scenario generation and editing system, and scenario generation and editing method
US9645798B1 (en) Using program code to generate help information, and using help information to generate program code
CN115469849B (zh) 一种业务处理系统、方法、电子设备和存储介质
CN113609154B (zh) 一种数据查询方法、装置、电子设备和存储介质
CN112905931B (zh) 页面信息的展示方法、装置、电子设备及存储介质
CN114089885A (zh) 应用图标管理方法、装置、电子设备及可读存储介质
CN115686506A (zh) 一种数据显示方法、装置、电子设备和存储介质
CN113179183A (zh) 服务开关状态控制装置及方法
CN114595449A (zh) 一种安全扫描方法及装置
CN112988139A (zh) 事件处理文件的开发方法与装置
US9563406B1 (en) Graphical user interface replacement of function signatures
JP6364786B2 (ja) 設計書管理プログラム、設計書管理方法および設計書管理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant