CN113590462A - 基于Eclipse插件的DSP程序运行调试方法 - Google Patents
基于Eclipse插件的DSP程序运行调试方法 Download PDFInfo
- Publication number
- CN113590462A CN113590462A CN202110661054.2A CN202110661054A CN113590462A CN 113590462 A CN113590462 A CN 113590462A CN 202110661054 A CN202110661054 A CN 202110661054A CN 113590462 A CN113590462 A CN 113590462A
- Authority
- CN
- China
- Prior art keywords
- debugging
- eclipse
- command
- interface
- dsp
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000003993 interaction Effects 0.000 claims abstract description 13
- 238000003672 processing method Methods 0.000 claims abstract description 13
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/3668—Software testing
-
- 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/3628—Software debugging of optimised code
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
本发明公开了一种基于Eclipse插件的DSP程序运行调试方法,在调试初始化时注册相关服务类,通过Eclipse界面发起调试操作,Eclipse调用对应服务类的处理方法,处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列,发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,C++代码通过COM组件调用DSP调试接口,将调试结果返回给Java端代码,Java端接收到调试结果将其反映在Eclipse界面上,从而实现了通过在Eclipse内操作来运行调试DSP程序。
Description
技术领域
本发明属于计算机技术领域,具体地说,是涉及一种基于Eclipse插件的DSP程序运行调试方法。
背景技术
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台;就其本身而言,它只是一个框架和一组服务,通过插件开发组件,开发者可以根据需要在框架中添加自己定制的功能。通过现有的CDT(C/C++ Development Tooling)与Embedded CDT插件可以帮助开发者高效率地开发C/C++代码,并对程序进行编译与调试运行。
目前Eclipse支持的处理器限于x86、Arm与RISC-V,现阶段并不支持对于DSP程序的调试与运行。
发明内容
本发明的目的在于提供一种基于Eclipse插件的DSP程序运行调试方法,使用户可以通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
本发明采用以下技术方案予以实现:
提出一种基于Eclipse插件的DSP程序运行调试方法,包括:通过Eclipse界面发起调试操作;Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将所述调试命令对象添加至命令队列;发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法;用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码;在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
进一步的,在发起调试操作之前,所述方法还包括:注册调试相关的服务;所述服务用于处理在Eclipse界面上进行调试操作,并基于DSF框架,为继承自org.eclipse.cdt.dsf.service.AbstractDsfService的类,以及实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
进一步的,所述调试操作为:启动、终端运行或调试;或,发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位;或,查看调试信息视图和/或在视图上操作。
进一步的,所述命令调试对象包括:表示方法名的字符串;表示参数类型的数组,数组中每一个元素代表一个参数的类型;保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
进一步的,所述通过COM组件调用DSP调试接口的操作包括:初始化当前线程COM组件库;调用DSP调试接口;卸载COM组件库。
与现有技术相比,本发明的优点和积极效果是:本发明提出的基于Eclipse插件的DSP程序运行调试方法中,用户通过Eclipse界面注册调试相关的服务并发起调试操作,Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列,发送命令的线程则读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,Java端接收到所述调试结果,将调试结果反映在Eclipse界面上 ,从而实现了通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1 为本发明提出的基于Eclipse插件的DSP程序运行调试方法的流程图;
图2为本发明中Eclipse端Java通过C++端代码调用DSP调试接口的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细的说明。
如图1和图2所示,本发明提出的基于Eclipse插件的DSP程序运行调试方法,包括如下步骤:
步骤S1:通过Eclipse界面发起调试操作。
本发明基于安装有CDT插件的Eclipse集成开发环境,CDT插件提供对C/C++开发的必要支持。
用户首先在Eclipse环境中注册调试相关的服务,该服务用于处理在Eclipse界面上进行的调试操作,该服务基于DSF(调试服务框架)框架,为继承自org.eclipse.cdt.dsf.service.AbstractDsfService的类,并实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
举例来说:断点服务BreakpointsService实现了
org.eclipse.cdt.dsf.debug.service.IBreakpoints接口,至少包含insertBreakpoint方法用来实现插入断点;removeBreakpoint方法实现删除断点。
该服务采用C++代码重写调试操作的处理方法,并被存储于本地.dll文件中。
调试操作包括以下之一:
1)启动、终端运行或调试。
2)发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位。
3)查看调试信息视图和/或在视图上操作;所述视图包括:调试视图、控制台视图、断点视图、局部变量视图、表达式视图、反汇编视图、寄存器视图、和/或内存视图。
步骤S2:Eclipse根据发起的调试操作调用对应服务类的处理方法,处理方法根据方法参数创建调试命令对象,将调试命令对象添加至命令队列。
所述调试命令对象至少包含以下关键信息:
1)表示方法名的字符串。
2)表示参数类型的数组,数组中每一个元素代表一个参数的类型。
3)保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
步骤S3:发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法。
负责发送命令的服务在调试初始化时启动一个线程来处理命令队列,当命令队列中存在调试命令对象时,便依次取出调试命令对象,获取调试命令对象的对应信息,并通过反射的方式调用用于后端交互的类中对应的方法。
步骤S4:用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码。
后于后端交互的类负责调用本地.dll文件中的C++代码,具体的,通过JNA框架调用本地.dll 文件中的C++代码。
步骤S5:在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;
C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,这里调用DSP调试接口操作包括:
1)初始化当前线程COM组件库。
2)调用DSP调试接口。
3)卸载COM组件库。
步骤S6:Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
至此,完成一次调试操作。
上述本发明提出的基于Eclipse插件的DSP程序运行调试方法中,用户通过Eclipse界面注册调试相关的服务并发起调试操作,Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将命令对象添加至命令队列,发送命令的线程则读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法,用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码,在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码,Java端接收到所述调试结果,将调试结果反映在Eclipse界面上 ,从而实现了通过在Eclipse内操作来运行调试DSP程序,解决Eclipse调试框架无法适配DSP程序的技术问题。
应该指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (5)
1.基于Eclipse插件的DSP程序运行调试方法,其特征在于,包括:
通过Eclipse界面发起调试操作;
Eclipse根据发起的调试操作调用对应服务类的处理方法,所述处理方法根据方法参数创建调试命令对象,将所述调试命令对象添加至命令队列;
发送命令的线程读取命令队列中的调试命令对象,通过反射调用用于后端的交互的类中对应的方法;
用于后端的交互的类中的Java代码通过JNA框架调用.dll文件中的C++代码;
在C++代码中通过COM组件调用DSP调试接口,并将调试结果返回给Java端代码;
Java端接收到所述调试结果,将调试结果反映在Eclipse界面上。
2.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,在发起调试操作之前,所述方法还包括:
注册调试相关的服务;所述服务用于处理在Eclipse界面上进行调试操作,并基于DSF框架,为继承自
org.eclipse.cdt.dsf.service.AbstractDsfService的类,以及实现与其所提供服务对应的org.eclipse.cdt.dsf.debug.service包中的接口。
3.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述调试操作为:
启动、终端运行或调试;或,
发送程序运行控制命令;所述命令包括:运行、停止、步进、步过、步出、汇编级步进或复位;或,
查看调试信息视图和/或在视图上操作。
4.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述命令调试对象包括:
表示方法名的字符串;
表示参数类型的数组,数组中每一个元素代表一个参数的类型;
保存参数具体值的数组,与表示参数类型的数组对应,数组中每一个元素代表一个参数值。
5.根据权利要求1所述的基于Eclipse插件的DSP程序运行调试方法,其特征在于,所述通过COM组件调用DSP调试接口的操作包括:
初始化当前线程COM组件库;
调用DSP调试接口;
卸载COM组件库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661054.2A CN113590462A (zh) | 2021-06-15 | 2021-06-15 | 基于Eclipse插件的DSP程序运行调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661054.2A CN113590462A (zh) | 2021-06-15 | 2021-06-15 | 基于Eclipse插件的DSP程序运行调试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590462A true CN113590462A (zh) | 2021-11-02 |
Family
ID=78243633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110661054.2A Pending CN113590462A (zh) | 2021-06-15 | 2021-06-15 | 基于Eclipse插件的DSP程序运行调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590462A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064677A1 (en) * | 2004-09-22 | 2006-03-23 | Maya Bickson | Debugger and method for debugging computer programs across multiple programming languages |
CN104731566A (zh) * | 2013-12-19 | 2015-06-24 | 华为软件技术有限公司 | 集成开发环境测试装置、方法及系统 |
CN105912463A (zh) * | 2016-05-20 | 2016-08-31 | 东信和平科技股份有限公司 | 基于mp300设备的智能卡协议自动测试系统和方法 |
CN111858337A (zh) * | 2020-07-21 | 2020-10-30 | 麒麟软件有限公司 | 一种支持Java应用程序调试Native函数的方法 |
-
2021
- 2021-06-15 CN CN202110661054.2A patent/CN113590462A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064677A1 (en) * | 2004-09-22 | 2006-03-23 | Maya Bickson | Debugger and method for debugging computer programs across multiple programming languages |
CN104731566A (zh) * | 2013-12-19 | 2015-06-24 | 华为软件技术有限公司 | 集成开发环境测试装置、方法及系统 |
CN105912463A (zh) * | 2016-05-20 | 2016-08-31 | 东信和平科技股份有限公司 | 基于mp300设备的智能卡协议自动测试系统和方法 |
CN111858337A (zh) * | 2020-07-21 | 2020-10-30 | 麒麟软件有限公司 | 一种支持Java应用程序调试Native函数的方法 |
Non-Patent Citations (1)
Title |
---|
朱艳等: "Eclipse开源代码的多核DSP调试系统集成", 单片机与嵌入式系统应用, vol. 15, no. 177, pages 11 - 17 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5415557B2 (ja) | デバッギングのためのユーザ・スクリプト・コードの変換 | |
US9417931B2 (en) | Unified metadata for external components | |
CN102402427B (zh) | 一种Java应用程序的更新方法及装置 | |
US7281237B2 (en) | Run-time verification of annotated software code | |
US8201143B2 (en) | Dynamic mating of a modified user interface with pre-modified user interface code library | |
EP2246783B1 (en) | Method and apparatus for automatically generating source code files in a file storage unit | |
US20160232017A1 (en) | System and Method for Reloading Constructors | |
US7269464B2 (en) | System, method and computer program product for providing an interface for instantiating additional programmable logic controller functionality | |
JP5396979B2 (ja) | ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム | |
AU2892200A (en) | Automatic stub/adapter generator | |
US20040268301A1 (en) | Adding new compiler methods to an integrated development environment | |
EP0706684A1 (en) | System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers | |
CN106055368B (zh) | 应用更新方法和装置 | |
KR20000026296A (ko) | 망 관리 시스템 및 클래스 동적 추가 방법 | |
WO2019090994A1 (zh) | 测试脚本自动化执行方法、装置、设备以及存储介质 | |
US20090320007A1 (en) | Local metadata for external components | |
CN113885967B (zh) | 一种小程序的启动方法、装置、设备及介质 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 | |
CN106850650B (zh) | 用于游戏客户端访问数据的方法及客户端游戏系统 | |
US20080141219A1 (en) | Multiple inheritance facility for java script language | |
US20080281861A1 (en) | Method and system for dynamically generating enterprise java beans during installation of a service component architecture application | |
CN113590462A (zh) | 基于Eclipse插件的DSP程序运行调试方法 | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
US7526752B1 (en) | Introspection support for generic types | |
CN110275710B (zh) | 一种Java本地接口一致性检查方法及系统、存储介质及终端 |
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 |