KR20150089620A - Method and apparatus for checking data in debugging memory - Google Patents
Method and apparatus for checking data in debugging memory Download PDFInfo
- Publication number
- KR20150089620A KR20150089620A KR1020140010475A KR20140010475A KR20150089620A KR 20150089620 A KR20150089620 A KR 20150089620A KR 1020140010475 A KR1020140010475 A KR 1020140010475A KR 20140010475 A KR20140010475 A KR 20140010475A KR 20150089620 A KR20150089620 A KR 20150089620A
- Authority
- KR
- South Korea
- Prior art keywords
- debugging
- data
- memory
- copied
- point
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
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
Description
본 발명은 디버깅 메모리의 데이터를 확인하기 위한 방법 및 이를 위한 장치에 관한 것으로서, 특히 어플리케이션(또는 프로그램)의 모든 동작을 위한 코드를 컴파일하여 디버깅 시 별도의 디버깅 코드 없이 실시간으로 디버깅 메모리 상에 존재하는 데이터를 확인하기 위한 방법 및 이를 위한 장치에 관한 것이다. The present invention relates to a method for verifying data in a debugging memory and an apparatus therefor. More particularly, the present invention relates to a method for verifying data in a debugging memory by compiling a code for all operations of an application (or a program) To a method for verifying data and to an apparatus therefor.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.
일반적으로 개발자가 프로그램 또는 어플리케이션 등을 개발하면, 개발된 프로그램은 완벽하지 않기 때문에 오류가 발생하므로 개발자는 개발한 프로그램의 오류를 찾아 수정해야 한다. 이러한 개발 프로그램의 오류를 찾아 수정하는 작업을 디버깅(Debugging)이라 하며, 프로그램 속에 존재하는 오류(에러)를 버그라 한다. Generally, when a developer develops a program or an application, an error occurs because the developed program is not perfect. Therefore, the developer must find and correct the error of the developed program. The task of finding and fixing errors in these development programs is called debugging, and errors (errors) in programs are called bugs.
디버깅을 위한 방법으로는 크게 디버거와 같은 보조 프로그램을 이용하는 방법과, 검사용 데이터를 입력하여 오류를 찾아 내는 방법이 있다. 이러한 방법을 이용하여 종래의 기술에서는 프로그램의 모든 동작을 위한 코드를 컴파일하여 실행되는 컴파일 코드의 각 로직(코드)에서 사용되는 변수를 확인함으로써 디버깅을 수행하였다. There are two methods for debugging: a method using an auxiliary program such as a debugger and a method for detecting an error by inputting data for inspection. In this technique, the debugging is performed by checking the variables used in each logic (code) of the compile code executed by compiling the code for all operations of the program.
이러한 종래의 디버깅 방법은 디버깅 시 메모리상에 존재하는 데이터의 이상 유무를 확인하기 위하여 해당 메모리를 파일로 저장하고, 이를 재 처리하기 위한 어플리케이션을 직접 실행하는 등 디버깅을 위하여 원본 코드에 디버깅 코드를 삽입하는 동작이 필요하다. In this conventional debugging method, in order to check whether there is an abnormality in data existing in the memory during debugging, a memory is stored as a file, and an application for reprocessing the application is directly executed. .
따라서 종래의 디버깅 방법에서는 데이터 확인을 위해 디버깅 코드를 삽입하고, 파일 시스템에 데이터를 임시 저장한 후 데이터 확인을 위해서는 별도의 어플리케이션을 개발해야 한다. 이로 인해 종래의 디버깅 방법은 데이터 확인을 위한 과정이 매우 복잡하고, 시간이 많이 소요되므로 어플리케이션 개발이 지연되는 문제점이 있다. Therefore, in the conventional debugging method, it is necessary to insert a debugging code to check the data, temporarily store the data in the file system, and develop a separate application to check the data. Therefore, the conventional debugging method has a problem in that the process for checking the data is very complicated and time-consuming, thereby delaying application development.
본 발명은 종래의 불편함을 해소하기 위하여 제안된 것으로서, 어플리케이션 프로세스에서 실행되는 개발 어플리케이션의 컴파일 코드에서 버그가 발생하면, 별도의 디버깅 코드 없이 실시간으로 디버깅 메모리 상에 존재하는 데이터를 확인하기 위한 방법 및 이를 위한 장치를 제공하고자 한다. The present invention has been proposed in order to solve the inconvenience of the prior art, and it is an object of the present invention to provide a method for checking data existing on a debugging memory in real time without a separate debugging code when a bug occurs in a compiled code of a development application executed in an application process And an apparatus therefor.
또한, 본 발명은 디버깅 프로세스에서 디버깅 메모리에 설정된 메모리 지점에서 복사한 데이터를 분석하고, 분석 결과에 따라 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하여 실행시키고, 실행된 특정 플러그인에서 복사한 데이터를 처리하여 실시간으로 출력하도록 하는 디버깅 메모리의 데이터를 확인하기 위한 방법 및 이를 위한 장치를 제공하고자 한다. In addition, the present invention analyzes data copied from a memory location set in the debugging memory in the debugging process, selects and executes a specific plug-in that can check the copied data according to the analysis result, And outputting the data in real time. The present invention also provides a method and apparatus for checking data in a debugging memory.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 디버깅 장치는, 개발 어플리케이션에서 버그가 발생하면, 버그를 수정하기 위한 디버깅 지점을 설정하고, 상기 개발 어플리케이션에 대한 데이터를 저장하고 있는 디버깅 메모리에서 데이터 확인이 필요한 메모리 지점을 설정하고, 설정된 메모리 지점에서 복사한 데이터를 분석하고, 분석 결과에 따라 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하여 선택된 특정 플러그인에서 상기 복사한 데이터를 처리하도록 제어하는 디버깅 실행부; 및 상기 개발 어플리케이션의 컴파일 코드를 실행하고, 상기 디버깅 실행부에 의해 디버깅 지점이 설정되면, 상기 디버깅 실행부의 제어에 따라 상기 설정된 메모리 지점에서 데이터를 복사하여 복사한 데이터를 상기 디버깅 실행부로 전송하고, 상기 디버깅 실행부에 의해 상기 특정 플러그인이 실행되면, 상기 특정 플러그인으로 상기 복사한 데이터를 전송하는 어플리케이션 실행부를 포함할 수 있다. According to an aspect of the present invention, there is provided a debugging apparatus for setting a debugging point for correcting a bug when a bug occurs in a development application, storing data for the development application, A memory point where data checking is required in the debugging memory, analyzes the copied data at the memory location set in the debugging memory, selects a specific plug-in that can check the copied data according to the analysis result, A debugging execution unit for controlling the debugging execution unit; And a debugging unit for executing the compiled code of the development application. When the debugging execution unit sets the debugging point, the data copying unit copies data copied at the memory location, under control of the debugging execution unit, to the debugging execution unit, And an application execution unit that transmits the copied data to the specific plug-in when the specific plug-in is executed by the debugging execution unit.
본 발명의 바람직한 실시예에 따른 디버깅 장치는, 상기 개발 어플리케이션에 대한 데이터를 상기 어플리케이션 실행부에 할당된 별도의 저장 공간인 상기 디버깅 메모리에 저장하는 저장부를 더 포함할 수 있다. The debugging apparatus according to the preferred embodiment of the present invention may further include a storage unit for storing the data for the developed application in the debugging memory, which is a separate storage space allocated to the application executing unit.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 저장부는, 상기 디버깅을 수행하기 위한 디버깅 툴에 대한 데이터를 상기 디버깅 실행부에 할당된 별도의 저장 공간에 저장하고, 상기 디버깅 실행부에서 상기 어플리케이션 메로리에서 복사해온 데이터를 상기 디버깅 실행부에 할당된 별도의 저장 공간에 저장할 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the storage unit stores data on a debugging tool for performing the debugging in a separate storage space allocated to the debugging execution unit, The data copied from the application memory may be stored in a separate storage space allocated to the debugging execution unit.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 개발 어플리케이션의 디버깅 툴의 실행 화면을 출력하고, 상기 어플리케이션 실행부에서 실행되는 상기 개발 어플리케이션의 컴파일 코드의 실행 데이터를 상기 실행 화면에 출력하는 출력부를 더 포함할 수 있다. The debugging apparatus according to the preferred embodiment of the present invention may further include an output unit that outputs an execution screen of the debugging tool of the development application and outputs execution data of the compiled code of the development application executed by the application execution unit, And the like.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 출력부는, 상기 특정 플러그인과 연동하여 상기 특정 플러그인에서 처리된 데이터를 개발자가 실시간으로 확인할 수 있도록 출력할 수 있다.In the debugging apparatus according to the preferred embodiment of the present invention, the output unit may output the data processed in the specific plug-in in cooperation with the specific plug-in so that the developer can check the data in real time.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 디버깅 실행부는, 상기 개발 어플리케이션의 디버깅을 위한 디버깅 툴의 실행을 제어하고, 현재 실행되는 개발 어플리케이션의 컴파일 코드에서 버그가 발생하면 디버그 이벤트를 발생하는 디버깅 지원 모듈; 및 상기 디버그 이벤트가 발생하면, 현재 실행 중인 컴파일 코드에서 상기 버그를 수정하기 위한 디버깅 지점을 설정하고, 상기 디버깅 메모리에서 데이터 확인이 필요한 메모리 지점을 설정하고, 설정된 메모리 지점에서 복사한 데이터를 분석하고, 분석 결과에 따라 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하여 선택된 특정 플러그인에서 상기 복사한 데이터를 처리하도록 제어하는 디버깅 프로세스를 포함할 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the debugging execution unit controls the execution of the debugging tool for debugging the development application, generates a debug event when a bug occurs in the compiled code of the currently executed development application Debugging support module; And setting a debugging point for correcting the bug in the currently executed compile code when the debug event occurs, setting a memory point at which data checking is required in the debugging memory, analyzing the copied data at the set memory point, And a debugging process for controlling the selected plug-in to process the copied data by selecting a specific plug-in that can confirm the copied data according to the analysis result.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 디버깅 프로세스는, 상기 컴파일 코드에 대한 디버그 심볼에 포함된 소스코드 상의 위치에서 메모리 주소를 검출하여 디버깅 지점 명령을 설정하고, 설정된 디버깅 지점 명령을 상기 어플리케이션 실행부로 전송할 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the debugging process may include detecting a memory address at a location on a source code included in a debug symbol for the compiled code, setting a debugging point command, To the application executing section.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 디버깅 프로세스는, 상기 설정된 디버깅 지점에서 개발자에 의해 선택된 시작점과 데이터 사이즈를 이용하여 상기 메모리 지점을 설정할 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the debugging process may set the memory point using a start point and a data size selected by a developer at the set debugging point.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 디버깅 프로세스는, 상기 복사한 데이터의 헤더를 분석하여 상기 복사한 데이터가 일반 데이터인 경우, 분석된 헤더 정보에 상응하는 등록된 플러그인을 선택하여 실행시킬 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the debugging process analyzes a header of the copied data, and when the copied data is general data, a registered plug-in corresponding to the analyzed header information is selected Can be executed.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 디버깅 프로세서는, 상기 복사한 데이터의 헤더를 분석하여 상기 복사한 데이터가 일반 데이터가 아닌 경우, 개발자에 의해 임의로 선택된 플러그인을 실행시킬 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the debugging processor may analyze the header of the copied data, and may execute a plug-in selected arbitrarily by the developer when the copied data is not general data.
본 발명의 바람직한 실시예에 따른 디버깅 장치에 있어서, 상기 어플리케이션 실행부는, 상기 개발 어플리케이션의 컴파일 코드를 실행하고, 상기 디버깅 실행부에 의해 디버깅 지점이 설정되면, 상기 디버깅 실행부의 제어에 따라 상기 설정된 메모리 지점에서 데이터를 복사하여 상기 디버깅 실행부로 전송하는 어플리케이션 프로세스; 및 상기 디버깅 실행부의 제어에 따라 실행되어 상기 어플리케이션 실행부의 상기 메모리 지점에서 복사한 데이터를 읽어와서 상기 복사한 데이터를 실시간으로 확인할 수 있도록 처리하는 하나 이상의 플러그인을 포함할 수 있다. In the debugging apparatus according to the preferred embodiment of the present invention, the application execution unit executes the compiled code of the development application, and when a debugging point is set by the debugging execution unit, An application process of copying data from a point to the debugging execution unit; And one or more plug-ins executed in accordance with the control of the debugging execution unit to read data copied from the memory point of the application execution unit and process the copied data in real time.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법은, 개발 어플리케이션의 컴파일 코드를 실행하는 단계; 상기 실행되는 컴파일 코드에서 버그가 발생하면, 상기 컴파일 코드에서 디버깅 지점을 설정하는 단계; 상기 개발 어플리케이션에 대한 데이터를 저장하고 있는 디버깅 메모리에서 데이터 확인이 필요한 메모리 지점을 설정하는 단계; 설정된 메모리 지점에서 복사한 데이터를 수신하는 단계; 상기 복사한 데이터를 분석하여 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하는 단계; 선택된 특정 플러그인을 실행시키는 단계; 및 실행된 특정 플러그인에서 상기 복사한 데이터를 처리하도록 제어하는 단계를 포함할 수 있다. According to another aspect of the present invention, there is provided a method for checking data in a debugging memory in a debugging apparatus, the method comprising: executing a compiled code of a development application; Setting a debugging point in the compiled code when a bug occurs in the executed compiled code; Setting a memory location that requires data verification in a debugging memory storing data for the development application; Receiving data copied from a set memory location; Analyzing the copied data and selecting a specific plug-in that can confirm the copied data; Executing the selected specific plug-in; And controlling the copied data to be processed in the specific plug-in executed.
본 발명의 바람직한 실시예에 따른 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법에 있어서, 상기 복사한 데이터를 분석하여 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하는 단계는, 상기 복사한 데이터의 헤더를 분석하는 단계; 분석 결과에 따라 상기 복사한 데이터가 일반 데이터인지를 확인하는 단계; 및 상기 복사한 데이터가 일반 데이터인 경우, 분석된 헤더 정보에 상응하는 등록된 플러그인을 선택하는 단계를 포함할 수 있다. The method of verifying data in a debugging memory in a debugging apparatus according to a preferred embodiment of the present invention may further include the step of selecting a specific plug-in for analyzing the copied data and checking the copied data, Analyzing a header of the data; Checking whether the copied data is general data according to the analysis result; And if the copied data is general data, selecting a registered plug-in corresponding to the analyzed header information.
본 발명의 바람직한 실시예에 따른 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법에 있어서, 상기 복사한 데이터를 분석하여 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하는 단계는, 상기 복사한 데이터가 일반 데이터가 아닌 경우, 개발자에 의해 플러그인을 선택받는 단계;를 더 포함할 수 있다. The method of verifying data in a debugging memory in a debugging apparatus according to a preferred embodiment of the present invention may further include the step of selecting a specific plug-in for analyzing the copied data and checking the copied data, And selecting the plug-in by the developer if the data is not general data.
본 발명의 바람직한 실시예에 따른 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법에 있어서, 상기 컴파일 코드에서 디버깅 지점을 설정하는 단계는, 상기 실행되는 컴파일 코드에서 버그가 발생하면, 실시간 지원 모듈에서 디버그 이벤트를 발생하는 단계; 디버깅 프로세스에서 디버그 이벤트에 따라 상기 컴파일 코드에 대한 디버그 심볼을 이용하여 소스코드 상의 메모리 주소를 검출하는 단계; 검출된 메모리 주소를 이용하여 디버깅 지점의 명령을 설정하는 단계; 및 설정된 디버깅 지점 명령을 상기 개발 어플리케이션을 실행하기 위한 어플리케이션 프로세스로 전송하는 단계를 포함할 수 있다. In the method for checking data in a debugging memory in a debugging apparatus according to a preferred embodiment of the present invention, the step of setting a debugging point in the compiling code may include: when a bug occurs in the executed compiling code, Generating a debug event; Detecting a memory address on the source code using a debug symbol for the compiled code according to a debug event in a debugging process; Setting an instruction of a debugging point using the detected memory address; And transmitting the set debugging point command to an application process for executing the development application.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 컴퓨터에서 판독 가능한 기록 매체는 디버깅을 위한 방법을 실행하기 위한 프로그램이 기록되어 있다.According to an aspect of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing a method for debugging.
본 발명은 개발 어플리케이션(또는 프로그램)에서 버그 이벤트가 발생함에 따라 확인이 필요한 메모리 지점에서 복사한 데이터의 분석을 통해 선택된 플러그인을 이용하여 복사한 데이터를 출력함으로써, 개발자가 디버깅 메모리에 저장된 데이터를 실시간으로 확인할 수 있다.According to the present invention, a bug event is generated in a development application (or a program), and the copied data is analyzed by using the selected plug-in through analysis of data copied from a memory point requiring confirmation, thereby outputting the data stored in the debugging memory .
이로 인해 본 발명은 디버깅 메모리에 저장된 데이터의 이상 유무를 보다 간편하게 확인할 수 있으며, 어플리케이션 개발에 소요되는 시간을 줄일 수 있고, 보다 정확하게 어플리케이션을 개발할 수 있는 효과가 있다. Accordingly, the present invention can more easily confirm the abnormality of data stored in the debugging memory, reduce the time required for application development, and develop applications more accurately.
도 1은 본 발명의 실시예에 따른 디버깅을 위한 디버깅 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 실시예에 따른 디버깅을 위한 디버깅 장치의 세부 구성을 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 디버깅 장치에서의 디버깅 프로세스 메모리의 데이터를 확인하기 위한 방법을 도시한 도면이다. 1 is a block diagram of a debugging apparatus for debugging according to an embodiment of the present invention.
2 is a detailed block diagram of a debugging apparatus for debugging according to an embodiment of the present invention.
3 is a diagram illustrating a method for verifying data in a debugging process memory in a debugging apparatus according to an embodiment of the present invention.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.The terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings and the inventor is not limited to the concept of terminology for describing his or her invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.
우선, 본 발명의 실시예에 따른 디버깅을 위한 디버깅 장치에 대해 첨부된 도면을 참조하여 구체적으로 설명하기로 한다. First, a debugging apparatus for debugging according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따른 디버깅을 위한 디버깅 장치의 구성을 도시한 도면이다.1 is a block diagram of a debugging apparatus for debugging according to an embodiment of the present invention.
도 1을 참조하면, 디버깅 장치(100)는 다양한 어플리케이션 및 프로그램 등을 실행할 수 있는 운영체제를 포함하는 컴퓨팅 장치를 말하는 것이며, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 스마트폰(Smart Phone), 개인휴대용 정보단말기(PDA: Personal Digital Assistant), 스마트 TV 및 이동통신 단말기(Mobile Communication Terminal) 등 중 어느 하나일 수 있다. 특히, 본 발명의 실시예에 따른 디버깅 장치(100)는 개발자가 개발한 어플리케이션 또는 프로그램을 업로드 하면, 개발 어플리케이션 또는 프로그램의 모든 동작을 위한 코드를 코딩 즉, 컴파일하여 컴파일된 코드를 실행하여 테스트를 수행할 수 있다. 이때, 디버깅 장치(100)는 테스트되는 컴파일 코드에서 잘못된 부분을 찾아 수정하기 위한 디버깅을 수행할 수 있다. 이러한 디버깅 시 디버깅 장치(100)는 컴파일 코드에서 오류가 발생 즉, 디버그 이벤트가 발생하면, 디버깅 도구를 통해 디비깅을 수행할 수 있다. 이때, 디버깅 장치(100)는 개발 환경 하에서 디버깅이 필요한 시점을 설정하고, 디버깅 시점에서 확인이 필요한 메모리 영역을 시작점과 데이터 사이즈를 이용하여 선택할 수 있다. 이에 따라 디버깅 장치(100)는 선택된 메모리 지점에 저장된 데이터를 읽어(read)와 데이터의 헤더를 분석하고, 분석된 헤더 내용에 따라 플러그인(Plugin)을 선택하고, 선택된 플러그인을 실행시킨 후 실행된 플러그인 메모리로 복사된 데이터를 처리할 수 있다. 여기서, 디버깅 대상은 어플리케이션 또는 프로그램 등이 될 수 있으며, 이하, 본 발명의 실시예에서는 어플리케이션을 예를 들어 설명하기로 한다. 1, the
이러한 디버깅 장치(100)는 입력부(110), 디버깅 실행부(120), 어플리케이션 실행부(130), 저장부(140) 및 출력부(150)를 포함하여 구성될 수 있다. The
입력부(110)는 개발자의 조작에 따라서 개발자의 요청이나 정보에 해당하는 개발자 입력 신호를 발생할 수 있다. 또한, 입력부(110)는 현재 상용화되어 있거나 향후 상용화가 가능한 다양한 입력 수단으로 구현될 수 있으며, 예를 들면, 키보드, 마우스, 조이스틱, 터치 스크린, 터치 패드 등과 같은 일반적인 입력 장치뿐만 아니라, 개발자의 모션을 감지하여 특정 입력 신호를 발생하는 제스처 입력 수단을 포함할 수 있다. 특히 본 발명의 실시예에 따른 입력부(110)는 디버깅 실행부(120)와 연동하여 디버깅을 위한 디버깅 툴의 실행 화면의 입력창을 통해 입력되는 정보들에 대한 입력 신호를 발생할 수 있다. 예를 들어, 입력부(110)는 실행 화면의 입력창을 통해 버그 수정을 위한 명령들을 입력 받아 이에 따른 입력 신호를 발생할 수 있다. The
디버깅 실행부(120)는 개발 어플리케이션에서 버그가 발생하면, 버그를 수정하기 위한 디버깅 지점을 설정하고, 버그를 실시간으로 수정하기 위한 임시 코드를 이용하여 디버깅 지점에서의 디버깅을 실행할 수 있다. 이러한 디버깅 실행부(120)는 디버깅을 위한 디버깅 툴을 통해 디버깅을 실행할 수 있으며, 컴퓨터 등의 중앙 처리 장치(CPU: Central Processing Unit)에서 별도의 프로세스를 통해 동작할 수 있다. When a bug occurs in the development application, the
또한, 디버깅 실행부(120)는 첨부된 도 2에 도시된 바와 같이, 디버깅 실행을 위한 툴로 이루어진 디버깅 환경의 디버깅 지원 모듈(121) 및 디버깅을 위한 프로그램 실행 및 실행 프로그램의 처리를 위한 디버깅 프로세스(122)를 포함하여 구성될 수 있다. 여기서, 디버깅 프로세스(122)는 디버깅 장치(100)의 중앙처리장치(CPU)에서 처리되나, 별도의 프로세스로 동작하게 되며, 저장부(140)에 별도의 메모리를 구성하여 구성된 메모리에 필요한 정보 등을 저장할 수 있다. 2, the
디버깅 지원 모듈(121)은 디버깅 툴의 실행을 제어하고, 디버깅 프로세스(122)를 지원하기 위한 기능을 제공하는 예를 들어, 윈도우(Windows) 커널 등과 같은 운영체제이다. 또한 디버깅 지원 모듈(121)은 어플리케이션 실행부(130)에서 디버그 트랩(Debug trap)을 발생하면, 이를 감지하여 디버깅 프로세스로 디버그 이벤트(Debug event)를 발생할 수 있다. The
디버깅 프로세스(122)는 디버깅 대상인 개발 어플리케이션을 실행하는 어플리케이션 프로세스(131)의 메모리를 읽고 쓸 수 있으며, 디버그 이벤트 발생에 따라 이에 해당하는 기능을 수행하는 프로그램이다. 이러한 디버깅 프로세스(122)는 어플리케이션 프로세스(131)를 새로 시작하거나 이미 수행중인 어플리케이션 프로세스(131)와의 연결(attach)을 수행하고, 디버그 이벤트 발생을 대기하고, 디버그 이벤트가 발생하면, 해당 디버그 이벤트를 처리하는 과정을 반복 루푸(디버거 루푸: Debugger loop)를 이용하여 반복 수행할 수 있다. The
특히, 디버깅 프로세스(122)는 버그가 발생 즉, 디버그 이벤트가 발생하면, 현재 실행 중인 컴파일 코드에서 상기 버그를 수정하기 위한 디버깅 지점을 설정하고, 설정된 디버깅 지점의 디버깅을 수행할 수 있다. 여기서, 디버깅 프로세스(122)는 컴파일 코드에 대한 디버그 심볼에 포함된 소스코드 상의 위치에서 메모리 주소를 검출하여 디버깅 지점 명령을 설정하고, 설정된 디버깅 지점 명령을 어플리케이션 실행부(130)로 전송할 수 있다. In particular, when a bug occurs, that is, when a debug event occurs, the
또한, 디버깅 프로세스(122)는 디버깅 지점이 설정되면, 개발 어플리케이션에 대한 데이터(컴파일 코드에 대한 데이터)를 저장하고 있는 디버깅 메모리에서 데이터 확인을 위한 메모리 지점 즉, 현재 버그가 발생한 디버깅 지점의 컴파일 코드에 대한 데이터를 저장한 메모리 지점(영역)을 설정하고, 이에 대한 명령 신호를 어플리케이션 실행부(130)의 어플리케이션 프로세스(131)로 전송할 수 있다. 여기서, 디버깅 프로세스(122)는 설정된 디버깅 지점에서 확인이 필요한 메모리 지점을 개발자에 의해 선택된 시작점과 데이터 사이즈를 이용하여 설정할 수 있다. In addition, when the debugging point is set, the
이에 따라 디버깅 프로세스(122)는 디버깅 메모리에서 지정된 메모리 지점에서 복사한 데이터를 읽어온(read) 후, 복사한 데이터의 헤더를 분석하고, 분석 결과에 따라 복사한 데이터를 확인할 수 있는 특정 플러그인(132)를 선택할 수 있다. 그리고 디버깅 프로세스(122)는 선택된 특정 플러그인(132)과 연결하여 특정 플러그인(132)을 실행시키고, 실행된 플러그인(132)이 메모리 지점에서 직접 읽어온 데이터를 처리할 수 있도록 제어할 수 있다. 구체적으로 디버깅 프로세스(122)는 디버깅 메모리 상에 존재하는 데이터가 일반적으로 많이 사용하는 데이터(이하, 일반 데이터라 칭함) 포멧 예를 들어, jpeg, png 등의 이미지, wave 등의 사운드)인 경우에는 복사한 데이터의 헤더 정보의 분석 결과에 상응하는 등록된 플러그인을 선택할 수 있다. 반면, 디버깅 프로세스(122)는 복사한 데이터가 일반 데이터가 아닌 경우 개발자에 의해 데이터를 확인할 수 있는 플러그인을 선택받아 실행시킬 수 있다. Accordingly, the
다음으로, 어플리케이션 실행부(130)는 개발 어플리케이션을 실행 즉, 컴파일 코드를 실행하고, 개발 어플리케이션에 대한 데이터를 저장한 디버깅 메모리에서 설정된 메모리 지점의 데이터를 복사하여 복사한 데이터를 디버깅 실행부(120)로 전송할 수 있다. 이러한 어플리케이션 실행부(130)는 첨부된 도 2에 도시된 바와 같이, 어플리케이션 프로그램의 실행 관련 처리를 위한 어플리케이션 프로세스(131) 및 하나 이상의 다수의 플러그인(plugin)(132)을 포함하여 구성될 수 있다. 또한, 어플리케이션 실행부(130)는 개발 어플리케이션에 대한 디버깅 및 디버깅 메모리의 데이터를 실시간 확인하기 위해 디버깅 실행부(120)와 연동할 수 있다. 여기서, 어플리케이션 프로세스(131)는 디버깅 장치(100)의 중앙처리장치(CPU)에서 처리되나, 별도의 프로세스로 동작하게 되며, 저장부(140)에 별도의 메모리를 구성하여 구성된 메모리에 필요한 정보 등을 저장할 수 있다. Next, the
어플리케이션 프로세스(131)는 개발 어플리케이션을 실행 즉, 개발된 코드들을 컴파일한 컴파일 코드를 실행하고, 디버깅 프로세스(122)에 의해 디버깅 지점이 설정되면, 디버깅 프로세스(122)로부터 이에 대한 명령 신호를 수신할 수 있다. 그리고 어플리케이션 프로세스(131)는 디버깅 프로세스(122)로부터 메모리 지정 명령 신호를 수신하면, 디버깅 메모리에 저장된 데이터를 복사하여 복사된 데이터를 디버깅 프로세스(122)로 제공할 수 있다. 이후, 디버깅 프로세스(122)에서 선택된 플러그인(132)이 실행되면, 선택된 플러그인(132)의 데이터 리드 요청에 따라 해당 복사된 데이터를 플러그인(132)으로 전송할 수 있다. The
플러그인(132)은 디버깅 프로세스(122)에서 선택되어 디버깅 프로세스(122)의 제어에 따라 실행될 수 있으며, 어플리케이션 프로세스(131)와 연동하여 어플리케이션 프로세스(131)로부터 확인이 필요한 복사된 데이터를 읽어와서 읽어온 데이터의 종류에 맞는 실행할 수 있다. 이를 위해 플러그인(132)은 복사된 데이터를 시각화 또는 청각화하여 처리 즉, 플러그인 실행 화면에 영상을 디스플레이하거나, 출력부(150)의 스피커를 통해 사운드를 출력할 수 있다. 이에 따라 개발자는 플러그인(132)에서 출력되는 데이터를 통해 디버깅 메모리에 저장되어 있는 데이터의 이상 유무를 확인할 수 있게 된다. The plug-in 132 is selected in the
또한, 플러그인(132)은 직접 메모리 지점에서 데이터를 읽어오지 않고, 임시 파일 형태로 저장하여 디버깅 장치(100)의 저장부(140)에 저장된 3rd 파트 어플리케이션을 직접 실행하여 결과를 확인할 수도 있다. Also, the plug-in 132 may directly read the result of the 3 rd part application stored in the
저장부(140)는 디버깅 장치(100)의 동작에 필요한 정보들을 저장하며, 특히, 개발 어플리케이션에 대한 데이터를 어플리케이션 실행부(130)에 할당된 별도의 저장 공간인 디버깅 메모리에 저장할 수 있다. 또한, 저장부(140)는 디버깅 실행부(120)에서 디버깅을 수행하기 위한 디버깅 툴에 대한 데이터를 디버깅 실행부(120)에 할당된 별도의 저장 공간에 저장하고, 디버깅 메모리에서 복사한 데이터를 상기 디버깅 실행부(120)에 할당된 별도의 저장 공간에 저장할 수 있다. 이러한 저장부(140)는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media) 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리를 포함한다. The
출력부(150)는 디버깅 장치(100)의 동작 결과나 상태를 개발자가 인식할 수 있도록 제공하는 수단으로서, 예를 들면, 화면을 통해 시각적으로 출력하는 표시부나, 가청음을 출력하는 스피커 등을 포함할 수 있다. 특히, 본 발명에 있어서, 출력부(150)는 디버깅 장치(100)에서 구동되는 디버깅에 관련된 화면을 표시하기 위해 개발 어플리케이션의 디버깅 툴의 실행 화면을 출력할 수 있다. 그리고 출력부(150)는 어플리케이션 실행부(130)에서 실행되는 개발 어플리케이션의 컴파일 코드의 실행 데이터를 실행 화면에 출력하고, 특정 플러그인(132)과 연동하여 특정 플러그인(132)에서 처리된 데이터를 출력할 수 있다. The
그러면, 이와 같이 구성된 디버깅 장치에서 디버깅 메모리의 데이터를 확인하기 위한 방법에 대해 첨부된 도면을 참조하여 구체적으로 설명하기로 한다. A method for checking the data of the debugging memory in the debugging apparatus constructed as above will now be described in detail with reference to the accompanying drawings.
도 3은 본 발명의 실시예에 따른 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법을 도시한 도면이다.3 is a diagram illustrating a method for checking data in a debugging memory in a debugging apparatus according to an embodiment of the present invention.
도 3을 참조하면, 1101단계에서 디버깅 장치(100)는 개발 어플리케이션을 실행 즉, 개발한 컴파일 코드를 실행한다. 이때, 어플리케이션 프로세스(131)에서 디버그 트랩이 발생하여 디버깅 지원 모듈(121)이 디버그 이벤트를 발생하면, 즉, 실행되는 컴파일 코드에서 버그가 발생하면, 1102단계에서 디버깅 장치(100)는 디버깅 프로세스(122)를 통해 컴파일 코드에서 디버깅 지점을 설정한다. 이때, 디버깅 프로세스(122)는 디버깅 프로세스에서 디버그 이벤트에 따라 상기 컴파일 코드에 대한 디버그 심볼을 이용하여 소스코드 상의 메모리 주소를 검출하고, 검출된 메모리 주소를 이용하여 디버깅 지점의 명령을 설정하여 설정된 디버깅 지점 명령을 상기 개발 어플리케이션을 실행하기 위한 어플리케이션 프로세스로 전송한다. Referring to FIG. 3, in
이에 따라 1103단계에서 디버깅 장치(100)는 설정된 디버깅 지점에서의 디버깅을 시작하고, 반복 루프를 통해 코드들의 디버깅을 수행한다. 이때, 디버깅 장치(100)의 디버깅 프로세스(120)는 디버깅 지점에서 확인이 필요한 디버깅 메모리 지점을 설정하고, 메모리 지점 설정 명령 신호를 어플리케이션 프로세스(131)로 전송한다. Accordingly, in step 1103, the
그런 다음 1104단계에서 디버깅 장치(100)의 디버깅 프로세스(122)는 디버깅 메모리에서 설정된 메모리 지점에 저장된 데이터를 읽어온다. 이때, 어플리케이션 프로세스(131)는 설정된 메모리 지점에 저장된 데이터를 복사하여 복사한 데이터를 디버깅 프로세스(122)로 전송하게 된다. In step 1104, the
그러면 1105단계에서 디버깅 프로세스(122)는 복사된 데이터의 헤더를 분석하고, 1106단계에서 분석 결과 즉, 분석한 헤더 정보에 따라 이에 상응하는 특정 플러그인(132)을 선택할 수 있다. 그런 다음 1107단계에서 선택된 특정 플러그인(132)을 실행시킨다. 여기서, 디버깅 프로세스(122)는 분석 결과에 따라 상기 복사한 데이터가 일반 데이터인지를 확인하여, 복사한 데이터가 일반 데이터인 경우, 분석된 헤더 정보에 상응하는 등록된 플러그인(132)을 선택하고, 복사한 데이터가 일반 데이터가 아닌 경우, 개발자에 의해 플러그인(132)을 선택받는다. In step 1105, the
이후, 디버깅 장치(100)는 실행되는 플러그인(132)을 통해 디버깅 메모리에서 직접 복사한 데이터를 읽어서 처리하도록 제어한다. 이에 따라 1108단계에서 실행되는 플러그인(132)은 디버깅 메모리에서 직접 데이터를 읽어온다. 그런 다음 디버깅 장치(100)는 1109단계에서 읽어온 데이터를 시각화 또는 청각화 처리하여 출력함으로써 개발자가 디버깅 메모리에서 읽어온 즉, 복사한 데이터를 실시간으로 확인할 수 있도록 한다. Then, the
이와 같은 디버깅을 위한 방법에 따라 개발자에 개발한 어플리케이션을 테스트하여 오류를 찾는 디버깅 작업 시 디버깅 장치(100)는 변경된 코드 즉, 임시 코드를 입력받아 버그가 발생한 즉, 수정이 필요한 부분에 삽입하여 변경된 코드를 테스트할 수 있다. 이에 따라 디버깅 장치(100)는 디버깅을 멈추고 버그를 수정하지 않고, 실시간으로 버그 수정 작업을 수행할 수 있다. According to the method for debugging, the
한편, 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.On the other hand, the recorded program instructions may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be an optical recording medium such as a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, a compact disk read only memory (CD-ROM), a digital video disk (DVD) Includes a hardware device that is specially configured to store and execute program instructions such as a magneto-optical medium such as a floppy disk and a ROM, a random access memory (RAM), a flash memory, do. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Further, a computer program (also known as a program, software, software application, script or code) that is embedded in the apparatus according to the present invention and which implements the method according to the present invention includes a compiled or interpreted language, a priori or procedural language , And may be deployed in any form including standalone programs or modules, components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in the file system. The program may be stored in a single file provided to the requested program, or in multiple interactive files (e.g., a file storing one or more modules, subprograms, or portions of code) (E.g., one or more scripts stored in a markup language document). A computer program may be deployed to run on multiple computers or on one computer, located on a single site or distributed across multiple sites and interconnected by a communications network.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.It should be noted that the embodiments of the present invention disclosed in the present specification and drawings are only illustrative of specific examples for the purpose of understanding and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
또한, 본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.In addition, while the specification contains a number of specific implementation details, it should be understood that they are not to be construed as limitations on the scope of any invention or claim, but rather on the features that may be specific to a particular embodiment of a particular invention Should be understood as an explanation. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Further, although the features may operate in a particular combination and may be initially described as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, Or a variant of a subcombination.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a particular order, it should be understood that such operations must be performed in that particular order or sequential order shown to achieve the desired result, or that all illustrated operations should be performed. Also, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products It should be understood.
본 발명은 디버깅을 위한 방법 및 장치에 관한 것으로, 개발 어플리케이션(또는 프로그램)에서 버그 이벤트가 발생함에 따라 확인이 필요한 메모리 지점에서 복사한 데이터의 분석을 통해 선택된 플러그인을 이용하여 복사한 데이터를 출력함으로써, 개발자가 디버깅 메모리에 저장된 데이터를 실시간으로 확인할 수 있다.The present invention relates to a method and an apparatus for debugging, and it is an object of the present invention to provide a method and an apparatus for debugging by outputting copied data using a plug-in selected through analysis of data copied from a memory point requiring confirmation as a bug event occurs in a development application , The developer can check the data stored in the debugging memory in real time.
이로 인해 본 발명은 디버깅 메모리에 저장된 데이터의 이상 유무를 보다 간편하게 확인할 수 있으며, 어플리케이션 개발에 소요되는 시간을 줄일 수 있고, 보다 정확하게 어플리케이션을 개발할 수 있는 효과가 있다. Accordingly, the present invention can more easily confirm the abnormality of data stored in the debugging memory, reduce the time required for application development, and develop applications more accurately.
아울러, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.In addition, the present invention has a possibility of commercial use or business, and is industrially applicable because it is practically possible to carry out clearly.
100: 디버깅 장치 110: 입력부 120: 디버깅 실행부
121: 디버깅 지원 모듈 122: 디버깅 프로세스
130: 어플리케이션 실행부 131: 어플리케이션 프로세스
132: 플러그인 140: 저장부 150: 출력부100: debugging apparatus 110: input unit 120: debugging execution unit
121: Debugging support module 122: Debugging process
130: Application execution unit 131: Application process
132: plug-in 140: storage unit 150: output unit
Claims (16)
상기 개발 어플리케이션의 컴파일 코드를 실행하고, 상기 디버깅 실행부에 의해 디버깅 지점이 설정되면, 상기 디버깅 실행부의 제어에 따라 상기 설정된 메모리 지점에서 데이터를 복사하여 복사한 데이터를 상기 디버깅 실행부로 전송하고, 상기 디버깅 실행부에 의해 상기 특정 플러그인이 실행되면, 상기 특정 플러그인으로 상기 복사한 데이터를 전송하는 어플리케이션 실행부;
를 포함하는 것을 특징으로 하는 디버깅 장치. When a bug occurs in a development application, a debugging point for correcting a bug is set, a memory point for checking data is set in a debugging memory storing data for the development application, A debugging execution unit for selecting a specific plug-in that can check the copied data according to the analysis result, and controlling the selected copied plug-in to process the copied data; And
Wherein the debugging unit executes the compiled code of the development application, and when the debugging execution unit sets the debugging point, the data copying unit copies the copied data at the memory location according to the control of the debugging execution unit and transmits the copied data to the debugging execution unit, An application execution unit for transmitting the copied data to the specific plug-in when the specific plug-in is executed by the debugging execution unit;
And a debugging unit for debugging the debugging apparatus.
상기 개발 어플리케이션에 대한 데이터를 상기 어플리케이션 실행부에 할당된 별도의 저장 공간인 상기 디버깅 메모리에 저장하는 저장부;
를 더 포함하는 것을 특징으로 하는 디버깅 장치. The method according to claim 1,
A storage unit for storing data for the development application in the debugging memory, which is a separate storage space allocated to the application execution unit;
Further comprising: a debugging unit operable to debug the debugging device.
상기 디버깅을 수행하기 위한 디버깅 툴에 대한 데이터를 상기 디버깅 실행부에 할당된 별도의 저장 공간에 저장하고, 상기 디버깅 실행부에서 상기 어플리케이션 메로리에서 복사해온 데이터를 상기 디버깅 실행부에 할당된 별도의 저장 공간에 저장하는 것을 특징으로 하는 디버깅 장치. The apparatus according to claim 2,
Wherein the debugging unit stores data for a debugging tool for performing debugging in a separate storage space allocated to the debugging execution unit, and the data copied from the application memory in the debugging execution unit is stored in a separate storage And stores the program in a space.
상기 개발 어플리케이션의 디버깅 툴의 실행 화면을 출력하고, 상기 어플리케이션 실행부에서 실행되는 상기 개발 어플리케이션의 컴파일 코드의 실행 데이터를 상기 실행 화면에 출력하는 출력부;
를 더 포함하는 것을 특징으로 하는 디버깅 장치. The method according to claim 1,
An output unit outputting an execution screen of a debugging tool of the development application and outputting execution data of a compiled code of the development application executed by the application executing unit to the execution screen;
Further comprising: a debugging unit operable to debug the debugging device.
상기 특정 플러그인과 연동하여 상기 특정 플러그인에서 처리된 데이터를 개발자가 실시간으로 확인할 수 있도록 출력하는 것을 특징으로 하는 디버깅 장치. 5. The apparatus according to claim 4,
Wherein the debugging unit outputs the data processed by the specific plug-in in cooperation with the specific plug-in so that the developer can check the data processed in real time.
상기 개발 어플리케이션의 디버깅을 위한 디버깅 툴의 실행을 제어하고, 현재 실행되는 개발 어플리케이션의 컴파일 코드에서 버그가 발생하면 디버그 이벤트를 발생하는 디버깅 지원 모듈; 및
상기 디버그 이벤트가 발생하면, 현재 실행 중인 컴파일 코드에서 상기 버그를 수정하기 위한 디버깅 지점을 설정하고, 상기 디버깅 메모리에서 데이터 확인이 필요한 메모리 지점을 설정하고, 설정된 메모리 지점에서 복사한 데이터를 분석하고, 분석 결과에 따라 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하여 선택된 특정 플러그인에서 상기 복사한 데이터를 처리하도록 제어하는 디버깅 프로세스;
를 포함하는 것을 특징으로 하는 디버깅 장치. The apparatus of claim 1, wherein the debugging execution unit comprises:
A debugging support module for controlling the execution of the debugging tool for debugging the development application and generating a debug event when a bug occurs in the compiled code of the currently executed development application; And
Setting a debugging point for correcting the bug in a currently executing compile code, setting a memory point for which data checking is required in the debugging memory, analyzing data copied from the memory point, A debugging process of selecting a specific plug-in that can check the copied data according to the analysis result and controlling the selected copied plug-in to process the copied data;
And a debugging unit for debugging the debugging apparatus.
상기 컴파일 코드에 대한 디버그 심볼에 포함된 소스코드 상의 위치에서 메모리 주소를 검출하여 디버깅 지점 명령을 설정하고, 설정된 디버깅 지점 명령을 상기 어플리케이션 실행부로 전송함을 특징으로 하는 디버깅 장치. 7. The method of claim 6,
Detecting a memory address at a location on the source code included in the debug symbol for the compiled code, setting a debugging point command, and transmitting the set debugging point command to the application executing unit.
상기 설정된 디버깅 지점에서 개발자에 의해 선택된 시작점과 데이터 사이즈를 이용하여 상기 메모리 지점을 설정함을 특징으로 하는 디버깅 장치. 7. The method of claim 6,
Wherein the memory location is set using a starting point and a data size selected by a developer at the set debugging point.
상기 복사한 데이터의 헤더를 분석하여 상기 복사한 데이터가 일반 데이터인 경우, 분석된 헤더 정보에 상응하는 등록된 플러그인을 선택하여 실행시킴을 특징으로 하는 디버깅 장치. 7. The method of claim 6,
Analyzing a header of the copied data, and, when the copied data is general data, selecting a registered plug-in corresponding to the analyzed header information, and executing the selected plug-in.
상기 복사한 데이터의 헤더를 분석하여 상기 복사한 데이터가 일반 데이터가 아닌 경우, 개발자에 의해 임의로 선택된 플러그인을 실행시킴을 특징으로 하는 디버깅 장치. 7. The system of claim 6, wherein the debugging processor comprises:
And analyzes the header of the copied data to execute a plug-in selected arbitrarily by the developer if the copied data is not general data.
상기 개발 어플리케이션의 컴파일 코드를 실행하고, 상기 디버깅 실행부에 의해 디버깅 지점이 설정되면, 상기 디버깅 실행부의 제어에 따라 상기 설정된 메모리 지점에서 데이터를 복사하여 상기 디버깅 실행부로 전송하는 어플리케이션 프로세스; 및
상기 디버깅 실행부의 제어에 따라 실행되어 상기 어플리케이션 실행부의 상기 메모리 지점에서 복사한 데이터를 읽어와서 상기 복사한 데이터를 실시간으로 확인할 수 있도록 처리하는 하나 이상의 플러그인;
을 포함하는 것을 특징으로 하는 디버깅 장치. The apparatus according to claim 1,
An application process of executing the compiled code of the development application and copying data to the debugging execution unit according to a control of the debugging execution unit when the debugging execution unit sets a debugging point; And
One or more plug-ins executed under the control of the debugging execution unit to read data copied from the memory point of the application execution unit and process the copied data in real time;
And a debugging unit for debugging the debugging apparatus.
상기 실행되는 컴파일 코드에서 버그가 발생하면, 상기 컴파일 코드에서 디버깅 지점을 설정하는 단계;
상기 개발 어플리케이션에 대한 데이터를 저장하고 있는 디버깅 메모리에서 데이터 확인이 필요한 메모리 지점을 설정하는 단계;
설정된 메모리 지점에서 복사한 데이터를 수신하는 단계;
상기 복사한 데이터를 분석하여 상기 복사한 데이터를 확인할 수 있는 특정 플러그인을 선택하는 단계;
선택된 특정 플러그인을 실행시키는 단계; 및
실행된 특정 플러그인에서 상기 복사한 데이터를 처리하도록 제어하는 단계;
를 포함하는 것을 특징으로 하는 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법.Executing the compiled code of the development application;
Setting a debugging point in the compiled code when a bug occurs in the executed compiled code;
Setting a memory location that requires data verification in a debugging memory storing data for the development application;
Receiving data copied from a set memory location;
Analyzing the copied data and selecting a specific plug-in that can confirm the copied data;
Executing the selected specific plug-in; And
Controlling to process the copied data in a specific plug-in executed;
The method of claim 1, further comprising the steps of:
상기 복사한 데이터의 헤더를 분석하는 단계;
분석 결과에 따라 상기 복사한 데이터가 일반 데이터인지를 확인하는 단계; 및
상기 복사한 데이터가 일반 데이터인 경우, 분석된 헤더 정보에 상응하는 등록된 플러그인을 선택하는 단계;
를 포함하는 것을 특징으로 하는 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법. The method of claim 12, wherein the step of selecting a particular plug-in, which is capable of analyzing the copied data and confirming the copied data,
Analyzing a header of the copied data;
Checking whether the copied data is general data according to the analysis result; And
If the copied data is general data, selecting a registered plug-in corresponding to the analyzed header information;
The method of claim 1, further comprising the steps of:
상기 복사한 데이터가 일반 데이터가 아닌 경우, 개발자에 의해 플러그인을 선택받는 단계;
를 더 포함하는 것을 특징으로 하는 디버깅 메모리의 데이터를 확인하기 위한 방법.The method of claim 13, wherein the step of selecting a particular plug-in, which can analyze the copied data and check the copied data,
Selecting the plug-in by the developer if the copied data is not general data;
Further comprising the steps of: receiving the debugging data from the debugging memory.
상기 실행되는 컴파일 코드에서 버그가 발생하면, 실시간 지원 모듈에서 디버그 이벤트를 발생하는 단계;
디버깅 프로세스에서 디버그 이벤트에 따라 상기 컴파일 코드에 대한 디버그 심볼을 이용하여 소스코드 상의 메모리 주소를 검출하는 단계;
검출된 메모리 주소를 이용하여 디버깅 지점의 명령을 설정하는 단계; 및
설정된 디버깅 지점 명령을 상기 개발 어플리케이션을 실행하기 위한 어플리케이션 프로세스로 전송하는 단계;
를 포함하는 것을 특징으로 하는 디버깅 장치에서의 디버깅 메모리의 데이터를 확인하기 위한 방법. 13. The method of claim 12, wherein the step of setting a debugging point in the compiled code comprises:
Generating a debug event in the real-time support module when a bug occurs in the executed compile code;
Detecting a memory address on the source code using a debug symbol for the compiled code according to a debug event in a debugging process;
Setting an instruction of a debugging point using the detected memory address; And
Transmitting a set debugging point command to an application process for executing the development application;
The method of claim 1, further comprising the steps of:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140010475A KR20150089620A (en) | 2014-01-28 | 2014-01-28 | Method and apparatus for checking data in debugging memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140010475A KR20150089620A (en) | 2014-01-28 | 2014-01-28 | Method and apparatus for checking data in debugging memory |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150089620A true KR20150089620A (en) | 2015-08-05 |
Family
ID=53886032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140010475A KR20150089620A (en) | 2014-01-28 | 2014-01-28 | Method and apparatus for checking data in debugging memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20150089620A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190014964A (en) * | 2017-08-04 | 2019-02-13 | 주식회사 한컴엠디에스 | Debuging method for embedded device |
-
2014
- 2014-01-28 KR KR1020140010475A patent/KR20150089620A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190014964A (en) * | 2017-08-04 | 2019-02-13 | 주식회사 한컴엠디에스 | Debuging method for embedded device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569347B2 (en) | Testing optimized binary modules | |
US8370816B2 (en) | Device, method and computer program product for evaluating a debugger script | |
US20130311827A1 (en) | METHOD and APPARATUS for automatic testing of automation software | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
US8868976B2 (en) | System-level testcase generation | |
CN107832059B (en) | Code static analysis method and device based on Makefile | |
US20170054790A1 (en) | System and Method for Object Compression and State Synchronization | |
CN109522010B (en) | Initialization code adding method and device, storage medium and electronic equipment | |
US8117499B2 (en) | Generation of a stimuli based on a test template | |
US9141351B2 (en) | Indicators for resources with idempotent close methods in software programs | |
CN105453033A (en) | Program testing service | |
US9229846B1 (en) | Testing application code changes using a state assertion framework | |
KR20140088963A (en) | System and method for testing runtime error | |
US10133652B2 (en) | Debugging optimized code using FAT binary | |
US9075679B1 (en) | Creating a prerequisite checklist corresponding to a software application | |
KR20150089620A (en) | Method and apparatus for checking data in debugging memory | |
US11537308B2 (en) | Information processing system, information processing device, storage medium, and information processing method of detecting destruction of data due to file transfer | |
CN108614704A (en) | Code compiling method and device | |
CN112596751A (en) | Compiling method, terminal, server and storage medium of application program installation package | |
KR20150089619A (en) | Real time debugging method and apparatus | |
EP2782005A1 (en) | Verifying state reachability in a statechart model having computer program code embedded therein | |
EP4339768A1 (en) | Version management method, version management program, and version management system | |
Nembhard et al. | Conversational code analysis: The future of secure coding | |
KR102102806B1 (en) | Method for safety activity management of safty critical system and apparatus thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |