CN102279789A - 生产阶段嵌入式系统的调试系统及其调试方法 - Google Patents
生产阶段嵌入式系统的调试系统及其调试方法 Download PDFInfo
- Publication number
- CN102279789A CN102279789A CN2010102052093A CN201010205209A CN102279789A CN 102279789 A CN102279789 A CN 102279789A CN 2010102052093 A CN2010102052093 A CN 2010102052093A CN 201010205209 A CN201010205209 A CN 201010205209A CN 102279789 A CN102279789 A CN 102279789A
- Authority
- CN
- China
- Prior art keywords
- code
- debugging
- binary
- debug
- debug point
- 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
Abstract
提供了一种生产阶段嵌入式系统的调试系统及其调试方法。在编译和链接时,除了生成发布用的生产系统二进制文件,同时也由调试代码生成了调试用的二进制动态代码文件。生成发布版二进制文件时,代码中的调试代码不会包含其中。不会生产任何空指令、调用指令或桩代码。生成调试用的二进制文件时,相应调试点地址信息也被生成包含在内。在运行时,动态指令加载工具会列出所有调试点列表。用户根据需要,选择或变更所需要的调试点。最后,动态指令加载工具通过动态修改运行中的发布版软件,加载并运行用户指定的调试点相应的调试代码。
Description
技术领域
本发明涉及嵌入式系统的调试技术,更具体地,涉及生产阶段嵌入式系统的调试系统及其调试方法。
背景技术
在嵌入式系统的开发阶段中,通常使用调试和除错(DEBUG)系统,可以输出与嵌入式系统运行相关的调试信息,包括执行上下文、变量、寄存器、内存堆栈等。调试信息可以在系统控制台上输出或保存在调试日志中供后期分析。而对于嵌入式系统的生产阶段,由于考虑到调试系统的性能和内存额外开销,通常在产品发布版中移除了调试功能。
在现有技术中,有时为了保留调试功能,在产品规格允许的嵌入式系统中,即使是发布版,也会将监控和调试代码包含在内。这样可以为用户的使用带来更大的灵活性,从而提高嵌入式系统的稳定性。另外,在目前的嵌入式系统中,动态代码技术可以在运行时修改执行中的代码。因为函数地址比其它符号地址容易获取,所以通常使用动态代码技术进行性能分析和覆盖分析。
然而,在现有技术中,如果在产品的发布版本中保留调试代码,则即使不使用调试功能时,也无法避免会有内存和性能的额外开销。
通过动态代码来加入调试功能,需要用到相关调试代码点和调试符号的地址信息。除函数入口和导出符号外,地址信息比较难获取。另外,动态代码技术还必须使用动态代码框架定义的动态检测处理例程语言来定义动态代码,这对于用户来说不易使用。
对于嵌入式系统开发人员来说,需要一种与产品开发阶段中调试方法类似的生产阶段调试方法。同样,生产阶段的调试方法应该使用与嵌入式产品相同的开发语言,而不是新的调试语言。
在这种生产阶段调试方法关闭时,必须保证没有任何内存和性能的开销。同时,在应用生产阶段的调试方法时,必须将对嵌入式系统的影响减少到最少的限度。
发明内容
本发明提供了一种生产阶段嵌入式系统的调试系统及其方法,该系统和方法对于提高嵌入式系统的稳定性,提高嵌入式产品的质量具有很大的意义。同时,本发明也有利于设备的维护以及软件的升级,降低售后维护成本。
具体地,在采用了本发明的嵌入式系统的开发过程中,开发人员在源代码中直接写入相应的调试代码。在编译和链接时,除了生成发布用的生产系统二进制文件,同时也由调试代码生成了调试用的二进制动态代码文件。生成发布版二进制文件时,代码中的调试代码不会包含其中。不会生产任何空指令、调用指令或桩代码。生成调试用的二进制文件时,相应调试点地址信息也被生成包含在内。在运行时,动态指令加载工具会列出所有调试点列表。用户根据需要,选择或变更所需要的调试点。最后,动态指令加载工具通过动态修改运行中的发布版软件,加载并运行用户指定的调试点相应的调试代码。
根据本发明的一方面,提供了一种用于生产阶段嵌入式系统的调试系统,包括开发主机和目标机,所述开发机包括:编译器,读取源代码,并生成非调试软件部分的代码和调试软件部分的代码,其中,源代码包括产品源代码和调试代码,调试代码以宏的形式与产品源代码区分;链接器,分别利用非调试软件部分的代码和调试软件部分的代码链接生成发布用二进制应用文件和调试用二进制代码,记录与调试点相应的指令地址信息,并根据调试点相应的指令地址信息和调试用二进制代码生成调试用二进制代码文件。其中,当调试嵌入式系统时,所述目标机的动态代码加载工具解析调试用二进制文件中包含的调试点的二进制调试代码以及调试点在发布用二进制应用程序中的可执行地址,列出调试点列表供用户选择调试点,所述目标机的动态代码驱动内核根据用户选择的调试点动态修改运行中的发布用二进制应用程序以加载调试代码。
根据本发明的一方面,所述的调试系统的链接器将调试用二进制代码和非调试用二进制代码分别生成为独立的目标文件。
根据本发明的一方面,所述调试用二进制代码文件包含的调试点地址与源代码中调试点下一条非调试源代码生成的可执行代码地址相同。
根据本发明的一方面,可根据用户的选择全部或部分地打开调试点,并变更加载的调试代码。
根据本发明的另一方面,还提供了一种用于生产阶段嵌入式系统的调试方法,包括:开发主机端的编译器读取源代码,生成非调试软件部分的代码和调试软件部分的代码,其中,源代码包括产品源代码和调试代码,调试代码以宏的形式与产品源代码区分;开发主机端的链接器分别利用非调试软件部分的代码和调试软件部分的代码链接生成发布用二进制应用文件和调试用二进制代码,记录与调试点相应的指令地址信息,并根据调试点相应的指令地址信息和调试用二进制代码生成调试用二进制文件;当调试嵌入式系统时,所述目标机的动态代码加载工具解析调试用二进制文件中包含的调试点的二进制调试代码以及调试点在发布用二进制应用程序中的可执行地址,列出调试点列表供用户选择调试点,所述目标机的动态代码驱动内核根据用户选择的调试点动态修改运行中的发布用二进制应用程序以加载调试代码。
附图说明
通过下面结合附图对实施例的详细描述,本发明的上述和/或其他方面将会变得清楚和更容易理解,其中:
图1是示出应用根据本发明实施例的监控和调试方法的嵌入式系统;
图2是根据本发明实施例的嵌入式系统的主机端的编译链接方法的流程图;
图3是根据本发明实施例的嵌入式系统的目标机端的调试方法的流程图。
具体实施方式
下面将参照附图对本发明进行详细的说明。应理解,在这里示出了本发明的示例性实施例以帮助对本发明的理解,然而这些实施例仅是用于示例性目的,而不在于将本发明限定于在此描述的实施例。另外,为了清楚和简明,以下的描述中省略了对于本领域的技术人员已知的元件和功能的描述。
图1是示出应用了根据本发明实施例的监控和调试方法的嵌入式系统的结构示意图。如图1所示,该系统包括开发主机和运行目标机。
在开发主机中,包括嵌入式产品开发源代码、编译器和链接器。其中,编译器中包括一调试代码编译模块,而链接器包括调试代码链接模块。为了支持在生产阶段的调试,调试代码直接内嵌在产品源代码中。调试代码通过调试宏与产品源代码区分。调试点可由调试代码插入产品源代码的位置自动定义,也可以由开发者命名。在应用了根据本发明实施例的监控和调试的嵌入式系统中,在对包括调试代码的源代码进行编译和链接时,编译器和链接器将生成生产阶段发布所使用的二进制应用文件,同时还会生成调试二进制代码。在编译发布用二进制应用时,源代码中加入的调试宏被忽略跳过,因此,编译生成的二进制应用文件将不会包含任何调试用的代码,从而在发布用二进制应用文件正常运行时,不会产生任何内存和性能上的额外开销。同时,在由调试宏生成的调试用二进制文件中,包含了所有调试点在发布用二进制应用中的执行地址信息,以及各调试点对应的调试代码。生成调试二进制代码的过程将在以下参照附图2进行更详细的描述。
在根据本发明实施例的嵌入式系统的运行目标机在逻辑上分为应用层和驱动层。其中,调试二进制代码和发布用应用以及动态代码加载工具都在应用层。驱动层中包括动态代码加载驱动模块,用于驱动动态代码加载工具。当发布用二进制应用在目标机上独立运行时,不会执行调试宏中的任何二进制代码。当需要调试时,用户在动态代码加载工具提示的调试点列表中选择打开部分或全部调试点。相应的调试代码会由动态代码加载驱动加载到运行中的发布用二进制应用中。当执行到相应的调试点时,相应调试代码会被执行,以收集需要的调试信息。
下面将参照附图2描述在开发主机端的编译和链接处理过程。首先,在步骤210,当开发主机上的编译器被启动时,编译器读入源代码。该源代码中内嵌了调试代码,调试代码以宏的形式被定义。
然后,在步骤220,编译器分别生成非调试软件部分的代码和调试软件部分的代码。具体地,根据本发明的一实施例,编译器驱动前端程序启动源代码预处理器和汇编生成器生成汇编代码时,编译器的调试代码编译模块在调试代码前、后分别增加代码输出段调整指令SECTION。例如,指定调试代码SECTION为“.dbgtext”从而与常用的代码“.text”SECTION区别。另外,在生成代码的过程中,调试代码编译模块在调试代码前后自动增加调试标签label指令。例如,label指令可以是“probe handler 1:”和“probe point 1:”,分别用于记录调试点和调试函数在汇编代码中的位置。然后,编译驱动前端程序再启动汇编生成器,读入前面生成的汇编代码,通过识别并处理输出段指令,分别在“.text”和“.dbgtext”段中生成非调试部分代码和调试部分代码。
随后,在步骤230,开发主机启动链接器,链接生成发布用二进制应用文件和包含调试指令的调试用二进制代码,并记录与调试用二进制代码相关的地址信息。根据本发明的一实施例,为了生成两种不同的二进制代码,链接器先略去”.dbgtext”段,链接非调试部分代码,从而生成发布用二进制应用文件。同时,链接器的调试代码链接模块通过链接完成时的调试标签“probe_point_1”的值确定相应调试点的指令地址,即探针插桩地址。然后,调试代码链接模块再链接“.dbgtext”段,链接生成调试用二进制代码。同时,通过调试标签“probe_handler_1”的值,调试代码链接模块记录下每一段调试代码在“.dbgtext”中的指令地址,即探针函数地址。
最后,在步骤240,开发主机生成调试用二进制文件,所述调试用二进制文件包括所有调试点的地址信息。链接器读入前面的步骤230生成的所有探针插桩地址和探针函数地址,加上调试二进制代码,一并生成到调试用二进制文件中。这里,生成的非调试二进制代码与去掉调试部分源代码后编译、链接生成的二进制代码相同。生成的调试用二进制文件中包含调试点信息。调试二进制代码文件中包含的调试点地址与由源代码中调试点下一条非调试源代码生成的可执行代码地址相同。
除了以上的SECTION方式,还可以以其他方式来实现开发主机的编译和链接。例如,编译器可以将调试代码和非调试代码分别生成在独立的目标文件中。链接器进行链接时,用非调试目标文件链接生成发布用二进制文件,并记录下探针插桩地址。然后,链接器链接调试用目标文件时,记录下探针函数地址,并和前面的探针插桩地址信息合并,完成所有调试点的信息列表生成,一并写入到调试用二进制文件中。
图3是根据本发明实施例的在目标机上进行调试的流程图。在运行目标机上,包括发布用二进制应用文件、调试用代码、动态代码加载工具和动态代码加载驱动模块。其中,动态代码加载工具和动态代码加载驱动模块一起完成用户态应用的动态代码修改和调试代码加载功能。
首先,在步骤310,目标机读取发布用二进制应用文件以启动发布用应用程序,并启动动态代码加载驱动模块和动态代码加载工具模块。动态代码驱动模块可以根据嵌入式系统内核中提供的动态代码加载API来实现。如果系统没有提供现成的动态代码加载内核API,则先修改运行中的应用代码,将探针插桩地址处指令改为break指令,并将原指令复制至新代码页中,这样,应用的执行路径因此被动态改变而跳转到新加载的探针函数地址。在执行完探针函数后,执行路径跳转并执行复制的原代码。最后,应用从探针插桩地址下一条指令恢复执行。
然后,在步骤320,动态代码加载工具读入调试用二进制代码文件,并列出调试点的地址信息列表。动态代码加载工具先解析调试用二进制代码中的所有探针信息,以列表方式在嵌入式系统控制台上打印出来,并提示用户选择。例如,打印的调试点列表信息可以包括:调试点ID、与调试代码对应的源文件及行号、探针地址等。同时,可以提供多种调试点过滤器,方便用户选择调试点,例如按模块名、按目录名或按函数名来选择调试点。
接下来,在步骤330,用户选择是否修改调试点。如果用户选择修改调试点,则动态代码加载工具在步骤340更新调试点配置。如果用户确认修改调试点完成,则在步骤350,动态代码加载工具将调试配置结果传递给动态代码加载驱动模块,动态代码加载驱动模块动态修改二进制应用,以加载调试部分代码。例如,动态代码加载工具通过动态代码加载驱动模块提供的编程API将探针插桩地址和探针函数二进制代码传入给动态代码加载驱动模块。然后,动态代码加载驱动模块对探针插桩地址处应用代码进行插桩和使能,来完成动态调试代码的加载。
在步骤360,目标机通过调试代码收集所需的调试信息。加载后的调试代码在执行探针函数过程中收集需要记录的调试跟踪信息,并将调试跟踪信息保存到内核中的跟踪数据缓冲区中。数据的格式可以是从收集到的调试信息编码成的打印字符,也可以编码成二进制格式,如事件时间、类型、名称、参数。这些数据可以以自动覆盖的方式,在调试结束时将跟踪数据缓冲区中最新数据保存到调试信息记录文件中;也可以在调试过程中,以持续记录的方式,将所有数据保存到调试信息记录文件中。
可选地,在步骤370确定用户是否需要调整调试点,如果需要调整调试点,则重复步骤330-360。用户可选择全部或部分选择打开调试点。根据用户的选择结果,可变更实际加载的调试代码。如果确定不需要继续调试,则结束调试。在调试完成后,如果需要,可以用动态代码加载工具注销所有调试探针代码,并恢复应用原来的执行代码。
如上所述,根据本发明相对于现有的静态和动态调试方案,本发明提供了一种发布或生产阶段的嵌入式系统调试方案。和现有静态调试方案(包括插桩和非插桩的形式)的对比,本发明更适合于生产阶段的调试。首先,传统的静态调试方案将调试代码直接生成在应用文件中。无论是否进行调试,都增加了加载应用所需的内存。与之相比,本发明可将调试代码和非调试代码生成在不同文件中。在不调试时,只加载发布的应用,没有任何额外的内存开销。另外,因为传统的静态调试方案将调试代码和正常代码混合输出在同一代码段中,因此,无论是否进行调试,都增加运行时额外性能负担。与之相比,本发明在不调试时没有任何额外的性能开销。
和现有动态调试方案的对比,本发明更易于使用。动态调试方案要求使用特定的编程语言来进行编写,增加开发人员学习难度。动态调试方案用单独的编译环境生成插桩代码,在调试代码中难于解析原应用中复杂数据结构。与之相比,本发明直接在应用源代码插入调试语句,无须学习额外语言。另外,本发明使用和应用源代码一致的编译环境,在调试语句可直接引用原应用中复杂数据结构。另外,动态调试方案要求开发人员提供动态插桩点。除去函数入口外,通常要求开发人员手工分析应用源代码行对应加载指令地址,来确定动态插桩点,不方便使用。本发明直接用嵌入在源文件中调试源代码位置确定动态插桩点,并将调试点信息记录在调试用二进制文件中。开发人员通过动态代码加载工具提示选择调试点即可完成代码插桩,容易使用。
虽然已经参照本发明的若干示例性实施例示出和描述了本发明,但是本领域的技术人员将理解,在不脱离权利要求及其等同物限定的本发明的精神和范围的情况下,可以在形式和细节上做出各种改变。
Claims (8)
1.一种用于生产阶段嵌入式系统的调试系统,包括开发主机和目标机,所述开发机包括:
编译器,读取源代码,并生成非调试软件部分的代码和调试软件部分的代码,其中,源代码包括产品源代码和调试代码,调试代码以宏的形式与产品源代码区分;
链接器,分别利用非调试软件部分的代码和调试软件部分的代码链接生成发布用二进制应用文件和调试用二进制代码,记录与调试点相应的指令地址信息,并根据调试点相应的指令地址信息和调试用二进制代码生成调试用二进制代码文件;
其中,当调试嵌入式系统时,所述目标机的动态代码加载工具解析调试用二进制文件中包含的调试点的二进制调试代码以及调试点在发布用二进制应用程序中的可执行地址,列出调试点列表供用户选择调试点,所述目标机的动态代码驱动内核根据用户选择的调试点动态修改运行中的发布用二进制应用程序以加载调试代码。
2.如权利要求1所述的调试系统,其中,链接器将调试用二进制代码和非调试用二进制代码分别生成为独立的目标文件。
3.如权利要求1所述的调试系统,其中,调试用二进制代码代码文件包含的调试点地址与源代码中调试点下一条非调试源代码生成的可执行代码地址相同。
4.如权利要求1所述的调试系统,其中,根据用户的选择全部或部分地打开调试点,并变更加载的调试代码。
5.一种用于生产阶段嵌入式系统的调试方法,包括:
开发主机端的编译器读取源代码,生成非调试软件部分的代码和调试软件部分的代码,其中,源代码包括产品源代码和调试代码,调试代码以宏的形式与产品源代码区分;
开发主机端的链接器分别利用非调试软件部分的代码和调试软件部分的代码链接生成发布用二进制应用文件和调试用二进制代码,记录与调试点相应的指令地址信息,并根据调试点相应的指令地址信息和调试用二进制代码生成调试用二进制文件;
当调试嵌入式系统时,所述目标机的动态代码加载工具解析调试用二进制文件中包含的调试点的二进制调试代码以及调试点在发布用二进制应用程序中的可执行地址,列出调试点列表供用户选择调试点,所述目标机的动态代码驱动内核根据用户选择的调试点动态修改发布用二进制应用程序以加载调试代码。
6.如权利要求5所述的调试方法,其中,将调试用二进制代码和非调试用二进制代码分别生成为独立的目标文件。
7.如权利要求5所述的调试方法,其中,调试用二进制代码代码文件包含的调试点地址与源代码中调试点下一条非调试源代码生成的可执行代码地址相同。
8.如权利要求5所述的调试方法,其中,根据用户的选择全部或部分地打开调试点,并变更加载的调试代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010205209.3A CN102279789B (zh) | 2010-06-13 | 2010-06-13 | 生产阶段嵌入式系统的调试系统及其调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010205209.3A CN102279789B (zh) | 2010-06-13 | 2010-06-13 | 生产阶段嵌入式系统的调试系统及其调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279789A true CN102279789A (zh) | 2011-12-14 |
CN102279789B CN102279789B (zh) | 2014-02-05 |
Family
ID=45105251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010205209.3A Active CN102279789B (zh) | 2010-06-13 | 2010-06-13 | 生产阶段嵌入式系统的调试系统及其调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279789B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和系统 |
CN103793325A (zh) * | 2014-01-24 | 2014-05-14 | 深圳市同洲电子股份有限公司 | 一种内核调试方法及系统 |
CN104866293A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种对Android应用程序扩展功能的方法及装置 |
CN104991857A (zh) * | 2015-06-08 | 2015-10-21 | 小米科技有限责任公司 | 跟踪调试方法及装置 |
CN107577609A (zh) * | 2017-09-28 | 2018-01-12 | 北京计算机技术及应用研究所 | 一种基于主机端动态链接的嵌入式系统动态模块调试方法 |
CN108519924A (zh) * | 2018-03-06 | 2018-09-11 | 许继集团有限公司 | 一种嵌入式测控装置的在线故障定位方法、系统及装置 |
CN108614704A (zh) * | 2017-01-17 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 代码编译方法及装置 |
CN109144849A (zh) * | 2018-07-23 | 2019-01-04 | 武汉虹信通信技术有限责任公司 | 一种嵌入式软件调测方法 |
CN110837466A (zh) * | 2019-10-15 | 2020-02-25 | 中国电子科技集团公司第三十研究所 | 一种基于源代码打桩的嵌入式软件动态测试方法 |
CN111935622A (zh) * | 2020-08-03 | 2020-11-13 | 深圳创维-Rgb电子有限公司 | 带数字功放电子设备的调试方法、装置、设备及存储介质 |
CN111966602A (zh) * | 2020-09-04 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种定点代码调试方法、系统、终端及存储介质 |
CN112765032A (zh) * | 2021-01-25 | 2021-05-07 | 广州市百果园网络科技有限公司 | 程序调试方法、装置、设备及存储介质 |
CN113377370A (zh) * | 2021-05-18 | 2021-09-10 | 龙芯中科(西安)科技有限公司 | 一种文件处理方法、装置、电子设备及存储介质 |
CN114035855A (zh) * | 2021-09-30 | 2022-02-11 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949187A (zh) * | 2006-11-17 | 2007-04-18 | 深圳市领测科技有限公司 | 一种程序调测系统及方法 |
US20080115115A1 (en) * | 2006-11-15 | 2008-05-15 | Lucian Codrescu | Embedded trace macrocell for enhanced digital signal processor debugging operations |
CN101561779A (zh) * | 2008-04-14 | 2009-10-21 | 国际商业机器公司 | 一种调试方法和调试器 |
CN101706725A (zh) * | 2009-11-20 | 2010-05-12 | 中兴通讯股份有限公司 | 一种可重定位程序的加载及调试方法及系统 |
-
2010
- 2010-06-13 CN CN201010205209.3A patent/CN102279789B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080115115A1 (en) * | 2006-11-15 | 2008-05-15 | Lucian Codrescu | Embedded trace macrocell for enhanced digital signal processor debugging operations |
CN1949187A (zh) * | 2006-11-17 | 2007-04-18 | 深圳市领测科技有限公司 | 一种程序调测系统及方法 |
CN101561779A (zh) * | 2008-04-14 | 2009-10-21 | 国际商业机器公司 | 一种调试方法和调试器 |
CN101706725A (zh) * | 2009-11-20 | 2010-05-12 | 中兴通讯股份有限公司 | 一种可重定位程序的加载及调试方法及系统 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和系统 |
CN103793325A (zh) * | 2014-01-24 | 2014-05-14 | 深圳市同洲电子股份有限公司 | 一种内核调试方法及系统 |
CN104866293B (zh) * | 2014-02-25 | 2018-04-03 | 北京娜迦信息科技发展有限公司 | 一种对Android应用程序扩展功能的方法及装置 |
CN104866293A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种对Android应用程序扩展功能的方法及装置 |
CN104991857B (zh) * | 2015-06-08 | 2019-02-12 | 小米科技有限责任公司 | 跟踪调试方法及装置 |
CN104991857A (zh) * | 2015-06-08 | 2015-10-21 | 小米科技有限责任公司 | 跟踪调试方法及装置 |
CN108614704A (zh) * | 2017-01-17 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 代码编译方法及装置 |
CN108614704B (zh) * | 2017-01-17 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 代码编译方法及装置 |
CN107577609A (zh) * | 2017-09-28 | 2018-01-12 | 北京计算机技术及应用研究所 | 一种基于主机端动态链接的嵌入式系统动态模块调试方法 |
CN107577609B (zh) * | 2017-09-28 | 2021-06-04 | 北京计算机技术及应用研究所 | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 |
CN108519924A (zh) * | 2018-03-06 | 2018-09-11 | 许继集团有限公司 | 一种嵌入式测控装置的在线故障定位方法、系统及装置 |
CN108519924B (zh) * | 2018-03-06 | 2021-02-05 | 许继集团有限公司 | 一种嵌入式测控装置的在线故障定位方法、系统及装置 |
CN109144849A (zh) * | 2018-07-23 | 2019-01-04 | 武汉虹信通信技术有限责任公司 | 一种嵌入式软件调测方法 |
CN110837466A (zh) * | 2019-10-15 | 2020-02-25 | 中国电子科技集团公司第三十研究所 | 一种基于源代码打桩的嵌入式软件动态测试方法 |
CN110837466B (zh) * | 2019-10-15 | 2022-02-08 | 中国电子科技集团公司第三十研究所 | 一种基于源代码打桩的嵌入式软件动态测试方法 |
CN111935622A (zh) * | 2020-08-03 | 2020-11-13 | 深圳创维-Rgb电子有限公司 | 带数字功放电子设备的调试方法、装置、设备及存储介质 |
CN111935622B (zh) * | 2020-08-03 | 2022-02-11 | 深圳创维-Rgb电子有限公司 | 带数字功放电子设备的调试方法、装置、设备及存储介质 |
CN111966602A (zh) * | 2020-09-04 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种定点代码调试方法、系统、终端及存储介质 |
CN111966602B (zh) * | 2020-09-04 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 一种定点代码调试方法、系统、终端及存储介质 |
CN112765032A (zh) * | 2021-01-25 | 2021-05-07 | 广州市百果园网络科技有限公司 | 程序调试方法、装置、设备及存储介质 |
CN113377370A (zh) * | 2021-05-18 | 2021-09-10 | 龙芯中科(西安)科技有限公司 | 一种文件处理方法、装置、电子设备及存储介质 |
CN114035855A (zh) * | 2021-09-30 | 2022-02-11 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
CN114035855B (zh) * | 2021-09-30 | 2023-10-27 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102279789B (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279789B (zh) | 生产阶段嵌入式系统的调试系统及其调试方法 | |
JP4909877B2 (ja) | デバッグ装置及びデバッグ方法 | |
JP2795244B2 (ja) | プログラムデバッグシステム | |
US6286132B1 (en) | Debugging support apparatus, a parallel execution information generation device, a computer-readable recording medium storing a debugging support program, and a computer-readable recording medium storing a parallel execution information generation program | |
US7856619B2 (en) | Method and system for automated testing of a graphic-based programming tool | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
KR100915762B1 (ko) | 통합 개발 환경에서의 의사 번역 | |
US20060041864A1 (en) | Error estimation and tracking tool for testing of code | |
US20050223360A1 (en) | System and method for providing a generic user interface testing framework | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
CN104156314A (zh) | 一种应用于测试系统的代码重用方法 | |
CN112270149A (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
CN105117210A (zh) | 一种面向wscn的图形化编程系统 | |
TWI566090B (zh) | Debugging firmware / software to produce tracking systems and methods, recording media and computer program products | |
US20050229161A1 (en) | Generic user interface testing framework with load-time libraries | |
CN104346274A (zh) | 程序调试器及一种程序的调试方法 | |
CN105630661A (zh) | 用于自动化跨系统程序调试的方法和装置 | |
US20050228644A1 (en) | Generic user interface testing framework with rules-based wizard | |
CN112131116A (zh) | 一种嵌入式软件自动化回归测试方法 | |
US8473903B2 (en) | Code edit apparatus and recording medium | |
CN110554861A (zh) | 具有编译和读取-评估-打印-循环操作的软件开发环境 | |
CN104199770A (zh) | 一种手机音乐apk的自动化测试方法 | |
CN104050069A (zh) | 一种基于Mars评判Verilog实现MIPS处理器正确性的自动化测试方法 | |
CN102270174A (zh) | 自动化测试方法和装置 | |
Preeyanon et al. | Reproducible bioinformatics research for biologists |
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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 5-12 / F, building 6, 57 Andemen street, Yuhuatai District, Nanjing City, Jiangsu Province Patentee after: Samsung Electronics (China) R&D Center Patentee after: SAMSUNG ELECTRONICS Co.,Ltd. Address before: No. 268 Nanjing Huijie square Zhongshan Road city in Jiangsu province 210008 8 floor Patentee before: Samsung Electronics (China) R&D Center Patentee before: SAMSUNG ELECTRONICS Co.,Ltd. |