KR20150127334A - Run-time fault detecting method using execution hooking and information tag - Google Patents

Run-time fault detecting method using execution hooking and information tag Download PDF

Info

Publication number
KR20150127334A
KR20150127334A KR1020140053937A KR20140053937A KR20150127334A KR 20150127334 A KR20150127334 A KR 20150127334A KR 1020140053937 A KR1020140053937 A KR 1020140053937A KR 20140053937 A KR20140053937 A KR 20140053937A KR 20150127334 A KR20150127334 A KR 20150127334A
Authority
KR
South Korea
Prior art keywords
time
run
defect detection
information
defect
Prior art date
Application number
KR1020140053937A
Other languages
Korean (ko)
Other versions
KR101601414B1 (en
Inventor
최병주
오정훈
장승연
양승완
서주영
Original Assignee
현대자동차주식회사
이화여자대학교 산학협력단
기아자동차주식회사
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 현대자동차주식회사, 이화여자대학교 산학협력단, 기아자동차주식회사 filed Critical 현대자동차주식회사
Priority to KR1020140053937A priority Critical patent/KR101601414B1/en
Publication of KR20150127334A publication Critical patent/KR20150127334A/en
Application granted granted Critical
Publication of KR101601414B1 publication Critical patent/KR101601414B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Abstract

The present invention discloses a run-time fault detecting method and a recording medium recording a run-time fault detecting program. According to one embodiment of the present invention, the run-time detecting method includes the following steps: (a) loading fault detecting modules corresponding to monitoring object modules, to which an information tagging function and a fault detecting function are added; (b) hooking execution paths of the monitoring object modules to the fault detecting modules; and (c) detecting a run-time fault by tagging an information tag to data generated according to the execution of the fault detecting modules and examining the information tag at a time when the data is used.

Description

실행 후킹과 정보 태깅을 이용하는 런-타임 결함 탐지 방법{Run-time fault detecting method using execution hooking and information tag}[0001] The present invention relates to a method for detecting a run-time fault using execution hooking and information tagging,

본 발명은 런-타임 결함 탐지 방법에 관한 것으로서, 보다 구체적으로는, 실행 후킹(execution hooking)과 정보 태깅(information tagging)을 이용하는 런-타임 결함 탐지 방법에 관한 것이다.
The present invention relates to a method for detecting a run-time fault, and more particularly, to a method for detecting a run-time fault using execution hooking and information tagging.

런-타임 결함이란 프로세스가 실행되는 동안 발생하는 결함을 의미하며, 시스템을 다운시키거나 프로그램 실행을 중단시키기도 한다. 이러한 런-타임 결함을 분석하기 위하여 일반적으로 결함이 발생한 순간의 데이터를 수집하여 결함을 재현하려 시도한다.A run-time defect is a defect that occurs during the execution of a process, which may cause the system to crash or to halt program execution. In order to analyze such run-time defects, generally attempts are made to reproduce defects by collecting data at the moment of occurrence of defects.

실행 순간을 결정짓는 데이터에 있어서, 일반적인 시스템의 경우에는 사용자 입력의 비중이 큰 반면, 임베디드 시스템(embeded system)의 경우에는 사용자 입력뿐만 아니라 외부 환경으로부터 입력되는 데이터도 다양하다. 예를 들어 차량에 탑재되는 AVN(Audio Video Navigation) 시스템의 경우 위성센터로부터 수신되는 GPS 좌표 값, 방송국으로부터 수신되는 라디오 주파수, 교통 상황을 알려주는 TPEG 신호와 같이 외부 환경으로부터 다양한 입력이 있게 되며, 그러한 외부 입력들은 시스템의 실행에 중요한 영향을 미친다. 이처럼 임베디드 시스템에서는 실행을 결정짓는 데이터가 다양하기 때문에 발생 결함과 관련된 데이터를 수집하는 것도 너무 광범위한 일이며 이를 토대로 결함을 재현하는 것도 쉽지 않다.In the case of the embedded system, the data input from the external environment as well as the user input vary in the data for determining the execution time, while the input of the user input is large in the general system. For example, in an AVN (Audio Video Navigation) system mounted on a vehicle, there are various inputs from an external environment such as a GPS coordinate value received from a satellite center, a radio frequency received from a broadcasting station, and a TPEG signal indicating traffic conditions. Such external inputs have a significant impact on the performance of the system. In this way, it is not easy to recreate defects on the basis of data gathering related to occurrence defects because of the variety of data that determines execution in an embedded system.

한편, 런-타임 결함을 재현하기 위해 결함이 발생한 순간의 시스템 상태를 덤핑(dumping)하는 기법과 실행 히스토리를 저장했다가 롤백(rollback)을 통해 역추적하는 기법들이 많이 이용된다.On the other hand, to reproduce run-time faults, techniques for dumping the system state at the time of occurrence of a defect, and techniques for storing an execution history and backtracking through rollback are widely used.

덤핑 정보는 시스템이 다운될 때 그 순간의 시스템의 런-타임 상태를 분석하는데 도움이 된다. 하지만 일반적으로 시스템이 다운되는 시점이 실제 결함을 야기한 시점과 일치하지 않는 경우가 더 많으므로, 덤핑 정보만으로는 디버깅(debugging)을 위한 소스 코드의 위치를 파악하기가 쉽지 않다.Dumping information helps to analyze the run-time state of the system at that moment when the system goes down. In general, however, it is not easy to determine the location of source code for debugging by dumping information alone, since the point at which the system goes down does not coincide with the point at which the actual defect occurred.

그리고, 결함 위치를 추적하려면 실행 히스토리를 저장해야 하는데, 특히 임베디드 시스템의 경우에는 외부 입력에 의해 실행이 결정되는 경우가 많기 때문에 저장해야 할 테이터의 규모도 방대할 뿐 아니라, 결함을 야기한 시점을 알 수 없기 때문에 실행 히스토리를 어느 정도의 깊이로 저장해야 할지를 결정하기 어렵다.In order to track the defect location, the execution history must be stored. In particular, in the case of the embedded system, since the execution is determined by the external input in many cases, the size of the data to be stored is not only large but also the time It is difficult to determine how deep the execution history should be stored.

또한, 시스템이 다운되지 않고 데드락(deadlock) 상태이거나 메모리 누수(memory leak)와 같이 결함 증상이 겉으로 드러나지 않는 잠재 결함의 경우에는 아예 덤프 정보가 생성되지 않게 되는 한계도 있다. 따라서 시스템 다운이 발생하지 않는 경우 런-타임 결함에 대한 디버깅은 더욱 어려워진다.
In addition, in the case of a potential defect in which the system is not brought down and deadlocked or a defect such as a memory leak is not exposed, there is a limitation that no dump information is generated at all. Therefore, debugging against run-time faults becomes more difficult if system down does not occur.

본 발명의 목적은, 결함 발생 이후에 결함을 재현하는 방식을 벗어나 시스템이 실행되는 동안 결함을 탐지하여 결함 유형과 디버깅 정보를 제공함으로써 런-타임 결함 탐지의 정확성을 높이면서도 그에 소요되는 노력을 줄일 수 있는 방안을 제공하는 것이다.It is an object of the present invention to provide a defect type and debugging information by detecting defects during execution of the system, and improving the accuracy of run-time defect detection, It is to provide a plan that can be done.

상기 목적을 달성하기 위해, 본 발명은, (a) 모니터링 대상 모듈들에 대응하며 정보 태깅 기능 및 결함 탐지 기능이 추가된 결함 탐지 모듈들을 로딩시키는 단계; (b) 상기 모니터링 대상 모듈들의 실행 경로를 상기 결함 탐지 모듈들로 후킹하는 단계; 및 (c) 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하고 상기 데이터의 사용 시점에서 상기 정보 태그를 검사하여 런-타임 결함을 탐지하는 단계;를 포함하는 런-타임 결함 탐지 방법을 제공한다.According to an aspect of the present invention, there is provided a method for monitoring a plurality of modules, the method comprising: (a) loading defect detection modules corresponding to modules to be monitored and to which an information tagging function and a defect detection function are added; (b) hooking the execution path of the monitoring target modules to the defect detection modules; And (c) tagging the information tag with data generated according to the execution of the defect detection modules and inspecting the information tag at the time of use of the data to detect a run-time defect. ≪ / RTI >

상기 (c) 단계는, (c1) 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하는 단계; (c2) 상기 데이터의 사용 시점에서 상기 태그 정보를 검사하여 런-타임 결함을 탐지하는 단계; (c3) 탐지된 런-타임 결함의 유형 및 디버깅 정보를 기록하는 단계; 및 (c4) 모니터링 대상 모듈의 본래 기능을 수행하는 단계;를 포함할 수 있다.The step (c) includes the steps of: (c1) tagging the information tag with data generated according to execution of the defect detection modules; (c2) inspecting the tag information at the time of use of the data to detect a run-time defect; (c3) recording the type of the detected run-time defect and debugging information; And (c4) performing the original function of the monitored module.

상기 런-타임 결함 탐지 방법은, (d) 탐지된 런-타임 결함의 유형과 디버깅 정보를 분석하고, 분석 결과를 사용자에게 제공하는 단계;를 더 포함할 수 있다.The method may further include: (d) analyzing the type of the detected run-time defect and debugging information, and providing the analysis result to a user.

상기 (a), (b), 및 (c) 단계는 모니터링 대상 시스템에서 수행되고, 상기 (d) 단계는 상기 모니터링 대상 시스템과 유선 또는 무선으로 통신하는 호스트 기기에서 수행될 수 있다.The steps (a), (b), and (c) may be performed in a monitored system, and the step (d) may be performed in a host device communicating with the monitored system in a wired or wireless manner.

상기 정보 태그에는 데이터 주소 공간, 데이터 초기화 여부, 및 주소 공간의 유효 사이즈가 기록될 수 있다.
In the information tag, a data address space, data initialization status, and effective size of an address space may be recorded.

상기 목적을 달성하기 위해, 본 발명은, 런-타임 결함 탐지 프로그램이 기록된 기록 매체로서, 상기 런-타임 결함 탐지 프로그램은, 모니터링 대상 모듈들에 대응하며, 정보 태깅 기능 및 결함 탐지 기능이 추가된 결함 탐지 모듈들; 상기 결함 탐지 모듈들을 로딩시키는 컴포넌트 관리 모듈; 및 상기 모니터링 대상 모듈들의 실행 경로를 상기 결함 탐지 모듈들로 후킹하는 후킹 모듈;을 포함하며, 상기 결함 탐지 모듈들은, 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하고 상기 데이터의 사용 시점에서 상기 정보 태그를 검사하여 런-타임 결함을 탐지하는 수행하는, 런-타임 결함 탐지 프로그램이 기록된 기록 매체를 제공한다.In order to attain the above object, the present invention provides a recording medium on which a run-time defect detection program is recorded, wherein the run-time defect detection program corresponds to monitoring target modules and includes an information tagging function and a defect detection function Defect detection modules; A component management module for loading the defect detection modules; And a hooking module for hooking the execution path of the monitoring target modules to the defect detection modules, wherein the defect detection modules are configured to tag the information tag with data generated according to the execution of the defect detection modules, And a run-time defect is detected by inspecting the information tag at the time of use, and a run-time defect detection program is recorded.

상기 런-타임 결함 탐지 프로그램은, 탐지된 런-타임 결함의 유형과 디버깅 정보를 분석하고 분석 결과를 사용자에게 제공하는 분석 모듈을 더 포함할 수 있다.
The run-time fault detection program may further include an analysis module for analyzing the type of the detected run-time fault and debugging information, and providing the analysis result to the user.

본 발명에 의하면, 결함 발생 이후에 결함 재현을 통해 결함을 분석하지 않고, 정보 태깅 기법을 사용하여 프로세스가 실행되는 런-타임에 결함 발생을 탐지하므로, 디버깅이 필요한 코드 위치 정보 탐색의 정확성을 크게 개선할 수 있을 뿐만 아니라 그 위치 정보 탐색에 드는 노력을 최소화할 수 있다.According to the present invention, defect occurrence is detected in a run-time in which a process is executed using an information tagging technique without analyzing a defect through defect reproduction after occurrence of a defect, so that accuracy of code location information search requiring debugging is greatly improved And it is possible to minimize the effort to search for the location information.

그리고, 본 발명에 의하면, 정보 태깅을 통해 런-타임에 결함 발생 가능성을 판단하고 그 판단의 결과로 탐지되는 결함들만을 선별적으로 디버깅 정보로 제공하는 방식을 취하므로, 쉐도우 메모리 기법 등의 종래 기술에서 발생되는 메모리 공간 오버헤드(memory space overhead) 및 성능 오버헤드(performance overhead) 문제가 해소될 수 있다.According to the present invention, a method of determining the possibility of occurrence of a defect at run-time through information tagging and selectively providing only detected defects as the result of the determination is provided as debugging information. Therefore, The problems of memory space overhead and performance overhead generated in the technique can be solved.

그리고, 본 발명에 의하면, 프로세스가 실행되는 런-타임에 결함을 탐지하므로, 시스템이 다운되는 경우에 결함 탐지가 가능함은 물론, 데드락 상태 또는 메모리 누수와 같이 결함 증상이 겉으로 드러나지 않는 잠재 결함들에 대해서도 결함 탐지가 가능한 이점이 있다.According to the present invention, since the defect is detected at the run-time in which the process is executed, it is possible to detect a defect when the system is down, and to detect a defect such as a deadlock state or a memory leak, There is an advantage that defect detection can be performed.

또한, 본 발명에 의하면, 결함을 재현하는 방식을 취하지 않으므로, 사용자 입력 외에 다양한 외부 입력이 수신되는 차량용 네비게이션 시스템과 같은 임베디드 시스템에 특히 유용하게 적용될 수 있다.
Further, according to the present invention, since the method of reproducing defects is not adopted, it can be particularly usefully applied to an embedded system such as a navigation system for a vehicle in which various external inputs other than user input are received.

도 1은 본 발명에 따른 정보 태그의 일 예를 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 런-타임 결함 탐지 프로그램을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 런-타임 결함 탐지 방법을 나타낸 흐름도이다.
도 4는 런-타임 결함 탐지 방법의 제4 단계(결함 탐지 단계)를 구체적으로 보이는 흐름도이다.
1 is a view for explaining an example of an information tag according to the present invention.
2 is a block diagram illustrating a run-time fault detection program according to an embodiment of the present invention.
3 is a flowchart illustrating a method of detecting a run-time fault according to an embodiment of the present invention.
4 is a flowchart specifically illustrating a fourth step (defect detection step) of the run-time defect detection method.

이하에서는 첨부된 도면들을 참조하여 본 발명에 대해 보다 상세히 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described more fully hereinafter with reference to the accompanying drawings.

본 발명은 런-타임 결함의 디버깅을 위해 결함 발생 이후 결함을 재현하는 방식을 벗어나, 프로세스가 실행되는 동안에 즉 런-타임에 결함 발생 가능성을 탐지하여 결함 유형과 디버깅 포인트를 제공하는 방안을 제시한다.The present invention proposes a method for providing a defect type and a debugging point by detecting the possibility of occurrence of a defect during run-time, that is, at run-time, out of a method of reproducing a defect after occurrence of a defect for debugging a run-time defect .

본 발명이 제안하는 방안은, 런-타임 결함과 관련된 프로세스 모듈들의 실행 순간을 후킹(hooking)하고, 프로세스가 실행되는 동안 런-타임으로 결함 탐지에 필수적인 정보를 데이터에 태깅(tagging)하여 그 태그 정보를 토대로 런-타임 결함을 탐지하는 방식이다.The method proposed by the present invention is to hook an execution moment of process modules related to a run-time defect and to tag data that is essential for defect detection at run-time during the execution of the process, It is a method to detect run-time faults based on information.

이와 같이 본 발명이 제안하는 방안은 런-타임 결함 분석을 위해 '실행 후킹'과 '정보 태깅' 기법을 사용한다는 점을 주목할 필요가 있다. 이에 '후킹'과 '정보 태깅'에 대해 소개한 후 본 발명의 실시예에 대해 구체적으로 살펴보기로 한다.
It should be noted that the method proposed by the present invention uses 'execution hooking' and 'information tagging' techniques for run-time defect analysis. Hereinafter, the 'hooking' and the 'information tagging' will be described, and then an embodiment of the present invention will be described in detail.

모니터링monitoring 시점  Point 후킹Hooking ::

'후킹' 은 특정 목적을 위해 실행 타임에 시스템의 운영과 제어 방식을 가로채어 원하는 방향으로 변경하는 프로그래밍 기법을 의미하며, 프로세스의 실행 상황을 런-타임에 모니터링하기에 유용한 방식이다.'Hooking' refers to a programming technique that intercepts the operation and control of the system at runtime for a specific purpose and changes it to the desired direction. It is a useful method for monitoring the execution status of a process run-time.

일반적으로 프로세스가 실행될 때 사용되는 프로그램 모듈들의 호출은 시스템의 커널 공간(kernel space)에 속한 프로세스 제어 블록(process control block: PCB)을 통해 관리된다. 프로세스가 어떤 모듈을 실행하고자 그 모듈을 호출하면 프로세스 제어 블록(PCB)은 호출된 모듈이 저장된 주소를 제공하여 호출된 모듈이 실행될 수 있도록 한다.In general, calls to program modules used when a process is executed are managed through a process control block (PCB) belonging to the system's kernel space. When a process calls a module to execute a module, the process control block (PCB) provides the address where the called module is stored so that the called module can be executed.

본 발명의 경우, 어떤 모니터링 대상 모듈의 호출이 있을 때 그 모듈의 본래 기능(original function)에 더하여 런-타임 결함 탐지를 위한 추가 기능을 가진 대체 모듈 이른바 '결함 탐지 모듈'이 대신 호출되도록, PCB 상의 모니터링 대상 모듈의 주소를 결함 탐지 모듈의 주소로 후킹하는 방식이 사용된다. 후킹에 필요한 프로세스 제어 블록 정보들은 커널의 내부 자료구조이므로, 이러한 후킹 방식이 적용되기 위해서는 커널 공간에 접근하여 호출된 모듈 주소를 후킹하는 커널 드라이버로서 '후킹 모듈(hooking module)'이 필요하다. In the case of the present invention, when there is a call to a monitored module, an alternative module with an additional function for run-time defect detection in addition to the original function of the module is called instead of a so-called ' A method of hooking the address of the module to be monitored on the basis of the address of the defect detection module is used. Since the process control block information necessary for hooking is an internal data structure of the kernel, a hooking module is required as a kernel driver for hooking the called module address to access the kernel space in order to apply such a hooking method.

메모리 결함 탐지를 예로 들면, 하기 [표 1]에 기재된 프로그램 모듈들이 모니터링 대상 모듈로 선정될 수 있다.For example, in the case of memory defect detection, the program modules described in [Table 1] below can be selected as monitoring target modules.


모니터링 목적

Purpose of Monitoring

모니터링 대상 모듈

Monitored module

크래쉬 포인트
모니터링

Crash Point
monitoring

SIGSEGV, SIGABRT, SIGFPE의 시그널 핸들러들

Signal handlers for SIGSEGV, SIGABRT, and SIGFPE



디버깅 포인트
모니터링




Debugging point
monitoring


MEMORY

MEMORY

malloc(), calloc(), realloc(), free(), memcpy(), memmove(), memset(), memchr(), memalign()

(), memchr (), memalign (), memcove (), malloc (), calloc (), realloc

STRING

STRING

strlen(), strcpy(), strcat(), strcmp(), strchr()

(), strcm (), strchr (), strcat

I/O

I / O

open(), close(), read(), write()

open (), close (), read (), write ()

대부분의 운영체제들은 시스템이 크래쉬(crash)되는 런-타임 결함이 발생하는 경우 SIGSEGV, SIGABRT, SIGFPE와 같이 시스템 충돌의 원인과 연관된 시그널을 발생시키며, 담당 시그널 핸들러(signal handler)를 통해 시스템 충돌 순간의 시스템 상태 정보를 덤프하도록 설계되어 있다. 따라서, 크래쉬 포인트(crash point)를모니터링하고자 하는 경우, [표 1]에 기재된 바와 같은 SIGSEGV, SIGABRT, SIGFPE의 시그널 핸들러들을 모니터링 대상 모듈로 선정하여 그 대상 모듈들이 호출되는 시점을 모니터링할 필요가 있다.Most operating systems generate signals related to system crashes, such as SIGSEGV, SIGABRT, and SIGFPE, in case of a run-time fault that causes the system to crash, and signal handlers It is designed to dump system state information. Therefore, when a crash point is to be monitored, it is necessary to select SIGSEGV, SIGABRT, and SIGFPE signal handlers as shown in [Table 1] as monitoring target modules and to monitor when the target modules are called .

결함이 실제 시작되는 디버깅 포인트(debugging point)에 대한 정보를 얻기 위해서는 시그널 핸들러가 호출될 때의 상태 정보 만으로는 부족하며 그 이전에 실행되었던 히스토리 정보가 필요하다. 따라서, 디버깅 포인트 모니터링을 위해서는 메모리 결함 안전에 취약한 것으로 알려진 [표 1]에 기재된 malloc(), calloc(), realloc(), strlen(), strcpy(), open(), close() 등의 함수들(모듈들)의 실행 시점을 모니터링할 필요가 있다.In order to obtain information about the debugging point at which the defect actually starts, the state information at the time of calling the signal handler is insufficient and history information that has been executed before is needed. Therefore, for debugging point monitoring, functions such as malloc (), calloc (), realloc (), strlen (), strcpy (), open (), close It is necessary to monitor the execution timing of the modules (modules).

이와 같이 크래쉬 포인트 모니터링 목적의 대상 모듈들로는 SIGSEGV, SIGABRT, SIGFPE의 시그널 핸들러들이 선정될 수 있고 디버깅 포인트 모니터링 목적의 대상 모듈로는 malloc(), calloc(), realloc(), strlen(), strcpy(), open(), close() 등의 함수들이 선정될 수 있는데, 이러한 대상 모듈들의 실행 시점을 모니터링하기 위해 본 발명에서는 후킹 기법을 적용하여 각 대상 모듈들의 실행 시점에서 결함 탐지 기능을 추가로 가진 전술한 결함 탐지 모듈로 후킹한다. 예로써, 모니터링 대상 모듈인 'malloc()'가 호출되면 그 모듈이 실행되는 것이 아니라 malloc() 모듈에 대응하는 결함 탐지 모듈이 실행됨으로써, malloc() 모듈의 실행 시점이 모니터링될 수 있다.
SIGSEGV, SIGABRT, and SIGFPE signal handlers can be selected as target modules for the purpose of crash point monitoring. Target modules for debugging point monitoring include malloc (), calloc (), realloc (), strlen ), open (), close (), etc. In order to monitor the execution time of the target modules, the present invention employs a hooking technique to additionally have a defect detection function at the execution time of each target module Hooks to the above-described defect detection module. For example, if 'malloc ()' is called, the execution time of the malloc () module can be monitored by executing the fault detection module corresponding to the malloc () module instead of executing the module.

런-타임 정보 태깅Run-time information tagging ::

시스템 크래쉬로 덤핑된 데이터를 통해서 시스템 충돌 위치, 즉 크래쉬 포인트를 알아내는 것은 가능하지만, 디버깅 포인트를 파악하기에는 충분하지 않다. 또한 시스템이 다운된 것처럼 보이지만 실제 데드락이 걸린 hang-up 상태라든지, 메모리 누수와 같이 결함의 증상이 나타나지 않고 프로세스가 정상 동작하는 것처럼 보이는 잠재 결함의 경우엔 크래쉬 덤프 파일이 생성조차 되지 않는다.It is possible to determine the system crash location, or crash point, through data dumped by a system crash, but it is not sufficient to identify the debugging point. In addition, a crash dump file is not generated even if the system appears to be down, but in the case of a hang-up state with real deadlocks, potential defects that do not exhibit symptoms of defects such as memory leaks, and the process seems to operate normally.

이에 본 발명은, 디버깅 포인트를 보다 쉽게 파악할 수 있도록 하기 위해 그리고 시스템 크래쉬가 나지 않은 경우에도 디버깅 포인트를 파악할 수 있도록 하기 위해, '런-타임 정보 태깅' 방안을 제안한다. 이러한 런-타임 정보 태깅은, 데이터가 유효성을 런-타임에 판단하여 결함 발생 여부를 가려내기 위해서 원본 데이터에 '정보 태그(information tag)'라고 불리는 결함 판정에 필요한 정보가 기록되는 추가 필드를 함께 저장하는 것이다.Accordingly, the present invention proposes a 'run-time information tagging' method in order to more easily grasp the debugging point and to allow the debugging point to be grasped even when the system crash does not occur. In this run-time information tagging, an additional field in which information necessary for a defect judgment called an 'information tag' is recorded in the original data is determined in order to judge whether the defect is generated by judging the validity of the data at the run- .

정보 태그의 일 예를 도시한 도 1을 참조하면, 정보 태그(2)는 런-타임 결합 탐지에 필요한 데이터 속성이 저장되는 필드로서 원본 데이터(1)에 태깅된다. 예로써, 메모리 결함을 탐지하기 위한 목적이라면 도 1에 도시된 바와 같이 정보 태그(2)에는 데이터 주소 공간(a), 데이터 초기화 여부(u), 및 주소 공간의 유효 사이즈(s)가 저장될 수 있다.Referring to FIG. 1 showing an example of an information tag, an information tag 2 is tagged with original data 1 as a field in which a data attribute necessary for run-time combination detection is stored. For example, if the purpose is to detect memory defects, data address space (a), data initialization (u), and effective size (s) of the address space are stored in the information tag 2 as shown in FIG. 1 .

본 발명에서 이러한 정보 태깅은 전술한 결함 탐지 모듈에 의해 수행되며 그러한 정보 태깅에 의해 생성된 태그 또한 결함 탐지 모듈에 의해서만 접근 가능하다. 구체적으로 설명하면, 어떤 모니터링 대상 모듈(예로써, malloc(), calloc() 등)이 대응되는 결함 탐지 모듈로 후킹되면, 프로세스 실행 과정에서는 결함 탐지 모듈이 대신 실행되며, 이때 결함 탐지 모듈은 그 실행에 관련된 데이터가 생성될 때 원본 데이터(1) 만을 생성하지 않고 원본 데이터(1)에 정보 태그(2)가 태깅된 확장 데이터(3)가 생성되도록 한다. 그리고, 결함 탐지 모듈은 그 확장 데이터(3)가 사용되는 시점에서 확장 데이터(3)의 정보 태그(2)에 저장된 결함 탐지용 정보로부터 런-타임 결함 발생 가능성을 예측한다. 이처럼 결함 탐지 모듈은 정보 태깅 기능 및 결함 탐지 기능을 추가로 가짐으로써 일반적인 프로세스 모듈과 달리 런-타임 결함을 탐지할 수 있다.
In the present invention, this information tagging is performed by the above-described defect detection module, and the tag generated by such information tagging is also accessible only by the defect detection module. Specifically, when a monitoring target module (for example, malloc (), calloc (), etc.) is hooked to the corresponding defect detection module, the defect detection module is executed instead in the process execution process, When the data related to the execution is generated, the extended data 3 tagged with the information tag 2 is generated in the original data 1 without generating only the original data 1. The defect detection module predicts the possibility of a run-time defect from the defect detection information stored in the information tag 2 of the extended data 3 at the time when the extended data 3 is used. As such, the defect detection module has an information tagging function and an additional defect detection function, thereby detecting run-time defects unlike a general process module.

모니터링 시점 후킹 및 런-타임 정보 태깅에 대한 이상의 설명에 기초하여, 이하에서는 본 발명에 따른 런-타임 결함 탐지 프로그램 및 런-타임 결함 탐지 방법의 실시예에 대해 설명한다.
Time fault detection program and run-time fault detection method according to the present invention will be described below with reference to the above description of monitoring point-in-time hooking and run-time information tagging.

먼저, 도 2를 참조하여 본 발명에 따른 런-타임 결함 탐지 프로그램의 일 실시예를 설명한다.First, an embodiment of a run-time fault detection program according to the present invention will be described with reference to FIG.

도 2를 참조하면, 본 발명의 실시예에 따른 런-타임 결함 탐지 프로그램(100)은, 컴포넌트 관리 모듈(110), 후킹 모듈(120), 결함 탐지 모듈들(130), 및 분석 모듈(140)을 포함한다.Referring to FIG. 2, a run-time fault detection program 100 according to an exemplary embodiment of the present invention includes a component management module 110, a hooking module 120, defect detection modules 130, ).

컴포넌트 관리 모듈(110)은 다른 컴포넌트들(120,130,140)을 초기화하고 테스트 대상 프로세스에 호출하는 역할을 수행한다.The component management module 110 initializes the other components 120, 130, and 140 and performs a call to the test target process.

후킹 모듈(120)은 커널 공간에 접근 가능한 커널 드라이버로서 모니터링 대상 모듈들을 그에 대응하는 결함 탐지 모듈들(130)로 후킹하는 역할을 수행한다. 앞서 설명한 바와 같이, 후킹 모듈(120)에 의한 모니터링 시점 후킹은 프로세스 제어 블록(PCB)에 저장된 모니터링 대상 모듈의 주소를 결함 탐지 모듈의 주소로 후킹하는 방식으로 달성될 수 있다.The hooking module 120 is a kernel driver accessible to the kernel space and hooks the modules to be monitored to the corresponding defect detection modules 130. As described above, the monitoring point hooking by the hooking module 120 can be achieved by hooking the address of the monitoring target module stored in the process control block (PCB) to the address of the defect detecting module.

결함 탐지 모듈(130)은 정보 태깅 기능 및 결함 탐지 기능이 추가된 대체 모듈들로서, 런-타임 결함 탐지 프로그램(100)이 수행될 때, 대응되는 모니터링 대상 모듈들을 대신하여 실행된다.The defect detection module 130 is an alternative module to which an information tagging function and a defect detection function are added, and is executed in place of the corresponding monitoring target modules when the run-time defect detection program 100 is executed.

분석 모듈(140)은 테스트 결과를 분석하는 모듈로서 결함 탐지 모듈(130)에서 수집하여 기록한 결함 유형 및 디버깅 정보가 저장된 테스트 로그를 분석하여 사용자 또는 개발자에게 결함의 위치와 원인, 디버깅 유효 정보들을 표시 장치 등을 통해 보고한다.The analysis module 140 is a module for analyzing a test result and analyzes the test log in which the defect type and debugging information collected and recorded by the defect detection module 130 are analyzed to notify the user or the developer of the location and cause of the defect, Device, and so on.

이러한 분석 모듈(140)은 테스트 대상 시스템에서 실행될 수도 있고, 테스트 대상 시스템과 유선 또는 무선으로 통신 가능한 별도의 호스트 기기에서 실행될 수도 있다. 분석 모듈(140)이 별도의 호스트 기기에서 실행되는 경우, 런-타임 결함 탐지 프로그램(100)은 분석 모듈(140)을 제외하고 전술한 모듈들(110,120,130) 만으로 구성될 수도 있다.The analysis module 140 may be executed in the test target system or in a separate host device capable of communicating with the test target system by wire or wireless. When the analysis module 140 is executed in a separate host device, the run-time defect detection program 100 may be composed of only the modules 110, 120, and 130 except for the analysis module 140.

이러한 런-타임 결함 탐지 프로그램(100)은 디지털 처리 장치에 의해 판독 가능한 기록매체에 저장되어 사용될 수 있다. 여기서 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 디스크 등과 같은 디지털 처리 장치에 의해 판독 가능한 모든 기록 수단을 가리키며, 네트워크로 연결된 둘 이상의 컴퓨터 시스템에 의해 분산 방식으로 실행 가능한 유형의 것들까지 포함한다.
Such a run-time defect detection program 100 can be stored and used in a recording medium readable by a digital processing apparatus. Here, the recording medium refers to all recording means readable by a digital processing apparatus such as a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical disk and the like, .

다음으로, 도 3 및 4를 참조하여 전술한 런-타임 결함 탐지 프로그램(100)을 이용한 런-타임 결함 탐지 방법의 일 실시예를 설명한다. 도 3은 본 발명의 실시예에 따른 런-타임 결함 탐지 방법을 나타낸 흐름도이며, 도 4는 런-타임 결함 탐지 방법의 제4 단계(결함 탐지 단계)를 구체적으로 보이는 흐름도이다.Next, an embodiment of a method for detecting a run-time fault using the run-time fault detection program 100 described above with reference to Figs. 3 and 4 will be described. FIG. 3 is a flowchart illustrating a method for detecting a run-time fault according to an embodiment of the present invention. FIG. 4 is a flowchart illustrating a fourth step (defect detection step) of the method for detecting a run-time.

도 3에 도시된 런-타임 결함 탐지 방법이 개시되면, S10 단계에서, 컴포넌트 관리 모듈(110)을 통해 테스트 대상 시스템의 커널에서 후킹 모듈(120)을 구동한다.When the run-time fault detection method shown in FIG. 3 is started, the hooking module 120 is driven in the kernel of the test object system through the component management module 110 in step S10.

다음으로 S20 단계에서, 컴포넌트 관리 모듈(110)을 통해 런-타임 결함 테스트를 수행하고자 하는 프로세스들의 메모리 공간에 결함 탐지 모듈들(130)을 로딩시킨다. 전술한 바와 같이, 결함 탐지 모듈들(130)은 대응하는 모니터링 대상 모듈들의 기능에 더하여 정보 태깅 기능 및 결함 탐지 기능을 추가적으로 갖고 있다.Next, in step S20, the defect management module 110 loads the defect detection modules 130 into the memory space of the processes that are to perform the run-time defect test. As described above, the defect detection modules 130 additionally have an information tagging function and a defect detection function in addition to the functions of corresponding monitoring target modules.

다음으로 S30 단계에서, 후킹 모듈(120)을 통해 모니터링 대상 모듈들의 실행 경로를 결함 탐지 모듈들(130)로 후킹한다. 이러한 모듈 후킹 단계가 수행되면, 모니터링 대상 모듈들의 실행 시점에서 그에 대응되는 결함 탐지 모듈들(130)이 대신 실행된다.Next, in step S30, the execution path of the monitoring target modules is hooked to the defect detection modules 130 through the hooking module 120. [ When this module hooking step is performed, the corresponding defect detection modules 130 are executed instead at the execution time of the monitoring target modules.

다음으로 S40 단계에서, 결함 탐지 모듈들(130)을 통해, 생성 데이터에 정보 태깅을 수행하고 데이터 사용 시점에 태그 정보를 검사하여 런-타임 결함을 탐지한다. 도 4를 참조하면, S40 단계는, 생성 데이터에 정보 태깅을 수행하는 단계(S41), 데이터 사용시 태그 정보를 검사하여 런-타임 결함을 탐지하는 단계(S42), 런-타임 결함 탐지에 의해 수집된 결함 유형 및 디버깅 정보를 테스크 로그에 기록하는 단계(S43), 및 모니터링 대상 모듈의 본래 기능을 수행하는 단계(S44)를 포함할 수 있다.Next, in step S40, information on the generated data is tagged through the defect detection modules 130, and tag information is checked at the time of data use to detect a run-time defect. Referring to FIG. 4, in operation S40, information tagging is performed on generated data S41. In operation S42, a run-time defect is detected by checking tag information when data is used. A step S43 of writing the defect type and the debugging information to the task log, and a step S44 of performing the original function of the monitoring target module.

마지막으로 S50 단계에서, 분석 모듈(140)을 통해 테스크 로그에 기록된 결함 유형 및 디버깅 정보를 분석하여, 크래쉬 포인트와 디버깅 포인트를 구분하여 코드 위치 정보를 사용자에게 제공하고 결함 발생 시간, 결함이 발생된 프로세스 명칭, 결함 원인, 결함 판단에 사용된 디버깅 정보를 함께 제공한다. 분석 모듈(140)에 의한 정보 제공은 디스플레이 장치를 통해 수행될 수 있으며, 그러한 디스플레이 장치는 모니터링 대상 시스템에 통합된 것일 수도 있고 별도의 호스트 기기에 구비된 것일 수도 있다.
Finally, in step S50, the fault type and debugging information recorded in the task log are analyzed through the analysis module 140, the code position information is provided to the user by distinguishing the crash point from the debugging point, and the defect occurrence time and defects The process name, the cause of the defect, and the debugging information used for the defect determination. Information provision by the analysis module 140 may be performed through a display device, and such a display device may be integrated in a monitored system or may be provided in a separate host device.

이상 설명한 바와 같이, 본 발명에 따른 런-타임 결함 탐지 방법에 의하면, 모니터링하고자 하는 대상 모듈들을 결함 탐지 모듈들로 후킹하고, 결함 탐지 모듈들의 정보 태깅 및 결함 탐지 기능을 통해 프로세스가 실행되는 도중 결함 유형과 디버깅 정보를 탐지한다.As described above, according to the run-time defect detection method of the present invention, the target modules to be monitored are hooked to the defect detection modules, and the information tagging of the defect detection modules and the defect detection Detects type and debugging information.

이와 같이, 본 발명에 따른 런-타임 결함 탐지 방법은 결함 발생 이후에 히스토리 재현을 통해 결함을 분석하지 않고, 정보 태깅 기법을 사용하여 프로세스가 실행되는 런-타임에 결함 발생을 탐지하므로 디버깅이 필요한 코드 위치 정보 탐색의 정확성을 크게 개선할 수 있을 뿐만 아니라 그 위치 정보 탐색에 드는 노력을 최소화할 수 있다.As described above, since the run-time defect detection method according to the present invention does not analyze the defect through the reproduction of the history after occurrence of the defect but detects the occurrence of the defect at the run-time in which the process is executed using the information tagging technique, The accuracy of the code position information search can be greatly improved and the effort of searching for the position information can be minimized.

본 발명 이전에, 디버깅을 위한 하나의 방안으로서 프로세스가 런-타임에 사용한 메모리 정보를 별도의 메모리 공간에 기억하도록 하는 '쉐도우 메모리(Shadow memory)'라는 기법이 사용되었다. 하지만 쉐도우 메모리 기법은 프로세스 실행시 사용된 모든 메모리 정보를 별도의 주소에 저장하는 방식이어서 공간 추가 오버헤드가 많이 발생할 뿐만 아니라 성능 지연 오버헤드도 크게 발생한다.Prior to the present invention, as a method for debugging, a technique called " Shadow memory " was used to store memory information used in a run-time in a separate memory space. However, the shadow memory technique stores all the memory information used at the time of executing the process in a separate address, which causes not only a lot of space overhead but also a large performance delay overhead.

반면, 본 발명에 따른 런-타임 결함 탐지 방법에 의하면, 정보 태깅을 통해 런-타임에 결함 발생 가능성을 판단하고 그 판단의 결과로 탐지되는 결함들만을 선별적으로 디버깅 정보로 제공하는 방식을 취하므로, 전술한 쉐도우 메모리 기법에서 발생되는 공간 추가 오버헤드 및 성능 지연 오버헤드 문제가 해소될 수 있다.On the other hand, according to the run-time defect detection method of the present invention, it is possible to determine the possibility of occurrence of a defect at run-time through information tagging and to selectively provide only detected defects as debugging information Therefore, the space addition overhead and the performance delay overhead problem generated in the above-described shadow memory technique can be solved.

그리고, 본 발명에 따른 런-타임 결함 탐지 방법에 의하면, 프로세스가 실행되는 런-타임에 결함을 탐지하므로, 시스템이 다운되는 경우에 결함 탐지가 가능함은 물론, 데드락 상태 또는 메모리 누수와 같이 결함 증상이 겉으로 드러나지 않는 잠재 결함들에 대해서도 결함 탐지가 가능한 이점이 있다.According to the run-time defect detection method of the present invention, since a defect is detected at a run-time at which a process is executed, it is possible to detect a defect when the system is down, and also to detect a defect symptom such as a deadlock state or a memory leak There is also the advantage of detecting defects for these seemingly unexplained potential defects.

또한, 본 발명에 따른 런-타임 결함 탐지 방법은, 결함을 재현하는 방식을 취하지 않으므로, 사용자 입력 외에 다양한 외부 입력이 수신되는 차량용 네비게이션 시스템과 같은 임베디드 시스템에 특히 유용하게 적용될 수 있다.
Further, the method of detecting run-time faults according to the present invention does not take a method of reproducing defects, and thus can be particularly usefully applied to an embedded system such as a navigation system for a vehicle in which various external inputs are received in addition to user input.

2 : 정보 태그
3 : 확장 데이터
100 : 런-타임 결함 방지 프로그램
110 : 컴포넌트 관리 모듈
120 : 후킹 모듈
130 : 결함 탐지 모듈
140 : 분석 모듈
2: Information tag
3: Extended data
100: Run-time defect prevention program
110: Component management module
120: Hooking module
130: Defect detection module
140: Analysis module

Claims (7)

(a) 모니터링 대상 모듈들에 대응하며 정보 태깅 기능 및 결함 탐지 기능이 추가된 결함 탐지 모듈들을 로딩시키는 단계;
(b) 상기 모니터링 대상 모듈들의 실행 경로를 상기 결함 탐지 모듈들로 후킹하는 단계; 및
(c) 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하고 상기 데이터의 사용 시점에서 상기 정보 태그를 검사하여 런-타임 결함을 탐지하는 단계;를 포함하는 런-타임 결함 탐지 방법.
(a) loading defect detection modules corresponding to monitoring target modules and having an information tagging function and a defect detection function added thereto;
(b) hooking the execution path of the monitoring target modules to the defect detection modules; And
(c) tagging the information tag with data generated according to the execution of the defect detection modules and inspecting the information tag at the time of use of the data to detect a run-time defect .
제1항에 있어서,
상기 (c) 단계는,
(c1) 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하는 단계;
(c2) 상기 데이터의 사용 시점에서 상기 태그 정보를 검사하여 런-타임 결함을 탐지하는 단계;
(c3) 탐지된 런-타임 결함의 유형 및 디버깅 정보를 기록하는 단계; 및
(c4) 모니터링 대상 모듈의 본래 기능을 수행하는 단계;를 포함하는 런-타임 결함 탐지 방법.
The method according to claim 1,
The step (c)
(c1) tagging the information tag with data generated according to the execution of the defect detection modules;
(c2) inspecting the tag information at the time of use of the data to detect a run-time defect;
(c3) recording the type of the detected run-time defect and debugging information; And
(c4) performing the original function of the module to be monitored.
제1항에 있어서,
(d) 탐지된 런-타임 결함의 유형과 디버깅 정보를 분석하고, 분석 결과를 사용자에게 제공하는 단계;를 더 포함하는 런-타임 결함 탐지 방법.
The method according to claim 1,
(d) analyzing the type of detected run-time fault and debugging information, and providing the analysis result to a user.
제3항에 있어서,
상기 (a), (b), 및 (c) 단계는 모니터링 대상 시스템에서 수행되고, 상기 (d) 단계는 상기 모니터링 대상 시스템과 유선 또는 무선으로 통신하는 호스트 기기에서 수행되는 런-타임 결함 탐지 방법.
The method of claim 3,
Wherein the steps (a), (b), and (c) are performed in a monitoring target system, and the step (d) .
제1항에 있어서,
상기 정보 태그에는 데이터 주소 공간, 데이터 초기화 여부, 및 주소 공간의 유효 사이즈가 기록되는 런-타임 결함 탐지 방법.
The method according to claim 1,
Wherein a data address space, data initialization status, and an effective size of an address space are recorded in the information tag.
런-타임 결함 탐지 프로그램이 기록된 기록 매체에 있어서,
상기 런-타임 결함 탐지 프로그램은,
모니터링 대상 모듈들에 대응하며, 정보 태깅 기능 및 결함 탐지 기능이 추가된 결함 탐지 모듈들;
상기 결함 탐지 모듈들을 로딩시키는 컴포넌트 관리 모듈; 및
상기 모니터링 대상 모듈들의 실행 경로를 상기 결함 탐지 모듈들로 후킹하는 후킹 모듈;을 포함하며,
상기 결함 탐지 모듈들은, 상기 결함 탐지 모듈들의 실행에 따라 생성되는 데이터에 정보 태그를 태깅하고 상기 데이터의 사용 시점에서 상기 정보 태그를 검사하여 런-타임 결함을 탐지하는 수행하는, 런-타임 결함 탐지 프로그램이 기록된 기록 매체.
A recording medium on which a run-time defect detection program is recorded,
Wherein the run-time defect detection program comprises:
A defect detection module corresponding to the monitoring target modules and having an information tagging function and a defect detection function added thereto;
A component management module for loading the defect detection modules; And
And a hooking module for hooking the execution path of the monitoring target modules to the defect detection modules,
Wherein the defect detection modules perform tagging an information tag to data generated according to the execution of the defect detection modules and inspecting the information tag at the time of use of the data to detect a run-time defect, A recording medium on which a program is recorded.
제6항에 있어서,
상기 런-타임 결함 탐지 프로그램은, 탐지된 런-타임 결함의 유형과 디버깅 정보를 분석하고 분석 결과를 사용자에게 제공하는 분석 모듈을 더 포함하는, 런-타임 결함 탐지 프로그램이 기록된 기록 매체.
The method according to claim 6,
Wherein the run-time defect detection program further comprises an analysis module for analyzing the type of the detected run-time defect and debugging information and providing the analysis result to the user.
KR1020140053937A 2014-05-07 2014-05-07 Run-time fault detecting method using execution hooking and information tag KR101601414B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140053937A KR101601414B1 (en) 2014-05-07 2014-05-07 Run-time fault detecting method using execution hooking and information tag

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140053937A KR101601414B1 (en) 2014-05-07 2014-05-07 Run-time fault detecting method using execution hooking and information tag

Publications (2)

Publication Number Publication Date
KR20150127334A true KR20150127334A (en) 2015-11-17
KR101601414B1 KR101601414B1 (en) 2016-03-09

Family

ID=54785975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140053937A KR101601414B1 (en) 2014-05-07 2014-05-07 Run-time fault detecting method using execution hooking and information tag

Country Status (1)

Country Link
KR (1) KR101601414B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102420514B1 (en) * 2021-05-10 2022-07-13 이화여자대학교 산학협력단 Hardware/software defect detection method using deep learning and analysis apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278801A (en) * 2001-03-21 2002-09-27 Ricoh Co Ltd Software inspecting method
KR20130042503A (en) * 2011-03-15 2013-04-26 현대자동차주식회사 Communication test device and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278801A (en) * 2001-03-21 2002-09-27 Ricoh Co Ltd Software inspecting method
KR20130042503A (en) * 2011-03-15 2013-04-26 현대자동차주식회사 Communication test device and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102420514B1 (en) * 2021-05-10 2022-07-13 이화여자대학교 산학협력단 Hardware/software defect detection method using deep learning and analysis apparatus

Also Published As

Publication number Publication date
KR101601414B1 (en) 2016-03-09

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
US10379989B2 (en) Processing apparatus, trace unit and diagnostic apparatus
JP5430570B2 (en) Method for test suite reduction by system call coverage criteria
US11176012B2 (en) Device, system and process for redundant processor error detection
US7856582B2 (en) Techniques for logic built-in self-test diagnostics of integrated circuit devices
US20080276129A1 (en) Software tracing
US20090204946A1 (en) Intelligent software code updater
US20150317232A1 (en) Method And Apparatus For Positioning Crash
US7765434B2 (en) Resource efficient software tracing for problem diagnosis
CN115328796A (en) Software vulnerability auxiliary positioning method and system for ARM architecture
CN115686961A (en) Processor testing method and device and electronic equipment
US20080162776A1 (en) Identifying Race Conditions Involving Asynchronous Memory Updates
Hao et al. Eliminating harmful redundancy for testing-based fault localization using test suite reduction: An experimental study
KR101601414B1 (en) Run-time fault detecting method using execution hooking and information tag
JP5495310B2 (en) Information processing apparatus, failure analysis method, and failure analysis program
US9009671B2 (en) Crash notification between debuggers
KR101505258B1 (en) Replaying architectural execution with a probeless trace capture
CN110928786A (en) Testing method and device for financial program
CN111159051A (en) Deadlock detection method and device, electronic equipment and readable storage medium
US7415560B2 (en) Method of automatically monitoring computer system debugging routine
CN115373929A (en) Test method, device, equipment, readable storage medium and program product
US20050071820A1 (en) Using a debugging framework to enforce best practices in program development
Di Bernardo et al. Agile testing of exceptional behavior
CN111258878B (en) Application testing method, device, equipment and storage medium
CN107766251B (en) Detection method, system and device for loading image and readable storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 5