KR20080000476A - Debugging system and method - Google Patents
Debugging system and method Download PDFInfo
- Publication number
- KR20080000476A KR20080000476A KR1020060058333A KR20060058333A KR20080000476A KR 20080000476 A KR20080000476 A KR 20080000476A KR 1020060058333 A KR1020060058333 A KR 1020060058333A KR 20060058333 A KR20060058333 A KR 20060058333A KR 20080000476 A KR20080000476 A KR 20080000476A
- Authority
- KR
- South Korea
- Prior art keywords
- debugging
- target device
- break point
- code
- connection
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
- G06F11/3652—Debugging of software using additional hardware in-circuit-emulation [ICE] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B17/00—Monitoring; Testing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 타겟장치의 오작동을 디버깅하는 시스템에 관한 것으로, The present invention relates to a system for debugging a malfunction of a target device.
상기 타겟장치와 연결된 상태에서 영구 브레이크 포인트를 상기 타겟장치에 설정하는 디버깅 장치와, 상기 디버깅 장치와의 연결이 해제된 상태에서 상기 브레이크 포인트가 실행되면, 동작을 정지하는 타겟장치로 구성된다. 이때, 상기 디버깅 장치는 상기 타겟장치의 디버깅을 상기 정지된 상태에서부터 시작하는 것을 특징으로 한다. 본 발명은 타겟장치와 디버깅 장치의 연결이 제거되어도 브레이크 포인트를 타겟장치에 유효하게 유지시킴으로써, 상기 두 장치가 연결되지 않은 상태에서는 디버깅을 수행할 수 없었던 종래 기술의 문제점을 해결하였으며, 타겟장치만으로 오류 재현 테스트가 가능하므로 개발자는 보다 많은 장소로 이동하여, 많은 상황에 대처한 테스트를 수행할 수 있게 되었다.And a debugging device for setting a permanent break point to the target device in a state of being connected to the target device, and a target device for stopping operation when the break point is executed while the connection with the debugging device is released. At this time, the debugging device is characterized in that starting the debugging of the target device from the stopped state. The present invention solves the problem of the prior art in which debugging cannot be performed when the two devices are not connected by maintaining the breakpoint in the target device even when the connection between the target device and the debugging device is removed. Error-reproducible testing allows developers to move to more places and run tests for many situations.
Description
도1은 일반적 디버깅 시스템의 구성을 나타낸 도면. 1 is a diagram showing the configuration of a general debugging system.
도2는 종래의 디버깅 방법을 나타낸 흐름도.2 is a flowchart showing a conventional debugging method.
도3은 본 발명의 일실시 예에 따른 디버깅 시스템의 블록 구성도.Figure 3 is a block diagram of a debugging system according to an embodiment of the present invention.
도4는 본 발명의 일실시 예에 따른 디버깅 시스템의 동작 흐름도.4 is an operation flowchart of a debugging system according to an embodiment of the present invention.
도5는 브레이크 포인트 코드가 이식된 프로그램의 소스 코드와 기계어 코드를 나타낸 도면.5 is a diagram illustrating source code and machine code of a program in which a breakpoint code is implanted.
도6은 소스레벨에서, 도4의 일부 과정들(S150 ~ S170)을 나타낸 흐름도.FIG. 6 is a flowchart showing some processes S150 to S170 of FIG. 4 at the source level.
도7은 본 발명의 일 실시예에 따른 타겟장치의 블록 구성도.7 is a block diagram of a target device according to an embodiment of the present invention.
*** 도면의 주요부분에 대한 부호의 설명 ****** Explanation of symbols for main parts of drawing ***
100, 300 : 디버깅 장치 310, 410 : 제어부100, 300:
320 : 디버깅 툴 320: debugging tool
200, 400 : 타겟장치 420 : 디버깅 에이젼트200, 400: Target device 420: Debugging agent
본 발명은 디버깅 기술에 관한 것으로, 특히 타겟장치의 오작동을 재현하여 디버깅을 수행하는 디버깅 시스템 및 방법에 관한 것이다.The present invention relates to a debugging technique, and more particularly, to a debugging system and method for performing debugging by reproducing a malfunction of a target device.
소프트웨어를 개발하는 과정에서 대개, 크고 작은 오류가 발생한다. 특히, 프로그램을 설계하고 코딩하는 단계에서 많은 오류가 발생한다. 개발자들은 이러한 프로그램 상의 오류를 버그(Bug)라고 하며, 숨겨진 버그를 발견하고 그 원인을 밝히는 작업을 디버깅(Debugging)이라 한다. 디버깅은 제품의 하자를 줄이고 소프트 웨어(소프트웨어 플랫폼(WISE), 모바일 플랫폼(CDMA/GSM/3G), 오퍼레이팅 시스템(OS), 하드웨어 플랫폼(ARM) 등)의 완성도를 높이기 위해 반드시 필요한 작업이다.Usually, big and small errors occur during the development of software. In particular, many errors occur during the design and coding of the program. Developers call these program bugs bugs, and the task of finding hidden bugs and identifying their cause is called debugging. Debugging is essential to reduce product defects and improve the completeness of software (software platform (WISE), mobile platform (CDMA / GSM / 3G), operating system (OS), hardware platform (ARM), etc.).
개발되는 소프트웨어의 규모가 크면 클수록 그 만큼 버그의 발견도 어려워지며, 버그가 소프트웨어 내부에 깊숙이 자리 잡게 되면 제품의 신뢰도는 위협받게 된다.The larger the software developed, the harder it is to find bugs, and when the bugs are deeply embedded in the software, the reliability of the product is threatened.
따라서, 개발자들은 제품을 출시하기 전에, 혹시 있을 지 모르는 오류를 잡아내기 위하여 수 많은 제품 테스트를 수행한다. 제품 테스트의 목적은 오류(혹은 오작동)를 발견해 내는 데 있지만, 발견된 오류나 오작동을 재현하는 것도 중요하다. Therefore, developers do a lot of product testing before they release a product to catch any potential errors. The purpose of product testing is to detect errors (or malfunctions), but it is also important to reproduce the errors or malfunctions found.
특정한 환경 하에서 발현되는 오류의 경우, 오류의 원인이 대개 시스템 설계의 구조적인 문제 혹은 여러 가지 환경적 요인에 있기 때문에, 동일한 조건의 테스트를 반복하여도 어떤 때는 나타나고, 어떤 때는 나타나지 않는다. 이런 종류의 오류를 실험실에서 행하는 일반적 테스트로 재현하는 것은 쉽지 않다. In the case of an error that occurs under a specific environment, the cause of the error is usually due to structural problems in the system design or various environmental factors, so that repeated tests under the same conditions sometimes appear and sometimes do not. It is not easy to reproduce this kind of error with the usual tests performed in the laboratory.
도1은 일반적 디버깅 시스템의 구성을 나타낸 것이다.1 shows a configuration of a general debugging system.
도1에 도시된 바와 같이, 디버깅 시스템은 타겟장치(200)와 상기 타겟장치(200)와 물리적으로 접속하여 소스 레벨(Source Level)의 오류를 검출하는 디버깅 장치(100)로 구성된다.As shown in FIG. 1, the debugging system includes a
상기 타겟장치(200)가 특정 지역에만 가면 오작동을 일으키는 휴대 단말기라고 가정하자. 개발자는 실험실에서 휴대단말기의 오작동이 재현되도록 다양한 테스트를 반복 수행하지만, 결국 각종 테스트 장비들을 이끌고 오작동을 일으키는 해당 지역에 갈 수 밖에 없다. Assume that the
그리고, 현장에서 개발자는 디버깅 장치와 타겟장치를 연결해 놓은 채 제품 테스트를 반복하고, 테스트가 진행되는 동안 개발자는 계속해서 테스트 진행 상황을 계속 모니터 하여야 한다. In the field, the developer repeats the product test with the debugging device and the target device connected, and the developer must continuously monitor the test progress while the test is in progress.
도2는 종래의 디버깅 방법을 나타낸 흐름도이다.2 is a flowchart illustrating a conventional debugging method.
도2를 참조하여 종래 디버깅 시스템의 동작을 설명하면 다음과 같다.Referring to Figure 2 describes the operation of the conventional debugging system as follows.
타겟장치 디버깅을 위해, 사용자는 먼저 상기 타겟장치(200)를 디버깅 장치(100)와 연결한다.(S10) 그러면 타겟장치(200)와의 연결을 감지한 상기 디버깅 장치(100)는 사용자가 지정한 특정 프로그램에 브레이크 포인트(Break Point)를 설정하도록 타겟장치(200)에게 지시한다. 그리고, 상기 디버깅 장치(100)의 지시에 따라 타겟장치(200)는 상기 지정된 프로그램의 임의의 코드(code)를 브레이크 포인트 코드(code)로 대체한다. (S20)For debugging the target device, the user first connects the
브레이크 포인트(Break Point)는 타겟장치에서 발생하는 오류를 관찰하기 위해 타겟장치(200)가 특정 실행영역에서 수행을 멈추도록 하는 일종의 프로그램 명 령이다. 브레이크 포인트를 이식할 때 사용자는 상기 브레이크 포인트가 특정 상황 즉, 오류 발생이 의심되는 상황에서 동작하도록 소정의 조건값(조건_X)을 상기 브레이크 포인트에 부여한다.A break point is a type of program command that causes the
이후, 브레이크 포인트가 상기 타겟장치(200)에 설정되면(S20), 즉 브레이크 포인트의 이식이 완료되면, 사용자(혹은 개발자)는 타겟장치(200)의 오작동이 재현되도록 각종 테스트를 수행한다.(S30) Thereafter, when the break point is set in the target device 200 (S20), that is, when transplantation of the break point is completed, the user (or developer) performs various tests to reproduce the malfunction of the
상기 조건(조건_X)을 만족시키는 상황이 발생하면(S40), 상기 브레이크 포인트가 작동하여 타겟장치(200)는 동작을 멈추고(S50) 상기 브레이크 포인트를 삭제한다. 그리고 상기 디버깅 장치(100)는 상기 타겟장치(200)의 소스 레벨 오류를 검출하기 위한 디버깅을 시작한다.(S60)When a situation that satisfies the condition (condition _X) occurs (S40), the break point is activated to stop the operation (S50) and delete the break point. The
이상, 기술된 바와 같이 종래의 디버깅 시스템은 디버깅 장치(100)와 타겟장치(200)를 연결한 상태에서 제품 테스트를 수행해야 하고, 테스트가 진행되는 동안 개발자는 계속해서 테스트 진행 상황을 계속 모니터 해야 했다. 상기 디버깅 장치(100)와 타겟장치(200)의 연결이 제거되면, 상기 타겟장치(200)에 이식된 브레이크 포인트가 삭제되어 사용자(혹은 개발자)는 더 이상 제품 테스트를 수행할 수 없게 된다.As described above, the conventional debugging system has to perform a product test with the
특정한 환경 하에서만 발현되는 버그를 잡기 위해, 종래에는 실험실에 특정한 통신환경을 인위적으로 만들거나, 각종 장비들을 이끌고 그러한 통신환경을 제공하는 지역으로 이동하여 제품 테스트를 수행해야 하는 문제가 있었으며, 테스트 를 진행하는 동안 개발자는 테스트 진행 상황을 계속 모니터해야 하는 불편함이 있었다.In order to catch bugs that appear only in certain environments, there has been a problem of artificially creating a specific communication environment in a laboratory, or moving a device to an area providing such a communication environment and performing a product test. During the process, the developer was inconvenient to constantly monitor the test progress.
본 발명의 주요 관점은 발명자가 위에서 언급된 종래 기술의 문제점들을 인식하였다는데 있으며, 발명자는 아래와 같이, 이런 문제점의 해결책을 제시하였다.The main aspect of the present invention is that the inventor has recognized the problems of the prior art mentioned above, and the inventor has proposed a solution to this problem as follows.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로 그 목적은, The present invention is to solve the problems described above, the object is,
타겟장치가 디버깅 수단과의 연결을 해제한 상태에서도 브레이크 포인트를 유지하도록 하는 디버깅 시스템 및 방법을 제공하는데 있다. The present invention provides a debugging system and method for maintaining a breakpoint even when the target device is disconnected from the debugging means.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 디버깅 시스템은 타겟장치의 오작동을 디버깅하는 시스템에 관한 것으로, In order to achieve the above object, the debugging system according to the present invention relates to a system for debugging a malfunction of the target device,
상기 타겟장치와 연결된 상태에서 영구 브레이크 포인트를 상기 타겟장치에 설정하는 디버깅 장치와, 상기 디버깅 장치와의 연결이 해제된 상태에서 상기 브레이크 포인트가 실행되면, 동작을 정지하는 타겟장치로 구성된다. 이때, 상기 디버깅 장치는 상기 타겟장치의 디버깅을 상기 정지된 상태에서부터 시작하는 것을 특징으로 한다. And a debugging device for setting a permanent break point to the target device in a state of being connected to the target device, and a target device for stopping operation when the break point is executed while the connection with the debugging device is released. At this time, the debugging device is characterized in that starting the debugging of the target device from the stopped state.
바람직하게, 상기 디버깅 장치는 상기 타겟장치의 동작이 정지되면 타겟장치와의 물리적 연결을 설정하고, 상기 브레이크 포인트의 코드를 삭제 후, 그 자리에 원래의 코드를 복원하는 것을 특징으로 한다. Preferably, the debugging device is characterized in that when the operation of the target device is stopped, establishes a physical connection with the target device, deletes the code of the breakpoint, and restores the original code in place.
바람직하게, 상기 타겟장치는 휴대 단말기인 것을 특징으로 한다.Preferably, the target device is a portable terminal.
바람직하게, 상기 타겟장치는 임베디드 시스템(Embedded System)인 것을 특 징으로 한다. 임베디드 시스템이란 적어도 하나 이상의 프로세서들이 들어가서 동작하는 제어 시스템을 일컫는다. 마이크로프로세서의 크기나 성능에 관계없이 마이크로프로세서가 삽입된(embeded) 시스템을 총칭하여 임베디드 시스템이라 한다.Preferably, the target device is characterized in that the embedded system (Embedded System). An embedded system refers to a control system in which at least one or more processors enter and operate. Regardless of the size or performance of a microprocessor, a system in which a microprocessor is embedded is collectively referred to as an embedded system.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 오류검출 방법은 디버깅 장치와 타겟장치를 포함하는 디버깅시스템에 관한 것으로, In order to achieve the above object, the error detection method according to the present invention relates to a debugging system including a debugging device and a target device,
상기 디버깅 장치를 타겟장치에 연결하여 상기 타겟장치에 영구 브레이크 포인트를 설정하는 과정과, 상기 연결을 제거하고, 상기 타겟장치를 테스트하는 과정과, 상기 브레이크 포인트가 실행되면, 상기 타겟장치의 동작을 정지시키는 과정과, 상기 디버깅 장치와 타겟장치를 연결하고, 상기 동작 정지된 부분부터 상기 타겟장치를 디버깅하는 과정으로 이루어진다.Connecting the debugging device to a target device to set a permanent breakpoint on the target device, removing the connection, testing the target device, and when the breakpoint is executed, operation of the target device. And stopping the connection, connecting the debugging device and the target device, and debugging the target device from the stopped portion.
본 발명은 타겟장치가 디버깅 장치와의 연결을 해제한 상태에서도 상기 브레이크 포인트를 유효하게 유지하도록 하는데 착안점을 두었으며, 이동성의 한계를 갖던 종래 디버깅 시스템의 문제점을 극복할 수 있게 되었다. The present invention focuses on keeping the break point valid even when the target device is disconnected from the debugging device, and overcomes the problems of the conventional debugging system, which has the limitation of mobility.
사용자(개발자)는 본 발명에 따른 타겟장치를 휴대하고 다니면서, 보다 용이하게 타겟장치의 오작동을 재현할 수 있게 되었다. The user (developer) can carry the target device according to the present invention and more easily reproduce the malfunction of the target device.
이하, 본 발명의 바람직한 실시 예를 도면을 참조하여 설명하면 다음과 같다.Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
도3은 본 발명의 일실시예에 따른 디버깅 시스템의 블록 구성도이다. Figure 3 is a block diagram of a debugging system according to an embodiment of the present invention.
종래 디버깅 시스템에서 처럼, 본 발명에 따른 디버깅 시스템도 크게 디버깅 장치(300)와 타겟장치(400)로 구성된다.As in the conventional debugging system, the debugging system according to the present invention is largely composed of the
상기 디버깅 장치(300)는 물리적으로 연결된 상기 타겟장치(400)에 소정의 브레이크 포인트를 설정하고 상기 연결을 해제하는 제어부(혹은 브레이크 포인트 설정부, 310)와, 상기 브레이크 포인트에 의해 타겟장치의 수행이 정지되고 사용자의 지시에 따라 상기 타겟장치(400)와의 연결이 설정되면, 상기 수행을 멈춘 타겟장치의 실행영역부터 디버깅을 수행하는 오류 제어부(320, 이하, 디버깅 툴이라 한다)를 포함하여 구성된다. The
상기 타겟장치(400)는 상기 디버깅 장치(300)로부터 브레이크 포인트 설정 명령을 수신하면, 사용자가 정한 프로그램의 특정 코드를 상기 브레이크 포인트의 코드로 대체하는 제어부(410)와, 상기 디버깅 장치(300)와의 연결이 해제된 후에도 상기 브레이크 포인트를 유지하고, 상기 브레이크 포인트 코드가 실행되면 타겟장치의 동작을 정지시키는 에이젼트(420)로 구성된다.When the
도4는 본 발명의 일실시 예에 따른 디버깅 방법을 나타낸 것이다.4 illustrates a debugging method according to an embodiment of the present invention.
도4를 참조하여 본 발명에 따른 디버깅 시스템의 동작을 상세히 설명하면 다음과 같다.The operation of the debugging system according to the present invention will be described in detail with reference to FIG. 4 as follows.
사용자는 타겟장치 디버깅을 위해, 먼저 상기 타겟장치(400)를 디버깅 장치(300)와 연결한다.(S110) 그러면 타겟장치(400)와의 연결을 감지한 상기 디버깅 장치의 제어부(310)는 사용자의 지시에 따라 브레이크 포인트의 옵션(permanent 혹은 normal)을 결정한다. In order to debug the target device, the user first connects the
실험실에서 수행하는 일반적인 디버깅 작업의 경우, 브레이크 포인트의 옵션은 노말(normal)로 설정되며, 상기 디버깅 장치(300)가 타겟장치(400)에 대한 제어 권을 가지고 디버깅을 수행한다.In the case of general debugging work performed in a laboratory, an option of a break point is set to normal, and the
옵션이 노말(normal)로 설정된 브레이크 포인트는 상기 디버깅 장치(300)이 제어권을 가지고 있는 동안 즉, 디버깅 장치(300)와 타겟장치(400)가 연결되어 있는 동안만 유효하게 동작하고, 두 장치(300, 400)의 연결이 끊어진 상태에서는 동작하지 않는다. 두 장치(300, 400)의 연결이 끊어지면, 브레이크 포인트 코드는 상기 타겟장치(200)에서 삭제된다.The breakpoint in which the option is set to normal operates only while the
다음은 브레이크 포인트의 옵션이 퍼머넌트(permanent)로 설정된 경우에 대한 설명이다.The following is a description of the case where the breakpoint option is set to permanent.
일단, 브레이크 포인트의 옵션(= permanent)이 결정되면(S120), 상기 제어부(310)는 사용자가 지정한 특정 프로그램에 상기 브레이크 포인트를 설정하도록 타겟장치의 에이젼트(420)에게 지시한다. 그리고, 상기 제어부(310)의 지시를 받은 타겟장치의 에이젼트(420)는 상기 지정된 프로그램의 임의의 코드(code)를 브레이크 포인트 코드(code)로 대체한다.(S130)Once the breakpoint option (= permanent) is determined (S120), the
위에서 이미 설명한 바와 같이, 브레이크 포인트는 타겟장치에서 발생하는 오류를 관찰하기 위해 타겟장치(400)가 특정 실행영역에서 수행을 멈추도록 하는 일종의 프로그램 명령이다. As already explained above, a breakpoint is a type of program command that causes the
브레이크 포인트 코드(예: 'DEAD' --> 비기계어)는 오류발생이 의심되는 프로그램의 기계어 코드에 이식되며, 브레이크 포인트를 이식할 때 사용자는 상기 브레이크 포인트가 특정 상황 즉, 오류 발생이 의심되는 상황에서 동작하도록 소정의 조건값(조건_X)을 상기 브레이크 포인트에 부여한다.Breakpoint codes (e.g. 'DEAD'-> non-mechanical words) are ported to the machine code of the program in which the error is suspected. The breakpoint is given a predetermined condition value (condition_X) to operate in a situation.
이후, 브레이크 포인트의 이식이 완료되면 즉, 브레이크 포인트가 타겟장치(400)에 설정되면(S130), 사용자는 상기 디버깅 장치(300)와 타겟장치 (400)와의 연결을 끊는다.(S140) Thereafter, when the transplantation of the break point is completed, that is, when the break point is set in the target device 400 (S130), the user disconnects the
이때, 만일 브레이크 포인트의 옵션이 노말(normal)로 설정되었다면, 이미 설명한 바와 같이 상기 에이젼트(420)는 상기 프로그램에서 브레이크 포인트 코드를 삭제하고, 그 자리에 원래의 코드를 복원시킨다. 그러나 브레이크 포인트의 옵션을 퍼머넌트(perm anent)로 설정한 경우, 상기 에이젼트(420)는 상기 디버깅 장치(300)와의 연결이 해제되어도 상기 브레이크 포인트 코드를 삭제하지 않고 그 기능을 그대로 유지시킨다At this time, if the option of the break point is set to normal, the
따라서, 사용자(개발자)는 상기 타겟장치(400)와 디버깅 장치(300)의 연결을 분리한 이후에도 장소를 옮겨가며 타겟장치 테스트를 계속 수행할 수 있으며, 고속으로 주행하는 운송수단에 탑승하거나 통신환경이 열악한 지역으로 이동하여 타겟장치 테스트를 수행할 수도 있다.Therefore, the user (developer) can continue to perform the target device test by moving the place even after disconnecting the connection between the
일 예로서, 타겟장치(400)가 원인을 알 수 없는 오작동을 일으키는 지역이 있다고 가정하자. 이 경우, 오작동의 원인을 알기 위해서는 타겟장치(400)의 오작동 상황을 재현해야 하므로, 타겟장치(400)의 오작동을 재현하기 위해 사용자(혹은 개발자)는 본 발명에 따른 브레이크 포인트를 타겟장치에 이식한 후, 해당 지역으로 이동하여 각종 테스트를 수행한다.(S150) As an example, assume that there is an area in which the
그리고, 타겟장치를 테스트하는 과정(S150)에서, 상기 조건(조건_X)을 만족시키는 상황이 발생하면 상기 브레이크 포인트가 작동하여 타겟장치(400)는 동작을 멈춘다.(S160 ~ S170) 그리고 상기 디버깅 장치(300)와의 연결을 기다린다.In the process of testing the target device (S150), when a situation that satisfies the condition (condition _X) occurs, the break point is activated to stop the operation of the target device 400 (S160 to S170). Wait for a connection with the
도5는 브레이크 포인트 코드가 이식된 프로그램의 소스 코드와 기계어 코드를 나타낸 도면이고, 도6은 소스레벨에서, 도4의 일부 과정들(S150 ~ S170)을 나타낸 흐름도이다.FIG. 5 is a diagram illustrating source code and machine code of a program in which a breakpoint code is implanted. FIG. 6 is a flowchart illustrating some processes S150 to S170 of FIG. 4 at a source level.
도5와 6을 참조하여, 상기 과정들(S150 ~ S170)을 소프트웨어적 관점에서 설명하면 다음과 같다. 5 and 6, the processes S150 to S170 will be described in terms of software.
타겟장치 테스트를 위해 사용자가 타겟장치의 각종 기능들을 실행시키면, 타겟장치의 제어부(410)는 해당 프로그램들의 기계어 코드들을 차례로 실행시킨다. 그리고 프로그램 실행 중 상기 조건_X를 만족시키는 상황이 발생하게 되면, 비기계어 코드인 브레이크 포인트 코드(예: 'DEAD')가 실행되고, 상기 제어부(410)는 'DEAD'를 언디파인드(Undefined) 명령어로 인식하게 된다. When the user executes various functions of the target device for the target device test, the
상기 제어부(410)가 특정 코드를 언디파인드(Undefined) 명령어로 인식하는 경우, 제어부(410)는 프로그램 카운터를 익셉션 벡터(Exception Vector)의 언디파인드 핸들러(Undefined Handler)로 점프시킨다.When the
그러면 상기 언디파인드 핸들러를 모니터하고 있던 상기 에이젼트(420)는 상기 특정 코드('DEAD')가 브레이크 포인트 코드임을 확인하고, 타겟장치(400)의 동작을 정지시킨다. 그리고, 상기 디버깅 장치(300)와의 연결을 기다린다. Then, the
이후, 상기 타겟장치(400)와 디버깅 장치(300)와의 연결이 설정되면(S180), 이를 감지한 상기 에이젼트는(420)는 브레이크 포인트 코드('DEAD')를 타겟장치 (400)에서 삭제하고 그 자리에 원래의 코드를 복원시켜 이 시점부터 다시 코드를 실행 시킬 수 있게 한다. 그리고 타겟장치(400)에 대한 제어권을 획득한 상기 디버깅 장치의 디버깅 툴(320)은 상기 동작이 정지된 타겟장치의 실행영역부터 디버깅하기 시작한다.(S190) 상기 브레이크 포인트 코드('DEAD')를 원래의 코드로 복원하는 과정은 브레이크 포인트가 작동(S160)한 이후와 디버깅을 수행(S190) 하기 이전이면, 언제든 수행 가능하다. Thereafter, when the connection between the
도7은 본 발명의 일 실시예에 따른 타겟장치(400, 예: 휴대단말기)의 블록 구성도이다.7 is a block diagram of a target device 400 (for example, a portable terminal) according to an embodiment of the present invention.
본 발명에 따른 타겟장치(400) 즉, 휴대단말기(400)는 마이크로 프로세서 혹은 디지털 신호 프로세서와 같은 프로세스 유닛(410), RF모듈(435), 전원 관리 모듈(405), 안테나(440), 배터리(455), 디스플레이(415), 시리얼 포트(417, 혹은 Universal Serial Bus(USB) 포트), 입력부(460, 예: 키패드), 스토리지 유닛(430)(예: 플레쉬 메모리, ROM, SRAM 등), SIM 카드(425)(옵션), 스피커(445) 및 마이크(450)로 구성된다. The
사용자는 키패드(460)의 버튼을 누르거나 마이크(450)와 같은 음성구동 수단을 이용하여, 전화번호 같은 지시 정보(혹은 각종 기능 실행 명령)를 입력한다. 상기 프로세스 유닛(410)은 전화번호와 같은 지시 정보가 수신되면, 해당 수신측으로 호를 설정하는 등의 적당한 기능을 수행한다. 또한, 상기 프로세스 유닛(410)은 SIM (Subscriber Identity Module) 카드(425) 혹은 스토리지 유닛(430)이 저장하고 있는 운용 데이터를 검색하여 상기 기능을 수행한다. 또한, 상기 프로세서 유닛(410)은 사용자의 참조나 편의를 위하여 상기 지시 및 운용 데이터 정보를 디스 플레이(415)에 표시한다. The user inputs instruction information (or various function execution commands) such as a phone number by pressing a button of the
상기 프로세스 유닛(410)은 지시 정보를 상기 RF모듈(435)로 보내 음성 통신 데이터를 포함한 무선 신호나, 상기 사용자에 의해 입력된 지시정보(예: 브레이크 포인트의 옵션 설정, 브레이크 포인트를 설정할 프로그램 지정 등)를 포함하는 가입자(subscribe) 메시지를 생성한다. 그리고 상기 RF모듈(435)을 통해 목적지로 전송하거나 상기 시리얼 포트(417, 혹은 USB포트)를 통해 디버깅 장치(300)로 전송한다. 상기 시리얼 포트(417)는 상기 디버깅 장치(300)로(로부터) 디버깅에 따른 각종 제어신호를 송신(혹은 수신)한다. 상기 RF모듈(435)는 무선 신호들을 송수신하기 위한 수신기와 송신기로 구성된다. 상기 안테나(440)는 무선 신호들의 송수신을 용이하게 한다. 기지국으로부터 무선 신호가 수신되면, 상기 RF모듈(435)는 프로세스 유닛(410)의 처리를 위해 상기 신호들을 기저대역 주파수로 전송 변환한다. 상기 처리된 신호들은, 예를 들면, 상기 무선 신호들이 착신 전화일 경우, 상기 스피커(445)를 통해 출력된 청취(audible) 및 독출 가능한(readable) 정보로도 변형될 수 있다.The
상기 프로세스 유닛(410)은 단말의 상태정보를 목적지로 전달하거나 다른 사용자 혹은 서버로부터 전달되는 메시지들의 메시지 히스토리 데이터를 상기 스토리지 유닛(430)에 저장하기에 적합하다. 그리고 사용자가 입력하는 메시지 히스토리 데이터에 대한 조건적 요구(conditional request)를 수신하기에 적합하다. 그리고 상기 스토리지 유닛(430)에서, 상기 조건적 요구에 대응하는 메시지 히스토리 데이터를 리드(read)하도록 상기 조건적 요구를 처리하기에 적합하다. 그리고 상기 메 시지 히스토리 데이터를 디스플레이(415)에 출력하기에 적합하다. The
상기 스토리지 유닛(430)은 프로그램 코드나 상기 에이젼트(420)와 같은 소프트웨어 제어 수단을 저장하기에 적합하다. 그리고 상기 프로세스 유닛(410)은 상기 스토리지 유닛(430)에 저장된 소프트 제어 수단이나 제어 프로그램을 실행시키기에 적합하다.The
이상, 기술된 바와 같이, 본 발명은 타겟장치와 디버깅 장치의 연결이 제거되어도 브레이크 포인트를 타겟장치에 유효하게 유지시킴으로써, 상기 두 장치가 연결되지 않은 상태에서는 디버깅을 수행할 수 없었던 종래 기술의 문제점을 해결하였으며, 타겟장치만으로 오류 재현 테스트가 가능하므로 개발자는 보다 많은 장소로 이동하여, 많은 상황에 대처한 테스트를 수행할 수 있게 되었다. As described above, according to the present invention, the breakpoint is effectively maintained in the target device even when the connection between the target device and the debugging device is removed. In addition, since the error reproduction test is possible only with the target device, the developer can move to more places and perform a test for many situations.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments illustrated in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
Claims (18)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060058333A KR101137569B1 (en) | 2006-06-27 | 2006-06-27 | System and method for debugging |
| US11/768,012 US20080126865A1 (en) | 2006-06-27 | 2007-06-25 | Debugging system and method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020060058333A KR101137569B1 (en) | 2006-06-27 | 2006-06-27 | System and method for debugging |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20080000476A true KR20080000476A (en) | 2008-01-02 |
| KR101137569B1 KR101137569B1 (en) | 2012-04-19 |
Family
ID=39212788
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020060058333A Expired - Fee Related KR101137569B1 (en) | 2006-06-27 | 2006-06-27 | System and method for debugging |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20080126865A1 (en) |
| KR (1) | KR101137569B1 (en) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090082008A1 (en) * | 2007-09-21 | 2009-03-26 | Per Thorell | Mobile Phone Code Debugging Method and Apparatus |
| US7925398B2 (en) * | 2007-10-31 | 2011-04-12 | Spx Corporation | Error message details for debug available to end user |
| US8752008B2 (en) * | 2009-09-02 | 2014-06-10 | Advanced Micro Devices, Inc. | Lightweight service based dynamic binary rewriter framework |
| US9021436B2 (en) * | 2010-12-08 | 2015-04-28 | Microsoft Technology Licensing Llc | Automatic reconnection of debugger to a reactivated application |
| US9274911B2 (en) | 2013-02-21 | 2016-03-01 | Advantest Corporation | Using shared pins in a concurrent test execution environment |
| US9785542B2 (en) | 2013-04-16 | 2017-10-10 | Advantest Corporation | Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing |
| US9785526B2 (en) | 2013-04-30 | 2017-10-10 | Advantest Corporation | Automated generation of a test class pre-header from an interactive graphical user interface |
| CN103995760A (en) * | 2014-05-23 | 2014-08-20 | 江门市未来之星网络科技有限公司 | Computer fault detection device and detection and maintenance method |
| US9785538B2 (en) * | 2015-09-01 | 2017-10-10 | Nxp Usa, Inc. | Arbitrary instruction execution from context memory |
| US10545745B2 (en) * | 2018-04-18 | 2020-01-28 | International Business Machines Corporation | Application binary rewriting to reduce binary attack surface area |
| US11144417B2 (en) * | 2018-12-31 | 2021-10-12 | Texas Instruments Incorporated | Debug for multi-threaded processing |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5050168A (en) | 1989-12-29 | 1991-09-17 | Paterson Timothy L | Test coverage analyzer |
| US6345383B1 (en) | 1994-09-14 | 2002-02-05 | Kabushiki Kaisha Toshiba | Debugging support device and debugging support method |
| US5892941A (en) * | 1997-04-29 | 1999-04-06 | Microsoft Corporation | Multiple user software debugging system |
| JP2000076093A (en) | 1998-08-27 | 2000-03-14 | Toshiba Microelectronics Corp | Microcomputer emulator |
| US6480818B1 (en) | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
| US7559055B2 (en) * | 2005-06-15 | 2009-07-07 | Research In Motion Limited | Controlling collection of debugging data |
| JP2008052533A (en) * | 2006-08-25 | 2008-03-06 | Matsushita Electric Ind Co Ltd | Debug device |
| US20080313442A1 (en) * | 2007-06-13 | 2008-12-18 | Jian Wei | Debugging techniques for a programmable integrated circuit |
| US20090082008A1 (en) * | 2007-09-21 | 2009-03-26 | Per Thorell | Mobile Phone Code Debugging Method and Apparatus |
| US20090228873A1 (en) * | 2008-03-04 | 2009-09-10 | Drukman Maxwell O | Display breakpointing based on user interface events |
-
2006
- 2006-06-27 KR KR1020060058333A patent/KR101137569B1/en not_active Expired - Fee Related
-
2007
- 2007-06-25 US US11/768,012 patent/US20080126865A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| KR101137569B1 (en) | 2012-04-19 |
| US20080126865A1 (en) | 2008-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101137569B1 (en) | System and method for debugging | |
| US9071989B2 (en) | System and methods that enable automated testing of mobile devices at a remote monitor site | |
| US8254908B2 (en) | Server and method for remotely testing electronic devices | |
| EP1937010B1 (en) | Test apparatus | |
| EP3116165B1 (en) | Method and device for testing a terminal | |
| US9021436B2 (en) | Automatic reconnection of debugger to a reactivated application | |
| US20100227607A1 (en) | Systems and methods for automated mobile device testing with emulated field mobility conditions in real-time | |
| CN110062366A (en) | Bluetooth pairing abnormality eliminating method, equipment, storage medium and device | |
| CN105487966A (en) | Program testing method, device and system | |
| CN114727275B (en) | Method and related device for processing active command | |
| KR20090068457A (en) | Service connection method and device in mobile terminal | |
| CN108093451B (en) | Random access control method, device, storage medium and mobile terminal | |
| KR20110117806A (en) | Apparatus and method for analyzing an error occurrence in a portable terminal | |
| CN111897726B (en) | Abnormality positioning method, abnormality positioning device, storage medium and mobile terminal | |
| KR20110108504A (en) | Apparatus and method for performing a system check on a portable terminal | |
| KR20110049274A (en) | Apparatus and method for performing a virus scan on a portable terminal | |
| CN111132097B (en) | Wireless module driving method and device, wireless module, terminal and storage medium | |
| KR101773908B1 (en) | System for Verifying Application, Terminal and Screen Capturing Method Thereof | |
| CN113419751B (en) | System upgrade method and device for terminal equipment | |
| CN115484343A (en) | Method for preventing data transmission loss of android mobile phone and Bluetooth device based on WeChat applet | |
| KR100574662B1 (en) | Mobile communication terminal with source program tracking and its control method | |
| CN115943659A (en) | Method, apparatus, communication device and storage medium for measuring relaxation | |
| KR20050067876A (en) | Wireless communication terminal and its method for checking key input using interrupt handler | |
| JP2005151398A (en) | Inspecting system of portable communication terminal | |
| KR20210022990A (en) | method for collecting communication information for mobile telecommunication terminal |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| A201 | Request for examination | ||
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| FPAY | Annual fee payment |
Payment date: 20160324 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20170411 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20170411 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |