CN105808424A - 一种适用于多任务软件进程堆栈使用深度检测的方法 - Google Patents

一种适用于多任务软件进程堆栈使用深度检测的方法 Download PDF

Info

Publication number
CN105808424A
CN105808424A CN201610080939.2A CN201610080939A CN105808424A CN 105808424 A CN105808424 A CN 105808424A CN 201610080939 A CN201610080939 A CN 201610080939A CN 105808424 A CN105808424 A CN 105808424A
Authority
CN
China
Prior art keywords
software
process stacks
depth
stack
stacks
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
CN201610080939.2A
Other languages
English (en)
Other versions
CN105808424B (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.)
Beijing Institute of Spacecraft System Engineering
Original Assignee
Beijing Institute of Spacecraft System Engineering
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 Beijing Institute of Spacecraft System Engineering filed Critical Beijing Institute of Spacecraft System Engineering
Priority to CN201610080939.2A priority Critical patent/CN105808424B/zh
Publication of CN105808424A publication Critical patent/CN105808424A/zh
Application granted granted Critical
Publication of CN105808424B publication Critical patent/CN105808424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus

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

一种适用于多任务软件进程堆栈使用深度检测的方法,首先在地面生成堆栈深度检测指令,创建多个进程并分配堆栈区、进程控制块,将所有进程堆栈区均初始化为特定标识,然后执行各个进程,并令应用软件执行最大运行路径测试。同时将堆栈深度检测指令上注至任务软件运行的SRAM中,最后检测得到各个进程中首个不为特定标识的地址,进而计算得到第i个进程堆栈区的使用深度比,并通过测控信道下传到地面。本发明方法与现有技术相比,通过在地面生成堆栈深度检测指令,解决了一般堆栈深度检测需要安装专业检测软件或借助专门硬件的缺点,具有简单易用的优点。

Description

一种适用于多任务软件进程堆栈使用深度检测的方法
技术领域
本发明涉及软件测试领域,特别是一种适用于多任务软件进程堆栈使用深度检测的方法。
背景技术
航天器中央处理单元软件(或综合处理单元软件)通常为大型嵌入式软件,由操作系统软件和应用软件两部分组成,其中,应用软件运行在操作系统软件之上,而操作系统软件为应用软件提供硬件管理、中断管理、进程管理等功能,星载操作系统软件广泛采用RTEMS系统或VxWorks系统。在轨航天器或卫星受硬件水平限制,星载设备计算机的内存资源一般只有几兆字节,分配方法使用静态分配,以避免内存泄露的危险,同时,为保证软件的可靠性和安全性,通常要求内存使用余量大于20%。软件启动后在内存中运行时,内存空间主要被文本段、数据段、进程堆栈区所占用,其中,文本段和数据段的大小由编译后的软件代码决定,内容和长度是固定的。大型航天器星载软件通常是多进程软件,每个进程拥有自己独立的堆栈空间,这部分空间占用了相当大部分的内存。进程堆栈的大小是在应用软件启动之初创建各个进程时配置的,之后不能再更改,因此在软件代码不变的情况下,进程堆栈的大小决定了内存资源的可用余量。
随着航天技术的发展,星载软件功能愈加复杂、内存使用量越来越大,需要合理分配进程堆栈大小,既要确保进程堆栈不会溢出,同时尽量避免不必要的浪费。合理分配进程堆栈大小的关键在于要对进程堆栈使用深度进行准确测量,堆栈使用深度的检测手段有多种,主要分为静态测试和动态测试两类。静态测试技术指的是不依赖于程序的运行就能检测出堆栈溢出的错误,其堆栈使用情况是通过理论分析得到的。静态测试的缺点是难以检测递归调用,因为函数的递归次数在静态下是一个不可确定的参数,因此只能检测部分的堆栈溢出情况。另外,静态分析工具通常都会产生大量错误的警告信息,实际上会加重分析人员的负担。动态测试技术指的是检测过程必须依赖于程序的动态运行,一般需要在程序中插桩或者修改一些指令来检测堆栈溢出。动态测试技术的最主要缺点在于只能检测出真正发生动态溢出的代码。实际上只有极少量的代码能够触发堆栈溢出,因此动态测试技术并不能检测出所有可能的堆栈溢出代码,其测试到的堆栈深度往往会小于等于堆栈的实际最大深度。另外上述这些测试手段一般需要借助专门的工具,测试和分析也比较复杂,并不一定适用于航天器应用软件。
例如,德国Absint公司开发的StackAnalyzer工具采用静态测试方法,可以自动分析应用程序中最差情况下的堆栈使用情况,分析结果以标注的形式在调用关系图和控制流图中显示。上海创景公司的RTInsight嵌入式平台测试工具通过结合LDRA公司的代码自动插桩技术,通过硬件手段可以对指定进程堆栈区域的内存地址访问情况进行监测,从而获得进程堆栈使用深度,属于一种动态测试手段。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种适用于多任务软件进程堆栈使用深度检测的方法。
本发明的技术解决方案是:一种适用于多任务软件进程堆栈使用深度检测的方法,包括如下步骤:
(1)在地面生成堆栈深度检测指令;所述的堆栈深度检测指令为可以通过遥控通道上注至航天器星载任务软件运行的SRAM中的进行进程堆栈使用深度检测的可执行代码;
(2)使用航天器星载应用软件所在操作系统为航天器星载应用软件创建N个进程,同时为每个创建的进程分配堆栈区、进程控制块,其中,N为≥2的正整数;所述的进程控制块包括进程堆栈区的起始地址和结束地址;
(3)根据每个进程控制块中的进程堆栈区的起始地址和结束地址,将所有进程堆栈区均初始化为特定标识;所述的特定标识为任意确定的数值;
(4)将各个进程放入执行队列并控制各个进程获得执行,获取航天器星载应用软件的最大运行路径测试用例,然后令航天器星载应用软件执行最大运行路径测试;所述的最大运行路径测试是指能够引发航天器星载应用软件所有进程堆栈调用的测试;
(5)通过在轨维护方式上注堆栈深度检测指令至航天器星载任务软件运行的SRAM中;
(6)从第i个进程堆栈区的最低地址开始检查,直至检测得到首个不为特定标识的地址,并作为第i个进程被使用过的最大深度地址,然后计算得到第i个进程堆栈区的使用深度比为
[第i个进程被使用过的最大深度地址-第i个进程堆栈区的起始地址]/[第i个进程堆栈区的结束地址-第i个进程堆栈区的起始地址]
其中,i=1,2,3…,N,i的初值为1;
(7)i=i+1,重复步骤(6)直至i=N,进而分别得到N个进程堆栈区的第一使用深度比;
(8)将所有进程堆栈区均初始化为另一个特定标识,重复步骤(4)-步骤(7),分别得到N个进程堆栈区的第二使用深度比;
(9)将第i个进程堆栈区的max{第一使用深度比、第二使用深度比}作为第i个进程堆栈区的修正使用深度比,遍历所有的i得到N个进程堆栈区的修正使用深度比,并通过测控信道下传到地面。
所述的航天器星载应用软件所在操作系统为RTEMS或VxWroks。
所述的特定标识为任意确定的特定十六进制数。
所述的特定标识为特定标识为0xEE。
本发明与现有技术相比的优点在于:
(1)本发明方法与现有技术相比,通过在地面生成堆栈深度检测指令,解决了一般堆栈深度检测需要安装专业检测软件或借助专门硬件的缺点,具有简单易用的优点;
(2)本发明方法通过调用地面生成上传的堆栈深度检测指令来检测每个进程堆栈区不为特定标识的地址,进而计算得到每个进程堆栈区的使用深度,执行进程堆栈深度检测的手段,克服了现有技术中动态测试手段的插桩方法会影响被测应用软件正常运行的缺陷,在实现任务软件进程堆栈使用深度检测的同时,没有对应用软件各进程的正常功能性能造成影响;
(3)本发明方法与现有技术相比,首先通过执行各个进程并令航天器星载应用软件执行最大运行路径测试,然后进行使用深度检测,克服了静态测试方法需要测试人员花费大量精力对静态测试结果有效性进行判读的缺陷,实现了测试结果直接反映进程堆栈实际使用深度的效果。
附图说明
图1为本发明一种适用于多任务软件进程堆栈使用深度检测的方法原理流程图;
图2为本发明方法中嵌入式多任务软件内存空间分配示意图;
图3为本发明方法中进程堆栈空间分配情况示意图;
图4为本发明方法中使用深度检测工作流程图。
具体实施方式
本发明提供了一种适用于多任务软件的进程堆栈使用深度检测的方法。大型多任务星载软件运行在操作系统软件之上,其接收处理通过测控信道上注的遥控指令,并将星上编排的遥测数据通过测控信道下传到地面接收设备。本发明中,利用航天器的上行遥控通道,通过在轨维护的方式将堆栈深度检测软件上注到星载软件中,检测执行完成后,再通过内存读出的形式将检测结果通过下行遥测通道传到地面接收设备,操作步骤如图1所示。
以运行在RTEMS或VxWroks操作系统之上的星载应用软件为例,在应用软件开始运行之初,首先调用操作系统提供的进程创建函数创建多个进程(基于RTEMS操作系统调用rtems_task_create()函数,基于VxWorks操作系统调用taskSpawn()函数)。在创建多个进程的过程中,操作系统内核会在内存中为每个进程分配堆栈区并在进程堆栈区中维护一个进程控制块结构体,该结构体中存放着该进程运行所需的一切信息,其中,所需的一切信息包括用于进程堆栈深度检测所需的相关参数,内核通过该结构体来控制进程的运行。该结构体的内存地址可通过应用软件与操作系统软件的接口函数获取,对于RTEMS系统来说rtems_task_create()函数的第6个函数参数即为被创建进程的进程控制块地址,对于VxWorks系统来说,taskSpawn()函数的返回值即为被创建进程的进程控制块地址。分析进程控制块结构体的成员内容,可以获得进程堆栈的起始地址和堆栈大小等信息,对于RTEMS系统来说,进程控制块中的进程启动信息块(结构体变量名为Start)中保存了进程堆栈的起始地址和大小等信息,对于VxWorks系统来说,进程控制块中的pStackBase和pStackLimit变量分别保存了进程堆栈的起始地址和结束地址。以创建了N个进程的应用软件为例,内存空间被分为文本段、数据段、BSS段和进程堆栈区等,每个进程维护着一个进程控制块,该控制块之后即为该进程的堆栈区。进程在运行过程中进行函数调用,调用过程中的函数返回地址、函数形参、局部变量等将根据函数间的调用关系执行进栈或出栈操作,嵌入式多任务软件内存空间分配情况如图2所示。
应用软件创建各进程后,在进程被调度执行之前,需要根据上一步骤中获得的进程堆栈起始地址和堆栈大小等信息将各个进程堆栈空间初始化为特定标识(可以使用0xEE)。之后应用软件将各进程放入执行队列,各个进程按照调度情况获得执行。在进程执行过程中,如果发生多层次函数调用,调用过程中的函数返回地址、函数形参、局部变量等将被执行入栈操作,此时进程堆栈空间分配情况将如图3所示,被压入过堆栈的数据会将原来初始化的特定标识内容覆盖。
进程堆栈中初始化内容被覆盖的深度取决于进程函数的调用情况,只有在特定情况下才会执行到进程堆栈的最大深度调用,因此在上注堆栈深度检测软件之前,应设计应用软件测试用例,设置软件运行中可能遇到的各种触发条件,对被测软件执行强度测试或最大运行路径测试,使软件中各个函数模块均能被覆盖执行。
如果将检测软件作为应用软件的一部分添加到代码中,将会导致软件编译后的文本段和数据段变大,占用宝贵的PROM空间,且该功能并不是应用软件功能的一部分,仅用于地面测试使用,客观上两者不应该混为一体。由于应用软件的SRAM中通常留有20%以上的余量用于未来软件功能扩展,可以在需要开展进程堆栈深度测试时,将堆栈深度检测软件通过在轨维护的方式对应用软件进行更新。这里的“在轨维护”是指,地面可以对指定SRAM地址的数据内容进行重新写入。在轨维护可通过在轨维护指令将需要重新写入的SRAM起始地址、写入数据长度以及要写入的数据内容上注给应用软件,并由应用软件执行写入操作。在轨维护通过两步完成,第一步是将一段新功能的二进制可执行代码写入到SRAM的空闲区域,如果该二进制代码超出了在轨维护指令的最大允许长度,则需要分多次进行上注;第二步是将待更新函数模块的入口地址修改为新函数模块的入口地址。这种方法避免了对应用软件本身进行修改(应用软件中不必含有堆栈深度检测软件),且可以随时上注在轨维护指令,上注之后即启动堆栈深度检测。
应用软件通常会维护一个空闲自检进程,该进程运行在系统时间片空闲时段,通常该空闲时段占整个系统时间片的20%以上,以满足时间性能要求。为避免对其它进程的功能性能产生影响,本发明的一种较佳实施例是,将堆栈深度检测程序作为空闲自检进程主函数的一部分功能运行。该实施例中,原空闲自检进程主函数(记为func1)保持不变,新增一个空闲自检进程新主函数(记为func2),该函数模块中除包含原空闲自检进程主函数的代码外,还新增了进程堆栈深度检测功能的代码,之后将该新函数模块(func2)与应用软件一起编译,编译后获得空闲自检进程新主函数(func2)的二进制可执行代码,将该段可执行代码按照在轨维护指令的格式封装为遥控指令(记为cmd1),上注cmd1指令后,应用软件将空闲自检进程新主函数(func2)的二进制可执行代码写入到SRAM的空闲区域。之后,分别获得原空闲自检进程主函数(func1)和包含了堆栈深度检测函数的空闲自检进程新主函数(func2)的入口地址,按照在轨维护指令的格式制作遥控指令(记为cmd2),上注cmd2指令后,应用软件将原来的空闲自检进程主函数(func1)入口地址改为包含了堆栈深度检测函数的空闲自检进程新主函数(func2)入口地址。
上注cmd1和cmd2指令后,应用软件开始执行堆栈深度检测。堆栈深度检测软件的工作流程为,首先从进程堆栈区的最低地址开始检查,凡是内容为特定标识内容的地址可以认为没有保存过入栈数据,检测到首个不为特定标识内容的地址,即可视为堆栈被使用过的最大范围的地址,该地址减去进程堆栈起始地址即可获得该进程的堆栈使用深度。根据应用软件启动之初创建的进程个数,对所有进程堆栈执行上述检测操作。使用深度检测工作流程图如图4所示。
检测结果以全局变量的形式保存在SRAM中,并被新的检测结果不断更新,结果内容包括各进程堆栈空间大小和各进程堆栈使用深度,其中,进程堆栈使用深度保存的是开始检测之后的最大实际使用值。之后即可执行检测结果的内存读出,这里的“内存读出”是指应用软件会根据地面上注的内存读出指令将指定地址和指定长度的SRAM数据内容封装到遥测帧中,通过测控信道下传到地面。内存读出的具体步骤是,首先获得保存了检测结果的全局变量的内存地址,制作内存读出指令并上注到星上,指令中内存读出起始地址为检测结果全局变量的内存地址,内存读出数据长度为全局变量数组的长度。应用软件将保存了检测结果的数据组织到遥测帧中,并通过测控信道下传给地面测试设备,供软件开发人员和测试人员查看。
在软件运行中的任意时刻都可以通过上注在轨维护指令执行检测功能,并可在之后任意时刻上注内存读出指令获得检测结果,但是由于软件实际测出的是堆栈使用过的最大深度,因此建议在执行软件强度测试或者触发深层次的函数调用之后,再获取测试结果,此时的结果更具有实际参考意义。
本发明具体实施过程中,步骤一中将各进程堆栈区初始化为特定标识内容,如果遇到进程函数调用过程中,压入进程堆栈的函数局部变量恰好与特定标识内容相同的情况,将会导致堆栈深度测量结果不准确。因此,一种较佳的实施例为,第一次使用一种特定标识将进程堆栈区初始化,执行检测并记录测试结果后,再执行第二遍测试,第二遍测试时使用另外一种特定标识将进程堆栈区初始化,再次执行检测并记录测试结果,取两次结果中的较大值。即通过使用不同的初始特定标识执行两次独立的检测,来避免压入进程堆栈的函数局部变量恰好与特定标识内容相同导致测量结果不准确的问题。
本发明中涉及星载计算机操作系统软件时,以RTEMS系统和VxWorks系统为例进行说明,但该发明并非仅限于这两款操作系统软件,任何基于其它操作系统的嵌入式应用软件均可基于本发明中的思路,采取类似的步骤执行进程堆栈深度检测。
综上所述,以上仅为本发明的一种较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (4)

1.一种适用于多任务软件进程堆栈使用深度检测的方法,其特征在于包括如下步骤:
(1)在地面生成堆栈深度检测指令;所述的堆栈深度检测指令为可以通过遥控通道上注至航天器星载任务软件运行的SRAM中的进行进程堆栈使用深度检测的可执行代码;
(2)使用航天器星载应用软件所在操作系统为航天器星载应用软件创建N个进程,同时为每个创建的进程分配堆栈区、进程控制块,其中,N为≥2的正整数;所述的进程控制块包括进程堆栈区的起始地址和结束地址;
(3)根据每个进程控制块中的进程堆栈区的起始地址和结束地址,将所有进程堆栈区均初始化为特定标识;所述的特定标识为任意确定的数值;
(4)将各个进程放入执行队列并控制各个进程获得执行,获取航天器星载应用软件的最大运行路径测试用例,然后令航天器星载应用软件执行最大运行路径测试;所述的最大运行路径测试是指能够引发航天器星载应用软件所有进程堆栈调用的测试;
(5)通过在轨维护方式上注堆栈深度检测指令至航天器星载任务软件运行的SRAM中;
(6)从第i个进程堆栈区的最低地址开始检查,直至检测得到首个不为特定标识的地址,并作为第i个进程被使用过的最大深度地址,然后计算得到第i个进程堆栈区的使用深度比为
[第i个进程被使用过的最大深度地址-第i个进程堆栈区的起始地址]/[第i个进程堆栈区的结束地址-第i个进程堆栈区的起始地址]
其中,i=1,2,3…,N,i的初值为1;
(7)i=i+1,重复步骤(6)直至i=N,进而分别得到N个进程堆栈区的第一使用深度比;
(8)将所有进程堆栈区均初始化为另一个特定标识,重复步骤(4)-步骤(7),分别得到N个进程堆栈区的第二使用深度比;
(9)将第i个进程堆栈区的max{第一使用深度比、第二使用深度比}作为第i个进程堆栈区的修正使用深度比,遍历所有的i得到N个进程堆栈区的修正使用深度比,并通过测控信道下传到地面。
2.根据权利要求1所述的一种适用于多任务软件进程堆栈使用深度检测的方法,其特征在于:所述的航天器星载应用软件所在操作系统为RTEMS或VxWroks。
3.根据权利要求1或2所述的一种适用于多任务软件进程堆栈使用深度检测的方法,其特征在于:所述的特定标识为任意确定的特定十六进制数。
4.根据权利要求1或2所述的一种适用于多任务软件进程堆栈使用深度检测的方法,其特征在于:所述的特定标识为特定标识为0xEE。
CN201610080939.2A 2016-02-04 2016-02-04 一种适用于多任务软件进程堆栈使用深度检测的方法 Active CN105808424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610080939.2A CN105808424B (zh) 2016-02-04 2016-02-04 一种适用于多任务软件进程堆栈使用深度检测的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610080939.2A CN105808424B (zh) 2016-02-04 2016-02-04 一种适用于多任务软件进程堆栈使用深度检测的方法

Publications (2)

Publication Number Publication Date
CN105808424A true CN105808424A (zh) 2016-07-27
CN105808424B CN105808424B (zh) 2018-08-07

Family

ID=56466370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610080939.2A Active CN105808424B (zh) 2016-02-04 2016-02-04 一种适用于多任务软件进程堆栈使用深度检测的方法

Country Status (1)

Country Link
CN (1) CN105808424B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191346A (zh) * 2019-12-11 2020-05-22 上海航天控制技术研究所 一种空间飞行器软件在轨运行实例数据还原方法及介质
CN114648869A (zh) * 2022-03-10 2022-06-21 东方电子股份有限公司 一种电力保护测控装置遥控指令操作方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272551A (zh) * 2007-03-23 2008-09-24 中兴通讯股份有限公司 一种嵌入式系统最大栈空间的设定方法
KR20110036243A (ko) * 2009-10-01 2011-04-07 콘티넨탈 오토모티브 시스템 주식회사 실시간 스택 검사 시스템 및 그 방법
CN103870244A (zh) * 2014-02-21 2014-06-18 北京神舟航天软件技术有限公司 一种sparc平台任务栈溢出检测算法
CN104572448A (zh) * 2014-12-23 2015-04-29 大唐移动通信设备有限公司 一种线程堆栈的使用情况的实现方法和装置
CN104679645A (zh) * 2013-11-28 2015-06-03 中国航空工业集团公司航空动力控制系统研究所 一种栈空间余量实时检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272551A (zh) * 2007-03-23 2008-09-24 中兴通讯股份有限公司 一种嵌入式系统最大栈空间的设定方法
KR20110036243A (ko) * 2009-10-01 2011-04-07 콘티넨탈 오토모티브 시스템 주식회사 실시간 스택 검사 시스템 및 그 방법
CN104679645A (zh) * 2013-11-28 2015-06-03 中国航空工业集团公司航空动力控制系统研究所 一种栈空间余量实时检测方法
CN103870244A (zh) * 2014-02-21 2014-06-18 北京神舟航天软件技术有限公司 一种sparc平台任务栈溢出检测算法
CN104572448A (zh) * 2014-12-23 2015-04-29 大唐移动通信设备有限公司 一种线程堆栈的使用情况的实现方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191346A (zh) * 2019-12-11 2020-05-22 上海航天控制技术研究所 一种空间飞行器软件在轨运行实例数据还原方法及介质
CN111191346B (zh) * 2019-12-11 2023-09-29 上海航天控制技术研究所 一种空间飞行器软件在轨运行实例数据还原方法及介质
CN114648869A (zh) * 2022-03-10 2022-06-21 东方电子股份有限公司 一种电力保护测控装置遥控指令操作方法
CN114648869B (zh) * 2022-03-10 2023-03-14 东方电子股份有限公司 一种电力保护测控装置遥控指令操作方法

Also Published As

Publication number Publication date
CN105808424B (zh) 2018-08-07

Similar Documents

Publication Publication Date Title
US7900198B2 (en) Method and system for parameter profile compiling
US8578216B2 (en) Execution history tracing method
CN103064784B (zh) 面向Xen环境的运行时内存泄漏检测方法及其实现系统
CN106325970A (zh) 编译方法和编译系统
US20130132933A1 (en) Automated compliance testing during application development
US8887141B2 (en) Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information
US20110191752A1 (en) Method and System for Debugging of Software on Target Devices
CN103309800B (zh) 一种网页自动化测试方法和系统
CN102681938B (zh) 一种内存泄漏检测方法及装置
CN103440457A (zh) 基于进程模拟的二进制程序分析系统
KR20100121226A (ko) 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법
US10725889B2 (en) Testing multi-threaded applications
CN103389939A (zh) 一种针对堆可控分配漏洞的检测方法及系统
US20080127119A1 (en) Method and system for dynamic debugging of software
CN103631708A (zh) 程序测试方法及程序测试装置
CN105630563A (zh) 基于xml的继电保护装置规约的动态模型配置方法
CN114818565A (zh) 基于python的仿真环境管理平台、方法、设备及介质
US20080127118A1 (en) Method and system for dynamic patching of software
CN104850476A (zh) 跨平台接口自动化测试方法及系统
CN105808424A (zh) 一种适用于多任务软件进程堆栈使用深度检测的方法
CN103197947A (zh) 脚本处理方法及装置
US10108400B1 (en) Rapid avionics development environment
CN101206616A (zh) 一种图形界面程序的资源泄漏测试及问题定位方法
CN109901831A (zh) 软件的多平台兼容运行方法及兼容运行装置
CN104978227B (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
GR01 Patent grant
GR01 Patent grant