CN102789413A - 一种并行程序的调试系统及方法 - Google Patents
一种并行程序的调试系统及方法 Download PDFInfo
- Publication number
- CN102789413A CN102789413A CN2011102710340A CN201110271034A CN102789413A CN 102789413 A CN102789413 A CN 102789413A CN 2011102710340 A CN2011102710340 A CN 2011102710340A CN 201110271034 A CN201110271034 A CN 201110271034A CN 102789413 A CN102789413 A CN 102789413A
- Authority
- CN
- China
- Prior art keywords
- pitching pile
- debugging
- code
- breakpoint
- program
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种并行程序的调试系统,用于信息技术领域,以针对现有技术存在的并行程序调试的不足,提供一种能够实现跨平台应用的并行程序的调试系统及方法,具体包括:前端集成调试模块,用来给用户提供调试窗口,对待调试的并行程序进行调试操作;后台调试管理模块,用来根据前端集成调试模块发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,并将运行的结果反馈给前端集成调试模块。本发明实施例的并行程序调试方法及系统方便用户编辑调试代码、设置并行程序运行断点,并能通过远程调用的方式编译、运行、调试并行程序,以及查看性能分析结果,具有很好的移植性和可扩展性。
Description
技术领域
本发明涉及一种信息技术领域,尤其涉及一种并行程序的调试系统及方法。
背景技术
起初人们认为计算机性能的提高主要是由于生产出了更快更有效的处理器。这种观点受到了并行处理概念的挑战:并行计算的根本意义是将两台或多台计算机连接起来,共同解决一些复杂的计算问题。比如,随着科学和信息技术的发展,许多领域如气象预报、地震分析、信息检索等都需要对大规模、海量数据进行快速高效的处理,促使计算从串行过度到并行。并行计算在军事、科技、商业等领域应用也越来越广泛,更多的用户开始使用并行技术处理问题。
并行处理技术的发展已经有了20多年的历史,虽然说并行机硬件的发展算不上是突飞猛进,但是也是相当迅速的。IBM、Intel、SUN、SGI等公司都致力于高性能并行机的研发,并且在市场取得了不错的业绩。但是,相对于硬件体系结构的发展而言,软件的发展却严重滞后,影响了硬件效率的发挥,限制了并行机系统的广泛应用。
例如,作为并行程序的调试器,目前许多并行程序调试器还不具备平台的可移植能力。虽然有些调试器对于平台移植这一问题采取了有效的方法,那就是利用GDB作为底层的串行调试器,例如P2D2和Mantic。但它们也存在着缺陷,因为它们对GDB返回结果的输出都由远端一个服务器进行解析,本地不做此项工作,这也导致了它们不能更好的支持异构的环境。人们采用DCDB和DDBG解决了异构的问题,但DCDB和DDBG使用的GDB接口是原来的GDB解释器,在可扩展性、可靠性、可维护性和效率上都存在缺陷。
另外的并行程序解决方案,如TotalView能够自动捕获MPI、PVM、HPF、OpenMP等并行程序进行调试,可以在本地调试多进程、多线程的程序,可以调试同构机群系统上的分布式系统,支持动态调试,功能强大,是少有的多平台商业调试器。但是它没有使用现成的串行调试器,在不同平台下要使用不同的版本,不支持异构环境,由于用户界面和底层控制都运行在Unix/Linux平台,不熟悉Unix/Linux平台的用户使用时会感觉相对困难。
发明内容
本发明的目的是针对现有技术存在的并行程序调试的不足,提供一种能够实现跨平台应用的并行程序的调试系统及方法,方便用户编辑调试代码、设置并行程序运行断点,并能通过远程调用的方式编译、运行、调试并行程序,以及查看性能分析结果,具有很好的移植性和可扩展性。
为了达到上述发明目的,本发明提出了一种并行程序的调试系统,所述系统是通过以下的技术方案实现的:
一种并行程序的调试系统,所述系统包括:
前端集成调试模块,用来给用户提供调试窗口,对待调试的并行程序进行调试操作;
后台调试管理模块,用来根据前端集成调试模块发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,并将运行的结果反馈给前端集成调试模块。
进一步优选地,所述前端集成调试模块具体包括:
工程管理子模块,用来提供工程管理功能,所述工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件;
文件管理子模块,用来提供文件管理功能,所述文件管理功能包括源代码文件的新建、打开、保存或关闭;
代码编辑管理子模块,用来提供代码编辑管理功能,所述代码编辑管理功能包括允许用户编辑代码、代码板旁边即时显示行号、支持基本的编程语言关键字高亮显示,支持区分大小写的查找或替换;
界面子模块,用来根据用户需求或系统推荐,设置断点或性能观测点。
进一步优选地,所述界面子模块还包括一对话框,用来设置各种可能的条件值对断点进行控制。
进一步优选地,所述后台调试管理模块包括:
插桩模块,用来按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制。
进一步优选地,所述插桩模块具体包括:
断点管理插桩子模块,用来使得经插桩后的代码在执行过程中与前端集成调试模块进行通信,模拟实现断点效果;
变量观测插桩子模块,用来使得经插桩的代码与前端集成调试模块之间进行通信,在断点处传输有效变量信息并显示给用户;
性能分析插桩子模块,用来使得经插桩的代码在执行过程中与前端集成调试模块之间进行通信传递并行程序的性能参数,并在前端集成调试模块中实现性能观测与记录。
进一步优选地,所述实际需求通过插桩需求描述文件的方式传递给源代码插桩模块,插桩模块根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
进一步优选地,所述插桩需求描述文件包括断点管理需求描述文件、变量观测需求描述文件和性能分析需求描述文件。
进一步优选地,所述断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点。
进一步优选地,所述变量观测和性能分析需求描述文件的内容主要来自于各个变量的作用域、类型等信息以及待调试的并行程序的各指导语句所在位置的信息。
进一步优选地,所述变量观测和性能分析需求描述文件的内容根据在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出的相应的语法树生成。
进一步优选地,所述后台调试管理模块还包括语法分析模块,用来根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,所述解析程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句构建语法树。
进一步优选地,所述前端集成调试模块与后台调试管理模块通过Socket结构体进行通信。
为了实现前述发明目的,本发明实施例还提出了一种并行程序的调试方法,所述并行程序的调试方法是通过以下技术方案实现的:
一种并行程序的调试方法,其特征在于,所述方法包括:
通过前端调试环境的调试窗口,对待调试的并行程序进行调试操作;
根据前端集成调试环境发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
进一步优选地,所述调试操作具体包括:
工程管理,所述工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件;
文件管理,所述文件管理功能包括源代码文件的新建、打开、保存或关闭;
代码编辑管理,所述代码编辑管理功能包括允许用户编辑代码、代码板旁边即时显示行号、支持基本的编程语言关键字高亮显示,支持区分大小写的查找或替换;
根据用户需求或系统推荐,设置断点或性能观测点。
进一步优选地,所述方法还包括:通过一对话框,来设置各种可能的条件值对断点进行控制。
进一步优选地,所述通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境具体包括:
按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
进一步优选地,所述源代码插桩具体包括:
断点管理,使得经插桩后的代码在执行过程中与前端集成调试环境进行通信,模拟实现断点效果;
变量观测插桩,使得经插桩的代码与前端集成调试环境之间进行通信,在断点处传输有效变量信息并显示给用户;
性能分析插桩,使得经插桩的代码在执行过程中与前端集成调试环境之间进行通信传递并行程序的性能参数,并在前端集成调试环境中实现性能观测与记录。
进一步优选地,所述实际需求通过插桩需求描述文件的方式传递给源代码插桩模块,源代码插桩模块根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
进一步优选地,所述插桩需求描述文件包括断点管理需求描述文件、变量观测需求描述文件或性能分析需求描述文件。
进一步优选地,所述断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点。
进一步优选地,所述变量观测和性能分析需求描述文件的内容主要来自于各个变量的作用域、类型等信息以及待调试的并行程序的各指导语句所在位置的信息。
进一步优选地,所述变量观测和性能分析需求描述文件的内容根据在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出的相应的语法树生成。
进一步优选地,所述方法还包括根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,所述解析程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句构建语法树。
与现有技术相比,本发明实施例提供的并行程序的远程调试系统和方法,不依赖于操作系统和硬件环境,使得不熟悉Linux操作系统甚至没有装Linux操作系统的用户也能使用这款调试工具在远程多核计算机上进行并行程序的调试分析,有利于资源的整合;另外,基于语法树的源代码插桩,有针对性的构造语法树,得到进行断点管理、变量观测和性能分析插桩所需的信息,并利用插桩后的语法树进行反构得到插桩后代码;同时,利用编译运行经插桩后源代码的方法实现程序调试过程中的断点管理、变量观测和性能分析,并为并行程序的每一个线程建立一个socket连接于前端集成调试环境进行交互,不同于传统的利用GDB提供接口的策略,使得该工具在可扩展性、可维护性和效率等方面得到很大提高。
附图说明
通过下面结合附图对其示例性实施例进行的描述,本发明上述特征和优点将会变得更加清楚和容易理解。
图1为本发明实施例1一种并行程序的调试系统运行示意图;
图2为本发明实施例2另一种并行程序的调试系统的组成示意图;
图3为本发明实施例3又一种并行程序的调试系统的组成示意图;
图4为本发明实施例4一种并行程序的调试系统总体运行示意图;
图5为本发明实施例5后台调试管理模块根据语法树进行插桩的示意图;
图6为本发明实施例6一种并行程序的调试方法的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1所示,为本发明实施例1一种并行程序的调试系统的运行示意图,所述系统包括:前端集成调试模块和后台调试管理模块,一优选的实施方式包括,所述前端集成调试模块和后台调试管理模块分别运行于两个不同的计算平台上,使得帮助用户实现对并行程序的远程调试。
如图2所示,本发明实施例2的前端集成调试模块用来提供工程管理、文件管理、编辑程序代码、语法元素高亮显示、设置/删除程序断点、生成插桩任务描述文件、启动对调试程序的远程编译及运行、变量信息的观测显示及性能分析结果的可视化显示等功能。
本发明实施例的调试系统的前端集成模块提供的基本的工程管理、文件管理、编辑程序代码功能,其中,工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件等;文件管理功能包括源代码文件的新建、打开、保存、关闭等,编辑程序代码功能包括允许用户编辑代码,代码板旁边即时显示行号,支持基本的C语言关键字高亮显示,支持区分大小写的查找/替换等。
因此,用户除了通过前端集成模块编辑程序代码,还可以点击相应的按钮启动远程编译、运行并行程序。同时用户可以在前端集成调试模块的界面子模块上根据自身需求和系统推荐,设置断点及性能观测点,还可以通过系统提供的对话框设置各种可能的条件值(条件表达式和语句执行次数)对断点进行控制。
同时,当进入断点后,待调试的并行程序在断点处产生的断点和变量信息经socket通信传递给前端集成调试模块后通过界面子模块进行可视化显示,其中包括对于进入断点的当前语句行的高亮提醒,有效变量的变量名、变量类型、当前值的分组显示,以及性能分析结果的条形图显示,显示值ket范文件、启动对待调试程序的远程编译及运行、变量名称。所述的界面子模块,其界面简洁,功能分类清晰,作为一个并行程序的远程调试前台集成环境具有体积小、功能全的特点。
如图3所示,插桩模块,作为源代码级自动插桩,用于有效定位和解决软件疑难问题,实现远程调试,保证软件产品的质量,按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制,加入代码后再重新编译、链接并加以运行,以获得预期功能和执行效果。
本发明实施例的调试系统的源代码级插桩主要为了实现并行程序远程调试中的断点管理、变量观测和性能分析功能,通过重新编译运行插桩后的代码来管理用户设立的断点、交互断点处的有效变量以及实现性能数据的分析和可视化显示等。
为了使插桩具有较好的灵活性和可扩展性,同时保证数据传输的方便,本发明实施例的并行程序远程调试系统采用生成插桩需求描述文件的方式,根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
根据插桩实现的功能,插桩需求描述文件也分为断点管理、变量观测和性能分析三部分,其中断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点,但是变量观测和性能分析需求描述文件则需要各个变量的作用域、类型等信息以及OpenMP并行程序的各指导语句所在位置。这便需要在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出相应的语法树。
如图5所示,所述语法树主要采用基于LEX/YACC,LEX和YACC工具分别具有词法和语法规则,并为每条规则配置相应的处理语句,用来分析基本C语言和OpenMP语法成分。LEX和YACC工具根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,该程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句时构建语法树。
遍历这棵语法树可以得到待调试程序中的变量信息及OpenMp指导语句相关信息,再结合用户通过前端集成调试模块给出的调试需求,即可生成插桩需求文件辅助完成插桩,插桩后产生新的源代码,经编译之后再次加以执行即可得到调试所需信息。
如图3所示,本发明实施例2的插桩模块包括:
(1)断点管理插桩子模块
断点管理插桩子模块用于使得经插桩后的代码在执行过程中可以与前端集成调试模块进行通信,模拟实现断点效果。
本发明实施例2通过在用户编写的源代码中插入相应的断点桩函数调用语句来实现断点管理功能,并将各个断点的信息放入一个链表结构中。每当执行到断点桩函数时,该函数便会结合自身参数和链表中的断点信息判断是否触发当前断点,如果需要触发,则为相应的线程建立一个与前端集成调试模块的通信连接。
本发明实施例3作为一个优选的实施例,其断点处理函数的定义和断点链表结构的定义都包含在一个头文件中,只需在源代码中包含这个头文件即可调用。断点处理函数可以提供触发条件检查、变量有效值传输、等待用户控制等功能。详细信息如下:
num:断点号,作为区分各个断点的唯一标识;
lineno:断点所处行的原始行号,方便用户在前端集成调试环境中定位当前断点;
type:断点类型,枚举类型,具体定义如下:
hittime:断点条件命中次数,当type为normal和conditional时,该参数没有意义,当断点触发条件根据命中次数决定时,该参数传入用户通过前端集成调试模块设置的次数,以形成触发条件。
除了根据命中次数决定的条件断点,本发明实施例还允许用户设置带有条件表达式的断点,当断点的type为normal时,用户可以通过前端集成调试模块给出条件表达式,此时本发明实施例4可以用一条带有此表达式的if语句判断条件是否满足,断点是否激发。
(2)变量观测插桩子模块
变量观测插桩子模块用来使得经插桩的代码可以与前端集成调试模块之间进行通信,在断点处传输有效变量信息并显示给用户。
本发明实施例5采用在用户编写的源代码中插入相应的变量上报函数实现对变量定义以及赋值等动作的监控,即时捕捉变量变化信息。同时构造一个变量链表结构储存存放所有的变量信息,具体定义如下:
每当到达断点时,按照变量链表中的起始行号和终止行号找到有效变量,通过线程与前端集成调试模块的独立通信连接传输并显示给用户,显示内容包括变量名称、变量类型和变量值,通信通过Socket传输结构体实现。
变量上报函数按照由语法树得出的变量类型进行分类,方便进行变量的存储,具体设计如下:
n:指向需上报变量的指针;
name:需上报变量的变量名,为一字符串;
begin:需上报变量的起始行号;
end:需上百变量的终止行号。
每当碰到变量定义和发生赋值的地方,则在其后插入变量上报函数,执行插桩后的代码到该函数时即可完成变量链表中变量的添加和更新,以备进入断点时提取所需信息。
(3)性能分析插桩子模块
性能分析插桩子模块用来使得经插桩的代码在执行过程中可以与前端集成调试模块之间进行通信传递并行程序的性能参数,并在前端集成调试模块中实现性能观测与记录。
以上实施例中,对于程序断点管理插桩子模块和变量观测插桩子模块而言,通过程序插桩实现性能观测功能在实现起来相对简单,无需设计太多插桩模板,主要任务是找到几个关键的性能分析插桩点。
本发明实施例的并行程序调试系统结合语法树识别出来的OpenMP指导语句给出插桩需求描述文件,根据需求描述文件进行相应的性能桩函数代码的添加,再编译执行经插桩后的代码获取必要的性能数据并记录下来,利用预先设计好的性能分析和瓶颈定位模板对这些性能数据进行分析,即可得到关键路径等参数,并可视化显示在前端集成调试环境中。
本发明实施例的并行程序远程调试系统的远程调试分析模块作为并行程序的远程调试器,可以使待调试程序及后台调试管理模块的调试守护进程和前端集成调试模块分别运行于不同的机器上,之间依靠进程或网络通信实现交互。为了最大限度的不依赖于硬件环境,使用前面介绍的源代码级插桩模块辅助实现远程调试。
如图4所示,为本发明实施例4并行程序远程调试系统的架构。
待调试程序和调试守护进程运行于拥有多核且操作系统为Linux的机器上,负责实现对待调试程序及经插桩后的待调试程序进行编译、启动运行、运行正常/异常结束的监测与运行的强行终止。待调试程序启动执行后,将与前端集成调试环境之间通过进程(网络)通信方式实现断点管理、变量观测和性能分析等功能,具体系统运行模式如图4所示。
如图4所示,每次打开前端集成环境准备进行调试分析工作时,本系统自动检查后台调试机器是否开启,如果未开启会给出相应的提示信息,如果已开启则与后台经三次握手建立安全连接,并开启后台调试守护进程,等待用户命令。
当用户仅仅需要查看运行结果时,可以直接利用前端集成调试模块上Build菜单下的相应选项触发编译或运行该并行程序的功能。前端集成调试模块获得用户的编译或运行命令后,通过之前建立的网络通信连接将其发送给后台调试守护进程,守护进程收到命令后创建新的进程加以执行并将结果反馈给前端集成调试模块,这样便实现了编译和运行的远程调用。
当用户需要调试并行程序时,可以根据自身需要通过前台集成调试模块设置相应的观测点,并对于各个观测点设置相应的条件值(如条件表达式或执行次数等),然后利用Debug菜单下的相应选项触发调试该并行程序的功能。前端集成环境获得用户的调试命令后,通过之前建立的网络通信连接将其发送给后台调试守护进程,守护进程收到命令后创建新的进程加以执行,执行到用户设立的观测点时,根据各个观测点的条件判断是否需要暂停执行,如果需要暂停则为当前进入观测断点的线程与前段集成调试环境建立一个新的连接,通过这条新的连接传输有效变量集和断点信息,并等待来自用户的继续执行命令,直到收到相应的命令后才能继续执行下去,否则将一直停留在原地直到被强行终止。
当用户需要对并行程序进行分析时,点击Debug菜单下相应的命令即可获得本系统通过对该程序的语法分析提供的性能观测点列表,用户可以对推荐的性能观测点进行删除和重新添加,确定了性能观测点后再重新远程编译运行程序,即可得到程序性能方面的具体参数,本系统会对这些参数进行分析处理,并在前端集成环境中可视化显示出来。
值得注意的是,本系统除了前端集成调试环境和后台调试守护进程的一个socket连接之外,还为每一个执行过程中进入断点或性能观测点的线程与前端集成环境之间创建了独立的链接,这样的远程调用方式从真正意义上实现了并行程序的并行调试。
本发明实施例提供的并行程序的远程调试系统,不依赖于操作系统和硬件环境,使得不熟悉Linux操作系统甚至没有装Linux操作系统的用户也能使用这款调试工具在远程多核计算机上进行并行程序的调试分析,有利于资源的整合;另外,基于语法树的源代码插桩,有针对性的构造语法树,得到进行断点管理、变量观测和性能分析插桩所需的信息,并利用插桩后的语法树进行反构得到插桩后代码;同时,利用编译运行经插桩后源代码的方法实现程序调试过程中的断点管理、变量观测和性能分析,并为并行程序的每一个线程建立一个socket连接于前端集成调试环境进行交互,不同于传统的利用GDB提供接口的策略,使得该工具在可扩展性、可维护性和效率等方面得到很大提高。
另外,如图6所示,本发明实施例还提供了一种并行程序的调试方法,所述方法包括以下步骤:
步骤一、通过前端调试环境的调试窗口,对待调试的并行程序进行调试操作;
步骤二、根据前端集成调试环境发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
进一步优选地,所述调试操作具体包括:
工程管理,所述工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件;
文件管理,所述文件管理功能包括源代码文件的新建、打开、保存或关闭;
代码编辑管理,所述代码编辑管理功能包括允许用户编辑代码、代码板旁边即时显示行号、支持基本的编程语言关键字高亮显示,支持区分大小写的查找或替换;
根据用户需求或系统推荐,设置断点或性能观测点。
进一步优选地,所述方法还包括:通过一对话框,来设置各种可能的条件值对断点进行控制。
进一步优选地,所述通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境具体包括:
按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
进一步优选地,所述源代码插桩具体包括:
断点管理,使得经插桩后的代码在执行过程中与前端集成调试环境进行通信,模拟实现断点效果;
变量观测插桩,使得经插桩的代码与前端集成调试环境之间进行通信,在断点处传输有效变量信息并显示给用户;
性能分析插桩,使得经插桩的代码在执行过程中与前端集成调试环境之间进行通信传递并行程序的性能参数,并在前端集成调试环境中实现性能观测与记录。
进一步优选地,所述实际需求通过插桩需求描述文件的方式传递给源代码插桩模块,源代码插桩模块根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
进一步优选地,所述插桩需求描述文件包括断点管理需求描述文件、变量观测需求描述文件或性能分析需求描述文件。
进一步优选地,所述断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点。
进一步优选地,所述变量观测和性能分析需求描述文件的内容主要来自于各个变量的作用域、类型等信息以及待调试的并行程序的各指导语句所在位置的信息。
进一步优选地,所述变量观测和性能分析需求描述文件的内容根据在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出的相应的语法树生成。
进一步优选地,所述方法还包括根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,所述解析程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句构建语法树。
与现有技术相比,本发明实施例提供的并行程序的远程调试方法,不依赖于操作系统和硬件环境,使得不熟悉Linux操作系统甚至没有装Linux操作系统的用户也能使用这款调试工具在远程多核计算机上进行并行程序的调试分析,有利于资源的整合;另外,基于语法树的源代码插桩,有针对性的构造语法树,得到进行断点管理、变量观测和性能分析插桩所需的信息,并利用插桩后的语法树进行反构得到插桩后代码;同时,利用编译运行经插桩后源代码的方法实现程序调试过程中的断点管理、变量观测和性能分析,并为并行程序的每一个线程建立一个socket连接于前端集成调试环境进行交互,不同于传统的利用GDB提供接口的策略,使得该工具在可扩展性、可维护性和效率等方面得到很大提高。
需要注意的是,以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,在本发明的上述指导下,本领域技术人员可以在上述实施例的基础上进行各种改进和变形,而这些改进或者变形落在本发明的保护范围内。
Claims (23)
1.一种并行程序的调试系统,其特征在于,所述系统包括:
前端集成调试模块,用来给用户提供调试窗口,对待调试的并行程序进行调试操作;
后台调试管理模块,用来根据前端集成调试模块发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,并将运行的结果反馈给前端集成调试模块。
2.根据权利要求1所述的系统,其特征在于,所述前端集成调试模块具体包括:
工程管理子模块,用来提供工程管理功能,所述工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件;
文件管理子模块,用来提供文件管理功能,所述文件管理功能包括源代码文件的新建、打开、保存或关闭;
代码编辑管理子模块,用来提供代码编辑管理功能,所述代码编辑管理功能包括允许用户编辑代码、代码板旁边即时显示行号、支持基本的编程语言关键字高亮显示,支持区分大小写的查找或替换;
界面子模块,用来根据用户需求或系统推荐,设置断点或性能观测点。
3.根据权利要求2所述的系统,其特征在于,所述界面子模块还包括一对话框,用来设置各种可能的条件值对断点进行控制。
4.根据权利要求3所述的系统,其特征在于,所述后台调试管理模块包括:
插桩模块,用来按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制。
5.根据权利要求4所述的系统,其特征在于,所述插桩模块具体包括:
断点管理插桩子模块,用来使得经插桩后的代码在执行过程中与前端集成调试模块进行通信,模拟实现断点效果;
变量观测插桩子模块,用来使得经插桩的代码与前端集成调试模块之间进行通信,在断点处传输有效变量信息并显示给用户;
性能分析插桩子模块,用来使得经插桩的代码在执行过程中与前端集成调试模块之间进行通信传递并行程序的性能参数,并在前端集成调试模块中实现性能观测与记录。
6.根据权利要求5所述的系统,其特征在于,所述实际需求通过插桩需求描述文件的方式传递给源代码插桩模块,源代码插桩模块根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
7.根据权利要求6所述的系统,其特征在于,所述插桩需求描述文件包括断点管理需求描述文件、变量观测需求描述文件和性能分析需求描述文件。
8.根据权利要求7所述的系统,其特征在于,所述断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点。
9.根据权利要求7所述的系统,其特征在于,所述变量观测和性能分析需求描述文件的内容主要来自于各个变量的作用域、类型等信息以及待调试的并行程序的各指导语句所在位置的信息。
10.根据权利要求9所述的系统,其特征在于,所述变量观测和性能分析需求描述文件的内容根据在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出的相应的语法树生成。
11.根据权利要求10所述的系统,其特征在于,所述后台调试管理模块还包括语法分析模块,用来根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,所述解析程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句构建语法树。
12.根据权利要求1至11任意一项所述的系统,其特征在于,所述前端集成调试模块与后台调试管理模块通过Socket结构体进行通信。
13.一种并行程序的调试方法,其特征在于,所述方法包括:
通过前端调试环境的调试窗口,对待调试的并行程序进行调试操作;
根据前端集成调试环境发来的调试命令,通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
14.根据权利要求13所述的方法,其特征在于,所述调试操作具体包括:
工程管理,所述工程管理功能包括支持用户新建、删除新的工程,在工程中添加、删除文件;
文件管理,所述文件管理功能包括源代码文件的新建、打开、保存或关闭;
代码编辑管理,所述代码编辑管理功能包括允许用户编辑代码、代码板旁边即时显示行号、支持基本的编程语言关键字高亮显示,支持区分大小写的查找或替换;
根据用户需求或系统推荐,设置断点或性能观测点。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:通过一对话框,来设置各种可能的条件值对断点进行控制。
16.根据权利要求15所述的方法,其特征在于,所述通过源代码插桩,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境具体包括:
按照实际需要对源代码进行访问和修改,加入所需要的功能代码,来捕获程序当前的状态或增加外部代码运行过程的控制,并对插桩后的并行程序进行编译运行,将运行的结果反馈给前端集成调试环境。
17.根据权利要求16所述的方法,其特征在于,所述源代码插桩具体包括:
断点管理,使得经插桩后的代码在执行过程中与前端集成调试环境进行通信,模拟实现断点效果;
变量观测插桩,使得经插桩的代码与前端集成调试环境之间进行通信,在断点处传输有效变量信息并显示给用户;
性能分析插桩,使得经插桩的代码在执行过程中与前端集成调试环境之间进行通信传递并行程序的性能参数,并在前端集成调试环境中实现性能观测与记录。
18.根据权利要求17所述的方法,其特征在于,所述实际需求通过插桩需求描述文件的方式传递给源代码插桩模块,源代码插桩模块根据插桩需求描述文件给出的信息,调用相应的接口,对待调试的程序源代码进行自动插桩。
19.根据权利要求18所述的方法,其特征在于,所述插桩需求描述文件包括断点管理需求描述文件、变量观测需求描述文件或性能分析需求描述文件。
20.根据权利要求19所述的方法,其特征在于,所述断点管理需求描述文件的内容主要来自于用户通过前端集成调试模块的界面子模块设置的各种类型静态断点以及条件断点。
21.根据权利要求20所述的方法,其特征在于,所述变量观测和性能分析需求描述文件的内容主要来自于各个变量的作用域、类型等信息以及待调试的并行程序的各指导语句所在位置的信息。
22.根据权利要求21所述的方法,其特征在于,所述变量观测和性能分析需求描述文件的内容根据在插桩之前对待调试的程序的源代码进行词法和语法分析,构造出的相应的语法树生成。
23.根据权利要求22所述的方法,其特征在于,所述方法还包括根据用户所编写的规则及每条规则所对应的处理语句生成用于分析和处理待调试的程序的解析程序,所述解析程序根据编写指定的规则对待调试的程序进行词法和语法分析,并在执行每条规则所对应的处理语句构建语法树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110271034.0A CN102789413B (zh) | 2011-05-23 | 2011-09-14 | 一种并行程序的调试系统及方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101345068 | 2011-05-23 | ||
CN201110134506 | 2011-05-23 | ||
CN201110134506.8 | 2011-05-23 | ||
CN201110271034.0A CN102789413B (zh) | 2011-05-23 | 2011-09-14 | 一种并行程序的调试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789413A true CN102789413A (zh) | 2012-11-21 |
CN102789413B CN102789413B (zh) | 2016-02-17 |
Family
ID=47154820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110271034.0A Active CN102789413B (zh) | 2011-05-23 | 2011-09-14 | 一种并行程序的调试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789413B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104007966A (zh) * | 2014-05-21 | 2014-08-27 | 广东明创软件科技有限公司 | 基于开发使用的应用程序界面控件信息查看方法 |
CN104915295A (zh) * | 2015-06-29 | 2015-09-16 | 北京奇虎科技有限公司 | 游戏软件调试方法及装置 |
CN105408823A (zh) * | 2014-05-08 | 2016-03-16 | 三菱电机株式会社 | 工程设计工具、程序编辑装置以及程序编辑系统 |
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
CN107977304A (zh) * | 2016-10-24 | 2018-05-01 | 北京京东尚科信息技术有限公司 | 一种系统调试方法和装置 |
CN108280027A (zh) * | 2018-02-08 | 2018-07-13 | 金蝶软件(中国)有限公司 | 一种脚本的并发调试渲染方法及装置 |
CN109710419A (zh) * | 2018-11-13 | 2019-05-03 | 北京航空航天大学 | 基于文本分析的mpi代码通信过程解析方法 |
CN110399292A (zh) * | 2019-06-21 | 2019-11-01 | 平安普惠企业管理有限公司 | 记录代码运行轨迹方法、装置、计算机设备和存储介质 |
WO2020001438A1 (zh) * | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试系统 |
CN110647355A (zh) * | 2018-06-27 | 2020-01-03 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
CN110727462A (zh) * | 2018-07-16 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN113934626A (zh) * | 2021-09-26 | 2022-01-14 | 中国汽车技术研究中心有限公司 | 模型过程调试方法、设备和存储介质 |
US11397579B2 (en) | 2018-02-13 | 2022-07-26 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11442786B2 (en) | 2018-05-18 | 2022-09-13 | Shanghai Cambricon Information Technology Co., Ltd | Computation method and product thereof |
CN115357515A (zh) * | 2022-10-19 | 2022-11-18 | 北京紫光芯能科技有限公司 | 一种多核系统的调试方法、装置、计算机设备及存储介质 |
US11513586B2 (en) | 2018-02-14 | 2022-11-29 | Shanghai Cambricon Information Technology Co., Ltd | Control device, method and equipment for processor |
US11544059B2 (en) | 2018-12-28 | 2023-01-03 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Signal processing device, signal processing method and related products |
US11609760B2 (en) | 2018-02-13 | 2023-03-21 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11676029B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11675676B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11703939B2 (en) | 2018-09-28 | 2023-07-18 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device and related products |
CN116541310A (zh) * | 2023-07-05 | 2023-08-04 | 睿思芯科(深圳)技术有限公司 | Riscv处理器集成的调试开发系统 |
US11762690B2 (en) | 2019-04-18 | 2023-09-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
US11847554B2 (en) | 2019-04-18 | 2023-12-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
CN117873740A (zh) * | 2024-03-12 | 2024-04-12 | 麒麟软件有限公司 | 基于gdb的进程死锁关系图构建方法、装置及存储介质 |
US11966583B2 (en) | 2018-08-28 | 2024-04-23 | Cambricon Technologies Corporation Limited | Data pre-processing method and device, and related computer device and storage medium |
US12001955B2 (en) | 2019-08-23 | 2024-06-04 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
CN1949185A (zh) * | 2005-10-13 | 2007-04-18 | 同济大学 | 异构环境下支持多语言多平台的并行调试及性能分析方法 |
US20110072309A1 (en) * | 2009-09-24 | 2011-03-24 | Ryuji Sakai | Debugger for Multicore System |
CN102023920A (zh) * | 2010-10-27 | 2011-04-20 | 西安交通大学 | 一种远程并行程序调试系统中基于树形的消息聚集方法 |
-
2011
- 2011-09-14 CN CN201110271034.0A patent/CN102789413B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
CN1949185A (zh) * | 2005-10-13 | 2007-04-18 | 同济大学 | 异构环境下支持多语言多平台的并行调试及性能分析方法 |
US20110072309A1 (en) * | 2009-09-24 | 2011-03-24 | Ryuji Sakai | Debugger for Multicore System |
CN102023920A (zh) * | 2010-10-27 | 2011-04-20 | 西安交通大学 | 一种远程并行程序调试系统中基于树形的消息聚集方法 |
Non-Patent Citations (2)
Title |
---|
赵海祥: "《一种应用与远程并行程序调试系统的新型消息聚集机制》", 《西安交通大学学报》, vol. 43, no. 10, 30 October 2009 (2009-10-30) * |
马桂杰: "《基于插桩技术的并行程序性能分析设计和实现方法》", 《计算机应用研究》, vol. 24, no. 10, 30 October 2007 (2007-10-30) * |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105408823A (zh) * | 2014-05-08 | 2016-03-16 | 三菱电机株式会社 | 工程设计工具、程序编辑装置以及程序编辑系统 |
CN105408823B (zh) * | 2014-05-08 | 2017-07-18 | 三菱电机株式会社 | 工程设计工具、程序编辑装置以及程序编辑系统 |
CN104007966B (zh) * | 2014-05-21 | 2017-07-21 | 广东明创软件科技有限公司 | 基于开发使用的应用程序界面控件信息查看方法 |
CN104007966A (zh) * | 2014-05-21 | 2014-08-27 | 广东明创软件科技有限公司 | 基于开发使用的应用程序界面控件信息查看方法 |
CN104915295A (zh) * | 2015-06-29 | 2015-09-16 | 北京奇虎科技有限公司 | 游戏软件调试方法及装置 |
CN104915295B (zh) * | 2015-06-29 | 2017-11-28 | 北京奇虎科技有限公司 | 游戏软件调试方法及装置 |
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
CN106201892B (zh) * | 2016-07-20 | 2019-02-01 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
CN107977304A (zh) * | 2016-10-24 | 2018-05-01 | 北京京东尚科信息技术有限公司 | 一种系统调试方法和装置 |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
CN108280027B (zh) * | 2018-02-08 | 2021-06-01 | 金蝶软件(中国)有限公司 | 一种脚本的并发调试渲染方法及装置 |
CN108280027A (zh) * | 2018-02-08 | 2018-07-13 | 金蝶软件(中国)有限公司 | 一种脚本的并发调试渲染方法及装置 |
US11740898B2 (en) | 2018-02-13 | 2023-08-29 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11704125B2 (en) | 2018-02-13 | 2023-07-18 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Computing device and method |
US11663002B2 (en) | 2018-02-13 | 2023-05-30 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11709672B2 (en) | 2018-02-13 | 2023-07-25 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11620130B2 (en) | 2018-02-13 | 2023-04-04 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11609760B2 (en) | 2018-02-13 | 2023-03-21 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11397579B2 (en) | 2018-02-13 | 2022-07-26 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11720357B2 (en) | 2018-02-13 | 2023-08-08 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
US11513586B2 (en) | 2018-02-14 | 2022-11-29 | Shanghai Cambricon Information Technology Co., Ltd | Control device, method and equipment for processor |
US11442785B2 (en) | 2018-05-18 | 2022-09-13 | Shanghai Cambricon Information Technology Co., Ltd | Computation method and product thereof |
US11442786B2 (en) | 2018-05-18 | 2022-09-13 | Shanghai Cambricon Information Technology Co., Ltd | Computation method and product thereof |
CN110647355A (zh) * | 2018-06-27 | 2020-01-03 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
CN110647355B (zh) * | 2018-06-27 | 2021-11-26 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
WO2020001438A1 (zh) * | 2018-06-27 | 2020-01-02 | 上海寒武纪信息科技有限公司 | 片上代码断点调试方法、片上处理器及芯片断点调试系统 |
US11789847B2 (en) | 2018-06-27 | 2023-10-17 | Shanghai Cambricon Information Technology Co., Ltd | On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system |
CN110727462B (zh) * | 2018-07-16 | 2021-10-19 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
CN110727462A (zh) * | 2018-07-16 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 数据处理器和数据处理方法 |
US11966583B2 (en) | 2018-08-28 | 2024-04-23 | Cambricon Technologies Corporation Limited | Data pre-processing method and device, and related computer device and storage medium |
US11703939B2 (en) | 2018-09-28 | 2023-07-18 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device and related products |
CN109710419A (zh) * | 2018-11-13 | 2019-05-03 | 北京航空航天大学 | 基于文本分析的mpi代码通信过程解析方法 |
US11544059B2 (en) | 2018-12-28 | 2023-01-03 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Signal processing device, signal processing method and related products |
US11762690B2 (en) | 2019-04-18 | 2023-09-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
US11934940B2 (en) | 2019-04-18 | 2024-03-19 | Cambricon Technologies Corporation Limited | AI processor simulation |
US11847554B2 (en) | 2019-04-18 | 2023-12-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
US11676029B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US11675676B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN110399292A (zh) * | 2019-06-21 | 2019-11-01 | 平安普惠企业管理有限公司 | 记录代码运行轨迹方法、装置、计算机设备和存储介质 |
US12001955B2 (en) | 2019-08-23 | 2024-06-04 | Anhui Cambricon Information Technology Co., Ltd. | Data processing method, device, computer equipment and storage medium |
CN111913878A (zh) * | 2020-07-13 | 2020-11-10 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN111913878B (zh) * | 2020-07-13 | 2023-09-15 | 苏州洞察云信息技术有限公司 | 基于程序分析结果的字节码插桩方法、装置及存储介质 |
CN113934626A (zh) * | 2021-09-26 | 2022-01-14 | 中国汽车技术研究中心有限公司 | 模型过程调试方法、设备和存储介质 |
CN115357515A (zh) * | 2022-10-19 | 2022-11-18 | 北京紫光芯能科技有限公司 | 一种多核系统的调试方法、装置、计算机设备及存储介质 |
CN116541310B (zh) * | 2023-07-05 | 2023-09-01 | 睿思芯科(深圳)技术有限公司 | Riscv处理器集成的调试开发系统 |
CN116541310A (zh) * | 2023-07-05 | 2023-08-04 | 睿思芯科(深圳)技术有限公司 | Riscv处理器集成的调试开发系统 |
CN117873740A (zh) * | 2024-03-12 | 2024-04-12 | 麒麟软件有限公司 | 基于gdb的进程死锁关系图构建方法、装置及存储介质 |
CN117873740B (zh) * | 2024-03-12 | 2024-06-07 | 麒麟软件有限公司 | 基于gdb的进程死锁关系图构建方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102789413B (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789413A (zh) | 一种并行程序的调试系统及方法 | |
CN105843630B (zh) | 一种基于机器人图形化编程开发的方法 | |
CN103092761B (zh) | 基于差异信息文件识别和检查修改代码块的方法及装置 | |
CN100435111C (zh) | 异构环境下支持多语言多平台的并行调试及性能分析方法 | |
CN101833500A (zh) | 一种基于Agent的嵌入式软件智能测试方法 | |
CN109783081A (zh) | 一种应用程序的开发方法、装置及集成开发工具 | |
CN105787367A (zh) | 一种软件更新的补丁安全性检测方法及系统 | |
CN110389898A (zh) | 测试策略的获取方法、装置、终端及计算机可读存储介质 | |
CN102243609A (zh) | 一种基于嵌入式软件的测试分析方法及系统 | |
CN102222041A (zh) | 一种基于嵌入式软件的测试分析系统及方法 | |
CN103678135A (zh) | 大数据环境下实现跨进程与跨线程调试的系统与方法 | |
CN101833499A (zh) | 一种基于可达树的软件测试验证方法 | |
CN102662825B (zh) | 一种面向堆操作程序的内存泄漏检测方法 | |
CN106326307A (zh) | 一种语言交互方法 | |
US8225286B2 (en) | Debugging interpreted input | |
US8533683B2 (en) | Stack walking enhancements using sensorpoints | |
CN102880474A (zh) | 并行源代码生成、编译及驱动执行的测试方法 | |
CN108647147A (zh) | 一种利用图谱分析执行自动化测试机器人及其使用方法 | |
CN102968372B (zh) | 具有程序分析功能的程序调试系统 | |
CN113360144A (zh) | 软件开发的辅助处理方法、设备、存储介质及程序产品 | |
CN115757603A (zh) | 一种可视化数据建模系统及方法 | |
CN111475408A (zh) | 一种基于代码检查工具的质量管理方法 | |
CN106201790B (zh) | 一种基于dsdt表的调试方法及调试系统 | |
CN104657248A (zh) | Java线程堆栈分析方法及系统 | |
CN106294132B (zh) | 一种管理日志的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |