CN112540907B - 面向异构众核上并行程序的可视化调试方法 - Google Patents
面向异构众核上并行程序的可视化调试方法 Download PDFInfo
- Publication number
- CN112540907B CN112540907B CN201910892335.1A CN201910892335A CN112540907B CN 112540907 B CN112540907 B CN 112540907B CN 201910892335 A CN201910892335 A CN 201910892335A CN 112540907 B CN112540907 B CN 112540907B
- Authority
- CN
- China
- Prior art keywords
- debugging
- client
- server
- view
- command
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种面向异构众核上并行程序的可视化调试方法,基于异构众核处理器,包括以下步骤:S1:基于Eclipse的调试框架,形成图形化的调试客户端;S2:用户通过调试客户端指定具体的主核或从核执行调试命令;S3:此调试服务器通过socket接受来自调试客户端的调试命令;S4:用户在服务节点上部署调试代理,并执行相应的调试命令并得到调试结果数据;S5:调试服务器通过socket接收若干个调试代理输出的调试结果数据;S6:调试客户端接收来自调试服务器的信息,将带有调试结果数据的调试接口进行可视化展示。本发明能够捕获并分析归纳多进程的调试信息,使得开发人员能够通过丰富的界面交互完成对并行程序的调试,且操作简便、上手难度较低。
Description
技术领域
本发明属于异构众核处理器优化技术领域,尤其涉及一种面向异构众核上并行程序的可视化调试方法。
背景技术
现有的并行程序调试工具中,一类是开源的命令行工具如GDB系列,具备完善的基础调试功能如断点、步进、跟踪、定位等,但是对并行程序的调试支持薄弱;一类是商业的并行调试工具TotalView、Allinea DDT等,这类调试工具除了完备的基础调试功能,还有强大的并行调试功能如多进程的控制、对比等,但是这类软件针对的都是通用X86架构平台,无法对国产异构众核平台上的并行程序进行调试。
目前,针对国产异构众核平台的并行程序调试,依赖命令行工具swgdb,主要的调试流程有以下几个步骤:查询需要被调试的作业号,登录运行了该作业进程的计算节点,查询计算节点上运行的作业进程ID,通过“swgdb -p pid”类似的命令调试并行程序上某一个进程,当需要调试该作业另一个进程时,几乎需要把上述操作重新执行一遍,并且想要同时获取所有进程的状态几乎不可能,这一系列的复杂操作增加了开发人员的上手难度。
发明内容
本发明目的在于提供一种面向异构众核上并行程序的可视化调试方法,该可视化调试技术不仅解决了现有技术中缺乏针对异构众核上并行程序调试技术的问题,还解决了进程调试繁杂、上手难度大的问题。
为达到上述目的,本发明采用的技术方案是:一种面向异构众核上并行程序的可视化调试方法,基于异构众核处理器,包括以下步骤:
S1:基于Eclipse的调试框架,将并行程序的所有进程以列表形式显示在拓展的并行调试视图中,此并行调试视图用于显示所有进程的当前状态,形成图形化的调试客户端;
S2:通过实现Eclipse调试框架的接口,用户双击进程图标,注册进程至单一调试视图,单一调试视图按进程、主核/从核、堆栈的顺序以树状结构显示调试信息,用户通过调试客户端指定具体的主核或从核执行调试命令;
S3:调试客户端启动调试时,在服务节点上部署一个中间服务商作为调试服务器,此调试服务器通过socket接受来自调试客户端的调试命令,且该调试命令是调试客户端和调试服务器定义的调试接口;
S4:用户在服务节点上部署调试代理,调试服务器在计算节点上启动调试代理,位于底层的调试代理接收到调试服务器传递的调试命令后,调试代理通过swgdb将调试接口形式的信息转化为swgdb可识别的调试命令,并执行相应的调试命令并得到调试结果数据;
S5:调试服务器通过socket接收若干个调试代理输出的调试结果数据,并将其封装成调试客户端和调试服务器定义的调试接口;
S6:调试客户端接收来自调试服务器的信息,将带有调试结果数据的调试接口进行可视化展示。
上述技术方案中进一步改进的技术方案如下:
1. 上述方案中,所述调试客户端的可视化界面包括并行调试视图、单一调试视图、源码显示、断点视图和控制台视图。
2. 上述方案中,调试过程中,如果有程序输出,程序输出会自动输出在控制台。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明面向异构众核上并行程序的可视化调试方法,其通过捕获并分析归纳多进程的调试信息,自动组合并图形化展示源自多个进程的调试数据,使得开发人员能够通过丰富的界面交互完成对并行程序的调试,且操作简便、上手难度较低。
附图说明
附图1为面向异构众核上并行程序的可视化调试方法的流程示意图;
附图2为本发明的原理框图。
具体实施方式
在本专利的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性;此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利的具体含义。
下面结合实施例对本发明作进一步描述:
实施例:一种面向异构众核上并行程序的可视化调试方法,参照附图1~2,基于异构众核处理器,包括以下步骤:
S1:基于Eclipse的调试框架,通过实现org.eclipse.ui.views扩展点完成并行调试视图的定义与实现,该视图能够将数据以列表的形式呈现,将并行程序的所有进程以列表形式显示在拓展的并行调试视图中,此并行调试视图用于显示所有进程的当前状态,形成图形化的调试客户端。
S2:通过实现Eclipse调试框架的接口,用户双击进程图标,注册进程至单一调试视图,单一调试视图按进程、主核/从核、堆栈的顺序以树状结构显示调试信息,用户通过鼠标选择具体的栈,界面会通过C编辑器自动打开对应的源文件并定位到行,变量视图也会自动显示该栈的所有变量信息,用户通过鼠标双击C编辑器的边侧栏,即可设置并行断点,断点的具体信息可在断点视图中查看,用户通过调试客户端指定具体的主核或从核执行调试命令;
图形界面的整体布局以并行调试视图→单一调试视图→源码显示→变量视图→断点视图→控制台视图形成了统一的框架内主从核调试,其中的源码显示、变量视图、断点视图、控制台视图均为在步骤中进行展示。
S3:调试客户端启动调试时,在服务节点上部署一个中间服务商作为调试服务器,此调试服务器通过socket接受来自调试客户端的调试命令,且该调试命令是调试客户端和调试服务器定义的调试接口。
S4:用户在服务节点上部署调试代理,调试服务器在计算节点上启动调试代理,其中,计算节点可直接访问服务节点上的调试代理,位于底层的调试代理接收到调试服务器传递的的调试命令后,调试代理通过swgdb将调试接口形式的信息转化为swgdb可识别的调试命令,并执行相应的调试命令并得到调试结果数据。
S5:调试服务器通过socket接收若干个调试代理输出的调试结果数据,并将其封装成调试客户端和调试服务器定义的调试接口;
其中,调试结果数据都是gdb-mi接口产生的数据,以gdb-mi接口的规范要求解析这些数据,解析的过程就是把数据封装成调试客户端与调试服务器定义的调试接口;
调试服务器中有一个调试数据解析器,这个解析器可根据调试数据的存储格式把调试数据封装成一个个对象,调试服务器再根据这些对象的特征,归纳并分类对象,最终把这些对象都封装成调试客户端与调试服务器之间制定的调试接口。
S6:调试客户端接收来自调试服务器的信息,将带有调试结果数据的调试接口进行可视化展示。
实施例进一步解释如下:
本发明基于国产异构众核处理器,具体流程如图1所示;主要包括三个方面的内容:1)调试客户端;2)调试服务器;3)通信代理。
S1:调试客户端是一个基于Eclipse的调试框架实现的图形化客户端,而Eclipse的调试框架是一个串行框架,且调试框架中没有从核的概念,无法针对国产异构众核程序进行有效的并行调试;针对此问题,通过把并行程序的所有进程以列表的形式显示在扩展的并行调试视图中,并且根据视图上的并行调试命令,实时呈现所有进程的当前状态,用户鼠标双击进程图标,注册进程到单一调试视图中,以树状结构显示进程->主核/从核->堆栈,单一调试视图中的调试命令可指定具体的主核/从核执行;实现了即可并行调试又能单一进程调试的功能。图形界面的整体布局以并行调试视图->单一调试视图->源码显示->变量视图->断点视图->控制台视图形成了统一的框架内主从核调试。
S2:调试服务器是一个中间服务商,部署在服务节点上,通过socket接收到调试客户端发送的消息,解析消息,再通过socket把消息传递给底层的调试代理,调试代理执行相应的命令后返回数据给调试服务器,调试服务器归纳汇总不同调试代理产生的数据,利用数据抽象的方式格式化杂乱无章的调试信息,最终以调试接口的形式返回给调试客户端。调试服务器在这过程中起到中转的作用,并且承担了消息处理、聚合的功能;有效减轻了调试客户端的负担,保障了客户端实时秒级可视化数据。
S3:该阶段调试代理部署在计算节点,负责在计算节点上启动swgdb,并且把从S2获取的输入转发化swgdb可识别的调试命令并执行,最终把执行结果通过socket返回给调试服务器。
采用上述面向异构众核上并行程序的可视化调试方法时,其通过捕获并分析归纳多进程的调试信息,自动组合并图形化展示源自多个进程的调试数据,使得开发人员能够通过丰富的界面交互完成对并行程序的调试,且操作简便、上手难度较低。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种面向异构众核上并行程序的可视化调试方法,其特征在于,基于异构众核处理器,包括以下步骤:
S1:基于Eclipse的调试框架,将并行程序的所有进程以列表形式显示在拓展的并行调试视图中,此并行调试视图用于显示所有进程的当前状态,形成图形化的调试客户端;
S2:通过实现Eclipse调试框架的接口,用户双击进程图标,注册进程至单一调试视图,单一调试视图按进程、主核/从核、堆栈的顺序以树状结构显示调试信息,用户通过调试客户端指定具体的主核或从核执行调试命令;
S3:调试客户端启动调试时,在服务节点上部署一个中间服务商作为调试服务器,此调试服务器通过socket接受来自调试客户端的调试命令,且该调试命令是调试客户端和调试服务器定义的调试接口;
S4:用户在服务节点上部署调试代理,调试服务器在计算节点上启动调试代理,位于底层的调试代理接收到调试服务器传递的调试命令后,调试代理通过swgdb将调试接口形式的信息转化为swgdb可识别的调试命令,并执行相应的调试命令并得到调试结果数据;
S5:调试服务器通过socket接收若干个调试代理的输出,并将其封装成调试客户端和调试服务器定义的调试接口;
S6:调试客户端接收来自调试服务器的信息,将带有调试结果数据的调试接口进行可视化展示。
2.根据权利要求1所述的面向异构众核上并行程序的可视化调试方法,其特征在于:所述调试客户端的可视化界面包括并行调试视图、单一调试视图、源码显示、断点视图和控制台视图。
3.根据权利要求2所述的面向异构众核上并行程序的可视化调试方法,其特征在于:调试过程中,如果有程序输出,程序输出会自动输出在控制台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910892335.1A CN112540907B (zh) | 2019-09-20 | 2019-09-20 | 面向异构众核上并行程序的可视化调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910892335.1A CN112540907B (zh) | 2019-09-20 | 2019-09-20 | 面向异构众核上并行程序的可视化调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540907A CN112540907A (zh) | 2021-03-23 |
CN112540907B true CN112540907B (zh) | 2022-11-25 |
Family
ID=75012306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910892335.1A Active CN112540907B (zh) | 2019-09-20 | 2019-09-20 | 面向异构众核上并行程序的可视化调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540907B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
US20110307871A1 (en) * | 2010-06-11 | 2011-12-15 | International Business Machines Corporation | Distributed Debugging |
-
2019
- 2019-09-20 CN CN201910892335.1A patent/CN112540907B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588323A (zh) * | 2004-09-23 | 2005-03-02 | 上海交通大学 | 并行程序可视化调试方法 |
US20110307871A1 (en) * | 2010-06-11 | 2011-12-15 | International Business Machines Corporation | Distributed Debugging |
Non-Patent Citations (2)
Title |
---|
《Visual Tracing for the Eclipse Java Debugger》;Bilal Alsallakh 等;《2012 16th European Conference on Software Maintenance and Reengineering》;20121231;全文 * |
《基于Eclipse嵌入式系统调试软件的设计》;王婷 等;《计算机系统应用》;20151231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112540907A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100435111C (zh) | 异构环境下支持多语言多平台的并行调试及性能分析方法 | |
CN106302008B (zh) | 数据更新方法和装置 | |
EP2026212B1 (en) | Automatic test generation for reference testing | |
CN112671560B (zh) | 一种高可用的分布式实时告警处理方法及系统 | |
CN103514072B (zh) | 一种用于可视化编程的图形化业务的调试方法及装置 | |
CN102789413B (zh) | 一种并行程序的调试系统及方法 | |
US8028278B2 (en) | Method of generating and utilizing debug history | |
US20030056198A1 (en) | SQL debugging using XML dataflows | |
CN110198247A (zh) | 接口测试方法及系统 | |
CN103678135A (zh) | 大数据环境下实现跨进程与跨线程调试的系统与方法 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN111221729B (zh) | 一种平台服务与测试服务分离的自动化测试方法及系统 | |
CN114064152A (zh) | 基于动态加载的嵌入式多核调试系统及其调试方法 | |
CN115934566A (zh) | 一种调试信息显示方法、装置、电子设备及存储介质 | |
CN115686540A (zh) | 基于鸿蒙系统的rpa控制方法及系统 | |
CN109213102A (zh) | 多命令监测方法、装置、计算机设备及存储介质 | |
CN102968372B (zh) | 具有程序分析功能的程序调试系统 | |
WO2023142062A1 (zh) | 工作流生成方法、系统、介质及程序产品 | |
CN112540907B (zh) | 面向异构众核上并行程序的可视化调试方法 | |
CN105630664A (zh) | 一种反向调试方法、装置及调试器 | |
WO2023164841A1 (zh) | 工作流执行方法、装置、存储介质及程序产品 | |
WO2023142079A1 (zh) | 工作流创建方法、系统、介质及程序产品 | |
CN109379588A (zh) | 一种用于高清dvr的自动化测试方法及系统 | |
CN110502418B (zh) | 一种实现远程调试的方法 | |
CN109062147A (zh) | 一种可同时监控多条配料称重生产线的上位机控制系统 |
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 |