CN106201892A - 用于嵌入式软件的异常中断源定位检测方法 - Google Patents

用于嵌入式软件的异常中断源定位检测方法 Download PDF

Info

Publication number
CN106201892A
CN106201892A CN201610577298.1A CN201610577298A CN106201892A CN 106201892 A CN106201892 A CN 106201892A CN 201610577298 A CN201610577298 A CN 201610577298A CN 106201892 A CN106201892 A CN 106201892A
Authority
CN
China
Prior art keywords
software
aborted
anomaly
interrupts
software anomaly
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
CN201610577298.1A
Other languages
English (en)
Other versions
CN106201892B (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.)
AECC Aero Engine Control System Institute
Original Assignee
AVIATION POWER CONTROL SYSTEM RESEARCH INSTITUTE OF AVIATION INDUSTRY Corp OF CHINA
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 AVIATION POWER CONTROL SYSTEM RESEARCH INSTITUTE OF AVIATION INDUSTRY Corp OF CHINA filed Critical AVIATION POWER CONTROL SYSTEM RESEARCH INSTITUTE OF AVIATION INDUSTRY Corp OF CHINA
Priority to CN201610577298.1A priority Critical patent/CN106201892B/zh
Publication of CN106201892A publication Critical patent/CN106201892A/zh
Application granted granted Critical
Publication of CN106201892B publication Critical patent/CN106201892B/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

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、确定CPU内核级的异常中断,并在所述异常中断中选取软件可触发的异常中断,且在软件运行的任务中进行插桩以及设置故障代码,以使得软件在运行到插桩代码时,触发所选定的软件异常中断;S2、启动并运行软件,在触发上述软件异常中断后,对所述软件异常中断的中断信息进行捕获;S3、将上述捕获软件异常中断的中断信息发送至上位机内,上位机根据所述软件异常中断的中断信息进行触发软件异常中断的中断分析,以确定触发所述软件异常中断的中断源。本发明操作方便,能快速实现异常中断源的有效定位,提高测试异常处理的有效性,安全可靠。

Description

用于嵌入式软件的异常中断源定位检测方法
技术领域
本发明涉及一种检测方法,尤其是一种用于嵌入式软件中的异常中断源定位检测方法,属于中断定位检测的技术领域。
背景技术
异常属于中断中的一种特例,它是对CPU级别中出现非期望指令的一种响应,对于高安全性系统,异常中断处理往往是软件中最后的一道保护门槛,在该处理中,可以通过监测栈空间的值,将产生异常的源头给定位。在嵌入式软件中,对其处理至关重要。但在现有国内大多数嵌入式软件中,由于对异常的理解不深入,异常处理往往比较粗略,难以对软件触发的异常源进行定位,增大了异常源分析的难度。
国内现有的异常监测手段主要采用一些器件,如仿真器、逻辑分析仪、示波器等,通过在软件中采用插庄的方式,对异常进行捕捉与异常源定位,由于软件中产生异常是非常隐蔽的,采用该方法难以找到异常源,且排查过程较长。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种用于嵌入式软件的异常中断源定位检测方法,其操作方便,能快速实现异常中断源的有效定位,提高测试异常处理的有效性,安全可靠。
按照本发明提供的技术方案,一种用于嵌入式软件的异常中断源定位检测方法,所述异常中断源定位检测方法包括如下步骤:
S1、确定CPU内核级的异常中断,并在所述异常中断中选取软件可触发的异常中断,且在软件运行的任务中进行插桩以及设置故障代码,以使得软件在运行到插桩代码时,触发所选定的软件异常中断;
S2、启动并运行软件,在触发上述软件异常中断后,对所述软件异常中断的中断信息进行捕获;
S3、将上述捕获软件异常中断的中断信息发送至上位机内,上位机根据所述软件异常中断的中断信息进行触发软件异常中断的中断分析,以确定触发所述软件异常中断的中断源。
所述步骤S2具体包括如下步骤:
S2-1、对每个软件异常中断进行中断服务函数的挂接,在每个软件异常中断服务函数中调用异常信息保存功能函数以及打印功能函数;
S2-2、在异常中断服务函数中对异常中断号、异常中断恢复地址、异常产生时的状态以及异常产生时程序访问的地址数据进行获取,从而捕获软件异常中断的中断信息。
所述步骤S3中,上位机根据软件异常中断的中断分析,能得到软件异常中断的异常中断号、发生异常中断的代码位置以及进入异常中断时访问的地址数据;通过查询软件手册确定异常中断源的类型,通过map文件查找发生异常中断的代码位置对应的函数名称,以确定触发所述软件异常中断的中断源。
本发明的优点:可实现对嵌入式软件的异常中断的实时检测,并通过检测到的异常中断信息来具体定位发生异常的代码位置及机器状态,实现异常中断源的精确定位,以此来为软件开发以及软件运行过程中产生的非预期的异常中断提供一种有效的排故定位手段。同时,通过插桩以及故障代码的设置能够测试异常保护的有效性,安全可靠。
附图说明
图1为本发明的流程图。
图2为本发明具体实施例对应的软件异常中断汇报的流程图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
如图1所示:为了能快速实现异常中断源的有效定位,提高测试异常处理的有效性,本发明异常中断源定位检测方法包括如下步骤:
S1、确定CPU内核级的异常中断,并在所述异常中断中选取软件可触发的异常中断,且在软件运行的任务中进行插桩以及设置故障代码,以使得软件在运行到插桩代码时,触发所选定的软件异常中断;
本发明实施例中,对于确定的CPU而言,其对应内核级的异常中断为确定已知的,且异常中断中软件可触发的异常中断也能随之确定,具体为本技术领域人员所熟知,此处不再赘述。对于选定的软件可触发异常中断,为了能够进入所述软件异常中断,需要在软件运行的任务中进行插桩以及设置故障代码,从而使得软件在运行到插桩代码时,能够触发所选定的软件异常中断。对于确定的软件异常中断,可以采用本技术领域常用的技术手段实现插桩以及设置故障代码,具体的实现过程为本技术领域人员所熟知,此处不再赘述。
S2、启动并运行软件,在触发上述软件异常中断后,对所述软件异常中断的中断信息进行捕获;
本发明实施例中,所述步骤S2具体包括如下步骤:
S2-1、对每个软件异常中断进行中断服务函数的挂接,在每个软件异常中断服务函数中调用异常信息保存功能函数以及打印功能函数;
S2-2、在异常中断服务函数中对异常中断号、异常中断恢复地址、异常产生时的状态以及异常产生时程序访问的地址数据进行获取,从而捕获软件异常中断的中断信息。
本发明实施例中,根据具体的软件,采用本技术领域常用的技术手段实现对中断服务函数的挂接、异常信息保存功能函数的调用以及打印功能函数的调用,具体为本技术领域人员所熟知,此处不再赘述。
在异常中断服务函数中,获取异常中断号、异常中断恢复地址、异常产生时的状态以及异常产生时程序访问的地址数据。其中异常产生时的状态指异常产生时刻的器件的工作模式,主要包括了中断及异常的掩码设置、系统权限以及一些其它状态模式,用以分析并确认异常产生时的状态情况。异常产生时程序访问的地址数据帮助定位引发异常时的代码位置。在异常中断服务函数中取得上述信息后,将上述获取的内容存储到非易失性存储器内,即获取软件异常中断的终端信息。
S3、将上述捕获软件异常中断的中断信息发送至上位机内,上位机根据所述软件异常中断的中断信息进行触发软件异常中断的中断分析,以确定触发所述软件异常中断的中断源。
本发明实施例中,将获取软件异常中断的中断信息发送至上位机内的过程实现异常中断信息的汇报。具体实施时,为了实现异常中断信息向上位机的汇报,需要对CPU内的通讯功能进行初始化,并使得软件可使用CPU的资源进行数据发送。从而,在获取上述的中断信息后,将中断信息进行打包,并将打包后的数据传输至上位机;在软件中可以设置的时间延时,以保证数据量能够发送完成,具体实现与上位机之间通讯以及数据发送的过程为本技术领域人员所熟知,此处不再赘述。
上位机根据软件异常中断的中断分析,能得到软件异常中断的异常中断号、发生异常中断的代码位置以及进入异常中断时访问的地址数据;通过查询软件手册确定异常中断源的类型,通过map文件查找发生异常中断的代码位置对应的函数名称,以确定触发所述软件异常中断的中断源。具体实施时,通过上述的中断分析,可以对软件异常中断的触发精确定位到某行代码。
以嵌入式软件为例,对本发明的具体过程进行详细说明。具体地,控制软件的运行平台为PowerPC5554处理器,、具体实施过程为:
PowerPC5554处理器上共有19个内核级异常,选择IVOR13异常中断作为软件触发中断。IVOR13为TLB地址命中失败异常,对未定义的地址空间进行访问即会触发此异常中断。在软件初始化完成后,即可插桩对未定义的地址空间进行访问,例如0x50000000。
在中断初始化时,对每个异常中断进行中断服务函数的挂接,在中断服务函数中调用异常信息汇报函数reportExceptionInfo。
在软件进行初始化时,对PowerPC5554处理器上的DMA通道进行初始化,并配置串口发送。设计logMsg功能函数,用于实现与上位机通讯的功能。
在异常信息汇报函数reportExceptionInfo中获取异常中断号,对中断寄存器DEAR、ESR、SRR0、SRR1(CSRR0、CSRR1)等进行访问。
在reportExceptionInfo函数中获取异常源信息之后调用logMsg将获取到的信息通过串口发送到上位机,并在reportExceptionInfo函数最后设置相应的延迟时间,如图2所示。
通过获取上位机的数据,并对比程序编译生成的map文件,可以很容易的定位产生了IVOR13号异常,异常代码的位置在插桩函数内,异常产生时程序访问的地址为0x50000000。
本发明可实现对嵌入式软件的异常中断的实时检测,并通过检测到的异常中断信息来具体定位发生异常的代码位置及机器状态,实现异常中断源的精确定位,以此来为软件开发以及软件运行过程中产生的非预期的异常中断提供一种有效的排故定位手段。同时,通过插桩以及故障代码的设置能够测试异常保护的有效性,安全可靠。

Claims (3)

1.一种用于嵌入式软件的异常中断源定位检测方法,其特征是,所述异常中断源定位检测方法包括如下步骤:
S1、确定CPU内核级的异常中断,并在所述异常中断中选取软件可触发的异常中断,且在软件运行的任务中进行插桩以及设置故障代码,以使得软件在运行到插桩代码时,触发所选定的软件异常中断;
S2、启动并运行软件,在触发上述软件异常中断后,对所述软件异常中断的中断信息进行捕获;
S3、将上述捕获软件异常中断的中断信息发送至上位机内,上位机根据所述软件异常中断的中断信息进行触发软件异常中断的中断分析,以确定触发所述软件异常中断的中断源。
2.根据权利要求1所述的用于嵌入式软件的异常中断源定位检测方法,其特征是,所述步骤S2具体包括如下步骤:
S2-1、对每个软件异常中断进行中断服务函数的挂接,在每个软件异常中断服务函数中调用异常信息保存功能函数以及打印功能函数;
S2-2、在异常中断服务函数中对异常中断号、异常中断恢复地址、异常产生时的状态以及异常产生时程序访问的地址数据进行获取,从而捕获软件异常中断的中断信息。
3.根据权利要求1所述的用于嵌入式软件的异常中断源定位检测方法,其特征是,所述步骤S3中,上位机根据软件异常中断的中断分析,能得到软件异常中断的异常中断号、发生异常中断的代码位置以及进入异常中断时访问的地址数据;通过查询软件手册确定异常中断源的类型,通过map文件查找发生异常中断的代码位置对应的函数名称,以确定触发所述软件异常中断的中断源。
CN201610577298.1A 2016-07-20 2016-07-20 用于嵌入式软件的异常中断源定位检测方法 Active CN106201892B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610577298.1A CN106201892B (zh) 2016-07-20 2016-07-20 用于嵌入式软件的异常中断源定位检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610577298.1A CN106201892B (zh) 2016-07-20 2016-07-20 用于嵌入式软件的异常中断源定位检测方法

Publications (2)

Publication Number Publication Date
CN106201892A true CN106201892A (zh) 2016-12-07
CN106201892B CN106201892B (zh) 2019-02-01

Family

ID=57491920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610577298.1A Active CN106201892B (zh) 2016-07-20 2016-07-20 用于嵌入式软件的异常中断源定位检测方法

Country Status (1)

Country Link
CN (1) CN106201892B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933661A (zh) * 2017-02-27 2017-07-07 百富计算机技术(深圳)有限公司 一种调试嵌入式系统多中断的方法和装置
CN107577571A (zh) * 2017-09-22 2018-01-12 迈普通信技术股份有限公司 问题定位方法及多核处理器
CN109189598A (zh) * 2018-08-01 2019-01-11 百富计算机技术(深圳)有限公司 一种中断定位的方法、处理器及终端设备
CN109522206A (zh) * 2018-09-26 2019-03-26 平安科技(深圳)有限公司 异常数据定位方法、装置、计算机设备及存储介质
CN109766273A (zh) * 2018-12-27 2019-05-17 百富计算机技术(深圳)有限公司 死循环的定位方法、装置、计算机设备和存储介质
CN109788352A (zh) * 2018-12-25 2019-05-21 深圳市纽格力科技有限公司 一种基于mips架构的机顶盒异常确认方法和系统
CN110058999A (zh) * 2019-03-13 2019-07-26 平安普惠企业管理有限公司 电子装置、应用程序异常定位方法及存储介质
CN111061644A (zh) * 2019-12-25 2020-04-24 南京大学 一种检测并定位异常抛出处理缺陷的方法和装置
CN112131098A (zh) * 2020-08-07 2020-12-25 国家电网有限公司 一种用于对电能表软件进行测试的方法及系统
CN112363860A (zh) * 2020-11-11 2021-02-12 中国建设银行股份有限公司 一种批处理作业异常中断检测方法及装置
CN112860473A (zh) * 2021-04-27 2021-05-28 武汉深之度科技有限公司 程序运行错误时定位源代码的方法、装置及计算设备
CN113157519A (zh) * 2021-03-04 2021-07-23 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式计算机系统故障辅助定位架构及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1779652A (zh) * 2004-11-24 2006-05-31 中兴通讯股份有限公司 一种调试操作系统内核态程序的方法及装置
US20080270840A1 (en) * 2007-04-25 2008-10-30 Samsung Electronics Co., Ltd. Device and method for testing embedded software using emulator
CN102789413A (zh) * 2011-05-23 2012-11-21 同济大学 一种并行程序的调试系统及方法
CN103294596A (zh) * 2013-05-23 2013-09-11 西安电子科技大学 一种基于程序不变量的合约式软件故障预警方法
CN105260312A (zh) * 2015-10-26 2016-01-20 北京航空航天大学 一种多核实时系统应用数据竞争错误的调试方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1779652A (zh) * 2004-11-24 2006-05-31 中兴通讯股份有限公司 一种调试操作系统内核态程序的方法及装置
US20080270840A1 (en) * 2007-04-25 2008-10-30 Samsung Electronics Co., Ltd. Device and method for testing embedded software using emulator
CN102789413A (zh) * 2011-05-23 2012-11-21 同济大学 一种并行程序的调试系统及方法
CN103294596A (zh) * 2013-05-23 2013-09-11 西安电子科技大学 一种基于程序不变量的合约式软件故障预警方法
CN105260312A (zh) * 2015-10-26 2016-01-20 北京航空航天大学 一种多核实时系统应用数据竞争错误的调试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨东: "ARM嵌入式系统异常调试的研究和实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
门松: "一种基于伪断点的嵌入式应用软件调试方法的研究", 《信息技术与信息化》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933661A (zh) * 2017-02-27 2017-07-07 百富计算机技术(深圳)有限公司 一种调试嵌入式系统多中断的方法和装置
CN106933661B (zh) * 2017-02-27 2020-06-02 百富计算机技术(深圳)有限公司 一种调试嵌入式系统多中断的方法和装置
CN107577571B (zh) * 2017-09-22 2021-04-30 迈普通信技术股份有限公司 问题定位方法及多核处理器
CN107577571A (zh) * 2017-09-22 2018-01-12 迈普通信技术股份有限公司 问题定位方法及多核处理器
CN109189598A (zh) * 2018-08-01 2019-01-11 百富计算机技术(深圳)有限公司 一种中断定位的方法、处理器及终端设备
CN109189598B (zh) * 2018-08-01 2022-01-25 百富计算机技术(深圳)有限公司 一种中断定位的方法、处理器及终端设备
CN109522206A (zh) * 2018-09-26 2019-03-26 平安科技(深圳)有限公司 异常数据定位方法、装置、计算机设备及存储介质
CN109522206B (zh) * 2018-09-26 2023-09-26 平安科技(深圳)有限公司 异常数据定位方法、装置、计算机设备及存储介质
CN109788352A (zh) * 2018-12-25 2019-05-21 深圳市纽格力科技有限公司 一种基于mips架构的机顶盒异常确认方法和系统
CN109766273A (zh) * 2018-12-27 2019-05-17 百富计算机技术(深圳)有限公司 死循环的定位方法、装置、计算机设备和存储介质
CN110058999A (zh) * 2019-03-13 2019-07-26 平安普惠企业管理有限公司 电子装置、应用程序异常定位方法及存储介质
CN111061644A (zh) * 2019-12-25 2020-04-24 南京大学 一种检测并定位异常抛出处理缺陷的方法和装置
CN112131098A (zh) * 2020-08-07 2020-12-25 国家电网有限公司 一种用于对电能表软件进行测试的方法及系统
CN112363860A (zh) * 2020-11-11 2021-02-12 中国建设银行股份有限公司 一种批处理作业异常中断检测方法及装置
CN113157519A (zh) * 2021-03-04 2021-07-23 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式计算机系统故障辅助定位架构及方法
CN113157519B (zh) * 2021-03-04 2024-05-24 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式计算机系统故障辅助定位架构及方法
CN112860473A (zh) * 2021-04-27 2021-05-28 武汉深之度科技有限公司 程序运行错误时定位源代码的方法、装置及计算设备

Also Published As

Publication number Publication date
CN106201892B (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN106201892A (zh) 用于嵌入式软件的异常中断源定位检测方法
CN103699480B (zh) 一种基于java的web动态安全漏洞检测方法
CN109583200B (zh) 一种基于动态污点传播的程序异常分析方法
CN112380542B (zh) 基于错误场景生成的物联网固件漏洞挖掘方法及系统
US10474565B2 (en) Root cause analysis of non-deterministic tests
CN101482846A (zh) 基于可执行代码逆向分析的漏洞挖掘方法
EP2565790A1 (en) Method and system for injecting simulated errors
US20030084376A1 (en) Software crash event analysis method and system
CN108519925A (zh) 一种iOS闪退保护策略
CN104699617A (zh) 一种游戏用自动化测试方法
CN111259399A (zh) 用于web应用的动态检测漏洞攻击的方法及系统
CN104572428A (zh) 基于windows操作系统下的复杂控件测试方法
CN101706752B (zh) 一种软件错误现场定位的方法及装置
CN101320416A (zh) 一种检测软件处于调试状态的方法和系统
Dong et al. Post-deployment anomaly detection and diagnosis in networked embedded systems by program profiling and symptom mining
Dong et al. D2: Anomaly detection and diagnosis in networked embedded systems by program profiling and symptom mining
CN105447389A (zh) 基于Peach平台的漏洞定位与快速重现
CN113806789B (zh) 一种基于游戏内存隐私保护系统
CN105718375A (zh) 嵌入式系统的可恢复性度量方法
CN110795739A (zh) 一种基于动态调试的缓冲区漏洞检查系统和方法
CN115129495A (zh) 故障处理方法、装置、终端设备及计算机可读存储介质
CN111212029A (zh) 一种敏感数据监测与跟踪方法
CN105718326B (zh) 嵌入式系统的可恢复性测试方法
CN117435507B (zh) 自适应通用退避测试方法及系统
Ray et al. Debugging memory issues in embedded linux: a case study

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
CP03 Change of name, title or address

Address after: No. 104, Liangxi Road, Binhu District, Wuxi City, Jiangsu Province

Patentee after: AECC AERO ENGINE CONTROL SYSTEM INSTITUTE

Address before: 214063 Jiangsu province Binhu District of Wuxi City Liangxi Road No. 792

Patentee before: AVIC AVIATION MOTOR CONTROL SYSTEM INSTITUTE

CP03 Change of name, title or address