KR100461521B1 - Program Debugging Method using Assert Function in Switching System - Google Patents

Program Debugging Method using Assert Function in Switching System Download PDF

Info

Publication number
KR100461521B1
KR100461521B1 KR10-2000-0011328A KR20000011328A KR100461521B1 KR 100461521 B1 KR100461521 B1 KR 100461521B1 KR 20000011328 A KR20000011328 A KR 20000011328A KR 100461521 B1 KR100461521 B1 KR 100461521B1
Authority
KR
South Korea
Prior art keywords
function
program
user
information
library
Prior art date
Application number
KR10-2000-0011328A
Other languages
Korean (ko)
Other versions
KR20010087548A (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 KR10-2000-0011328A priority Critical patent/KR100461521B1/en
Publication of KR20010087548A publication Critical patent/KR20010087548A/en
Application granted granted Critical
Publication of KR100461521B1 publication Critical patent/KR100461521B1/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/001Underpants or briefs
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/008Undergarments with releasable waist connecting means
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/02Drawers or underpants for men, with or without inserted crotch or seat parts
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/04Knickers for ladies, with or without inserted crotch or seat parts
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B2300/00Details of shirts, underwear, baby linen or handkerchiefs not provided for in other groups of this subclass
    • A41B2300/30Closures
    • A41B2300/322Closures using slide fasteners
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B2300/00Details of shirts, underwear, baby linen or handkerchiefs not provided for in other groups of this subclass
    • A41B2300/30Closures
    • A41B2300/324Closures using snap fasteners
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B2400/00Functions or special features of shirts, underwear, baby linen or handkerchiefs not provided for in other groups of this subclass
    • A41B2400/32Therapeutic use

Landscapes

  • Engineering & Computer Science (AREA)
  • Textile Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 사용자 프로그래머(User Programmer)가 프로그램을 작성한 후에 해당 프로그램의 기능 이상을 디버깅(Debugging)하고자 할 경우에 유용한 도구를 제공하여 용이하게 에러를 찾아서 수정하고 이에 사용자 작성 프로그램이 안정되게 수행할 수 있도록 한 교환기에서 어서트(Assert) 기능을 이용한 프로그램 디버깅 방법에 관한 것이다.The present invention provides a useful tool when a user programmer writes a program and then wants to debug the function abnormality of the corresponding program so that the user programmer can easily find and correct the error, and the user-written program can be stably performed. This article describes how to debug a program using the Assert function in an exchange.

본 발명은 교환기에서도 어서트 기능을 제공하는 프로그램에 의하여 사용자가 자신의 프로그램을 디버깅할 수 있도록 하며, 다르게는 여러 종류의 메시지 중에서 원하는 메시지만을 출력하고, 파라미터의 값을 파악하고, 해당 정보의 각 레지스터 값을 파악하여 저장하므로 해당 레지스터의 내용을 확인할 수 있으고, 각 함수의 이름을 한 번에 확인하도록 함으로써, 사용자가 프로그램에 대한 에러 수정을 할 수 있는 디버깅 툴을 제공하여 프로그램을 안정화시키며, 또한 사용자가 원하는 메시지만 출력하여 해당 정보를 용이하게 찾을 수 있고, 파라미터와 데이터 값을 구분할 수 있고, 해당 함수의 어드레스 값을 이용하여 하드디스크에 저장되어 있는 파일의 심볼 테이블에서 해당 함수 이름을 파악하여 용이하게 해당 함수 이름을 사용자가 확인할 수 있다.The present invention enables a user to debug his or her own program by a program that provides an assert function in the exchange, otherwise, outputs only the desired message among various types of messages, grasps the value of the parameter, By grasping and storing the register values, you can check the contents of the registers and check the name of each function at once, and stabilize the program by providing a debugging tool that allows the user to correct errors in the program. In addition, you can easily find the information by outputting only the message you want, and distinguish the parameter and data value, and find the function name in the symbol table of the file stored in the hard disk using the address value of the function. User can easily check the function name by There.

Description

교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법 {Program Debugging Method using Assert Function in Switching System}Program Debugging Method Using Assert Function in Switching System

본 발명은 교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법에 관한 것으로, 특히 사용자 프로그래머(User Programmer)가 프로그램을 작성한 후에 해당 프로그램의 기능 이상을 디버깅하고자 할 경우에 유용한 도구를 제공하여 용이하게 에러를 찾아서 수정하고 이에 사용자 작성 프로그램이 안정되게 수행할 수 있도록 한 교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법에 관한 것이다.The present invention relates to a method for debugging a program using an assert function in an exchange. In particular, when a user programmer writes a program and wants to debug a malfunction of the corresponding program, a useful tool is provided to easily find an error. The present invention relates to a program debugging method using an assert function in an exchange so that a user-written program can be stably executed.

일반적으로, 프로그래머인 사용자가 교환기용 프로그램을 작성한 후 해당 프로그램의 설계를 검증함과 아울러 확인하는데, 해당 설계 검증과 확인은 설계 단계의 프로그램 시스템의 높은 신뢰도를 보증하기 위한 활동이다. 즉, 더 신뢰성 있는 프로그램의 구현을 위하여 요구 사항과 일치하지 않는 사항들과 설계 에러들을 초기에 발견하면 개발 가격을 줄일 수 있다.In general, a user who is a programmer writes an exchange program and then verifies and verifies the design of the program. The design verification and verification is an activity to ensure high reliability of the program system at the design stage. In other words, early detection of design mismatches and design errors for a more reliable program can reduce development costs.

이와 같이 프로그램의 설계를 검증하고 확인하기 위하여 교환기에서 어서트 기능을 이용하여 프로그램을 디버깅하는데, 종래의 교환기에는 프로그램 어서트 기능이 구현되어 있지 않으며, 또다른 교환기에서 어서트 기능을 이용하여 사용자가 디버깅을 할 프로그램은 예를 들어 도 1a에 나타낸 바와 같은 프로그램으로 구현되어 있다. 여기서 해당 프로그램은 C 언어와 어셈블리어 형태로 작성된 예제 프로그램이고, 'pd_ASRT_A(asrtid, msg)'는 라이브러리 함수이고, 'local_sec(33, rcvdata)'는 프리미티브 함수이다. 또한, 도 1b는 도 1a에 나타낸 바와 같은 프로그램이 수행될 경우에 사용자 스택에 저장된 내용을 나타낸 도면이다.In order to verify and verify the design of the program as described above, the program is debugged by using the assert function in the exchange. In the conventional exchange, the program assert function is not implemented, and the user uses the assert function in another exchange. The program to be debugged is implemented by, for example, a program as shown in Fig. 1A. Here, the program is an example program written in C and assembly language, 'pd_ASRT_A (asrtid, msg)' is a library function, and 'local_sec (33, rcvdata)' is a primitive function. FIG. 1B is a diagram showing contents stored in a user stack when a program as shown in FIG. 1A is executed.

해당 프로그램이 실행되어 사용자가 원하는 정보를 MMC(Man Machine Communication) 터미널에 출력해 디버깅하는 방법은 도 2에 도시된 바와 같이 수행된다.The program is executed to output the information desired by the user to the MMC terminal and debug the method as shown in FIG. 2.

사용자 프로그래머가 자신의 프로그램 중 에러를 발생시킨다고 의심되는 함수(Function)에 대하여 해당 프로그램에 의해 라이브러리 함수인 'pd_ASRT_A(asrtid, msg)'를 호출한다(스텝 S201). 여기서, 라이브러리 함수를 시작하는 부분에는 각 레지스터 값을 포함하고 있지만 해당 레지스터 값을 파악하지는 않는다. 이에, 라이브러리는 프리미티브 함수인 'local_sec(33, rcvdata)'를 찾은 후에, 해당 프리미티브 함수를 이용하여 정보를 요청한다(스텝 S202). 이에 따라, 실시간 처리를 위한 OS(Operating System)인 CROS(Concurrent Real-Time OS)는 해당 프리미티브 함수를 통해 'user1(user1_i1, user1_i2)', 'user2(user2_i1, user1_i2)'를 차례로 호출하여 도 1B에 도시된 바와 같은 사용자 스택에 저장된 정보를 취득한 후(스텝 S203), 라이브러리에 해당 정보를 전달한다(스텝 S204). 여기서, 해당 프로그램이 컴파일되는 경우에, 함수 'user2(user2_i1, user2_i2)' 내에서 함수 'user1'을 호출하는 부분과 함수 'user3(user3_i1, user3_i2)' 내에서 함수 'user2'를 호출하는 부분의 다음에는 파라미터의 개수를 알 수 있는 기계어 코드 부분이 포함되어 있으나, 이를 파악하지는 않는다. 라이브러리는 해당 정보를 MMC 터미널에 통해 출력하는데, 이에 사용자는 프로그램을 디버깅한다(스텝 S205).The user programmer calls the library function 'pd_ASRT_A (asrtid, msg)' by the corresponding program to a function suspected of causing an error in his program (step S201). Here, the beginning of the library function contains each register value but does not know the register value. Accordingly, the library searches for 'local_sec (33, rcvdata)', which is a primitive function, and then requests information using the corresponding primitive function (step S202). Accordingly, CROS (Concurrent Real-Time OS), which is an operating system (OS) for real-time processing, calls 'user1 (user1_i1, user1_i2)' and 'user2 (user2_i1, user1_i2)' sequentially through corresponding primitive functions, and FIG. 1B. After the information stored in the user stack as shown in FIG. 5 is acquired (step S203), the information is transferred to the library (step S204). Here, when the program is compiled, the part calling the function 'user1' within the function 'user2 (user2_i1, user2_i2)' and the part calling the function 'user2' within the function 'user3 (user3_i1, user3_i2)' The following contains the part of the machine code that knows the number of parameters, but does not grasp this. The library outputs the corresponding information to the MMC terminal, whereby the user debugs the program (step S205).

여기서, 해당 MMC 터미널에 해당 정보의 출력 시에 스택에 저장된 'Rts(of user2)', 'Rts(of user3)', 'user1_v1', 'user1_v2', 'user1_i1', 'user1_i2', 'user2_v1', 'user2_v2' 등을 포함하여 10 개의 값을 동시에 모두 출력한다. 그리고, 'Rts(of user2)', 'Rts(of user3)'는 16진수의 메모리 어드레스(Address) 값으로 출력되어 해당 user 함수의 함수 이름(Function Name)을 해당 16진수 메모리 어드레스로 확인해야 한다.Here, 'Rts (of user2)', 'Rts (of user3)', 'user1_v1', 'user1_v2', 'user1_i1', 'user1_i2', and 'user2_v1' stored in the stack when the information is output to the corresponding MMC terminal. Output all 10 values at the same time, including 'user2_v2'. In addition, 'Rts (of user2)' and 'Rts (of user3)' are output as hexadecimal memory address values, and the function name of the corresponding user function must be identified as the hexadecimal memory address. .

이와 같이, 종래의 교환기는 프로그램 어서트 기능이 구현되어 있지 않아 디버깅 툴을 제공하지 않으므로 프로그래머가 프로그램 디버깅 시에 많은 소용 시간을 요하는 문제점이 있다.As such, the conventional exchanger does not provide a debugging tool because a program assert function is not implemented, and thus a programmer requires a lot of time when debugging a program.

또한, 종래의 다른 교환기는 어서트 기능을 이용하여 스택에 저장된 모든 정보를 단순히 MMC 터미널에 출력하므로, 해당 출력된 정보 중에서 어디까지가 파라미터(Parameter)인지 데이터 값인지를 구별할 수 없을 뿐만 아니라, 프로그래머가 MMC 터미널에 무수히 출력되는 여러 종류의 메시지 속에서 원하는 메시지만 찾아 보기가 매우 어렵고, 라이브러리 함수가 수행되는 순간에 중요한 값인 각 레지스터(Resister) 값을 파악하지 않아 해당 레지스터의 정보를 확인할 수 없는 문제점이 있다.In addition, another conventional exchange simply outputs all the information stored in the stack to the MMC terminal by using the assert function, and thus, it is not only possible to distinguish which parameter or data value among the outputted information. It is very difficult for programmers to find only the messages they want from the various types of messages that are output on the MMC terminal, and it is impossible to check the information of the registers because they do not know the value of each register, which is an important value at the moment the library function is executed. There is a problem.

또한, 종래의 교환기에서는 'Rts(of user2)', 'Rts(of user3)'의 값이 16진수의 메모리 어드레스(Address) 값으로 출력되어 있으므로, 추후에 해당 16진수의 메모리 어드레스 값을 가지고 'user2', 'user3'라는 함수 이름을 각각 확인해야 하는 불편함이 있다.In addition, in the conventional exchange, the values of 'Rts (of user2)' and 'Rts (of user3)' are output as hexadecimal memory address values, so that the memory addresses of the hexadecimal numbers later have ' It is inconvenient to check the function name 'user2' and 'user3' respectively.

본 발명은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 그 목적은 교환기에서도 어서트 기능을 제공하는 프로그램에 의하여 사용자가 자신의 프로그램을 디버깅할 수 있도록 하는 어서트 기능을 이용한 디버깅 방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the problems described above, and an object thereof is to provide a debugging method using an assert function that enables a user to debug his or her own program by a program that provides an assert function in an exchange. .

또한, 본 발명의 또다른 목적은 교환기에서 여러 종류의 메시지 중에서 원하는 메시지만을 출력하여 해당 정보를 용이하게 찾을 수 있고, 파라미터의 값을 파악하여 파라미터와 데이터 값을 구별할 수 있고, 해당 정보의 각 레지스터 값을 파악하여 저장하므로 해당 레지스터의 내용을 확인할 수 있으며, 각 함수의 이름을 한 번에 확인하도록 하는 어서트 기능을 이용한 디버깅 방법을 제공하는데 있다.In addition, another object of the present invention can easily find the corresponding information by outputting only the desired message from the various types of messages in the exchange, it is possible to distinguish between the parameter and the data value by grasping the value of the parameter, It is to provide the debugging method using the assert function that checks the contents of the register because the register value is identified and stored, and the name of each function can be checked at once.

도 1a는 종래 기술에 따른 교환기에서 어서트(Assert) 기능이 첨부된 프로그램을 나타내며, 도 1b는 해당 프로그램 수행 시의 사용자 스택(User Stack)에 저장된 내용을 나타낸 도면,FIG. 1A illustrates a program to which an assert function is attached in an exchange according to the prior art, and FIG. 1B illustrates contents stored in a user stack when performing a corresponding program.

도 2는 종래 기술에 따른 교환기에서 프로그램 디버깅(Debugging) 절차를 나타내는 순서도,2 is a flowchart illustrating a program debugging procedure in an exchange according to the prior art;

도 3은 본 발명에 따른 디버깅 시에 절차를 나타내는 플로우챠트,3 is a flowchart showing a procedure at the time of debugging according to the present invention;

도 4는 본 발명에 따른 디버깅 시에 프로세서에 의해 명령을 처리하는 절차를 나타내는 플로우챠트이다.4 is a flowchart illustrating a procedure of processing an instruction by a processor during debugging in accordance with the present invention.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징은, 사용자가 프로그램의 에러 정보를 요청하는 경우에 더미 터미널을 통해 디버깅 중인 프로세서의 이름과 명령어를 입력받는 과정과; 상기 입력받은 명령어에 따라 상기 프로세서에 의해 메모리에 저장된 정보를 추출하는 과정과; 상기 추출된 정보의 어드레스에 대한 함수 이름을 하드디스크의 심볼 테이블을 검색하여 파악하는 과정과; 상기 메모리에 저장된 정보 및 상기 하드디스크로부터 파악한 함수 이름을 함께 정렬하여 상기 더미 터미널에 출력하는 과정을 포함하여 이루어진 것이다.Features of the present invention for achieving the above object, the process of receiving a name and instructions of the processor under debugging via the dummy terminal when the user requests the error information of the program; Extracting information stored in a memory by the processor according to the received instruction; Retrieving a function table of an address of the extracted information by searching a symbol table of a hard disk; And sorting the information stored in the memory and the function name obtained from the hard disk together and outputting the same to the dummy terminal.

이하, 본 발명의 바람직한 실시 예에 따른 교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법을 첨부된 도면을 참조하여 설명하면 다음과 같다.Hereinafter, a program debugging method using an assert function in an exchange according to a preferred embodiment of the present invention will be described with reference to the accompanying drawings.

본 발명은 수정된 라이브러리 함수인 'pd_ASRT_A()'와, 수정된 프리미티브 함수인 'local_sec()'와, 응용 프로그램으로써 교환기의 프로세서에 추가되어 더미 터미널(Dummy Terminal)에서 들어오는 운영자의 명령어를 처리하는 함수(예를 들어, 'ASERT_FUN()')로 구성된다. 그러면, 본 발명의 방법은 도 3에 도시된 바와 같이, 먼저 운영자의 명령어를 처리하는 함수, 예를 들어 'ASERT_FUN()'를 구현한다. 그리고, 더미 터미널을 통해 사용자가 프로그램의 에러 정보를 요청하게 되는데, 이때 'ASERT_FUN()'를 이용하여 사용자가 디버깅 중인 프로세서의 이름과 함께 해당되는 명령어를 입력하게 되며(스텝 S301), 이에 교환기의 프로세서는 메모리에 저장된 에러 정보를 추출한다(스텝 S302). 그리고, 프로세서는 해당 user 정보에 대한 어드레스가 어떠한 함수에 포함되어 있는지를 확인하기 위해서 교환기의 하드디스크에 저장된 파일의 심볼 테이블(Symbol Table)을 검색하여 해당 정보에 대한 어드레스의 함수 이름을 파악한다(스텝 S303). 그리고, 메모리에서 추출한 정보와 하드디스크에서 검색한 함수 이름을 함께 정렬한 후(스텝 S304) 더미 터미널에 출력하면 사용자가 디버깅한다(스텝 S305).한편, 프로세서가 메모리에 정보를 저장하는 과정(스텝 S302)은 도 4에 도시된 순서로 진행된다. 먼저, 프로그램이 구동되면 라이브러리 함수를 호출한다(스텝 S401). 이에 라이브러리 함수는 시작 부분에 각 레지스터 값을 포함하고 있는데, 해당 레지스터 값을 읽어 해당되는 변수에 저장한다. 그리고, 라이브러리는 해당 정보에 대한 레지스터 값을 저장한 후(스텝 S402), 원하는 정보를 운영 체제인 CROS에게 요청한다(스텝 S403). 이에 CROS는 프리미티브 함수를 이용하여 스택에 저장된 해당 정보를 추출한다(스텝 S404). 여기서, 프로그램을 컴파일하면 프리미티브 함수 내에서 'user'라는 함수에 포함된 이전의 'user' 함수를 호출하는 다음 부분에 이전의 'user' 함수의 파라미터 개수를 파악할 수 있는 기계어 코드 부분이 포함되어 있다. 여기서, 해당 함수를 호출하는 다음 부분에는 해당 소정 개수의 기계어 코드 중 하나로 이루어지는데, 해당 기계어 코드는 '588f', '508f', '4fef' 및 'dffc'의 4 가지이다. 상술한 기계어 코드의 파라미터 개수는 '588f'는 2 개, '508f'는 4 개, '4fef'는 다음에 정렬된 2(Byte)에 저장된 수의 절반 값, 'dffc'는 다음 4(Byte)에 저장된 값의 반이 파리미터의 개수이다. 예를 들어, 기계어 코드 중 '4fef'의 다음에 오는 2(Byte)가 '10'을 나타내면 파라미터의 개수는 5 개이고, 'dffc'의 다음에 오는 4(Byte)가 '14'를 나타내면 파라미터의 개수는 7 개이다.According to the present invention, a modified library function 'pd_ASRT_A ()', a modified primitive function 'local_sec ()', and an application program are added to a processor of an exchange to process an instruction of an operator coming from a dummy terminal. It consists of a function (eg 'ASERT_FUN ()'). The method of the present invention then implements a function, for example 'ASERT_FUN ()', that first processes the operator's instructions, as shown in FIG. Then, the user requests the error information of the program through the dummy terminal. At this time, the user inputs a corresponding command together with the name of the processor being debugged using 'ASERT_FUN ()' (step S301). The processor extracts the error information stored in the memory (step S302). Then, the processor searches the symbol table of the file stored in the hard disk of the exchanger to determine which function the address for the user information is included in, and finds the function name of the address for the information ( Step S303). Then, the information extracted from the memory and the function name retrieved from the hard disk are sorted together (step S304) and output to the dummy terminal for debugging by the user (step S305). Meanwhile, the process of storing the information in the memory (step S305). S302 proceeds in the order shown in FIG. First, when a program is driven, a library function is called (step S401). The library function contains each register value at the beginning, and reads the register value and stores it in the corresponding variable. The library then stores the register value for the corresponding information (step S402), and then requests the desired information from CROS, which is an operating system (step S403). CROS then extracts the corresponding information stored on the stack using the primitive function (step S404). Here, when the program is compiled, the next part of calling the previous 'user' function included in the 'user' function in the primitive function includes a part of machine code that can determine the number of parameters of the previous 'user' function. . Here, the next part of the function call is made of one of a predetermined number of machine language codes, and the machine code is four kinds of '588f', '508f', '4fef' and 'dffc'. The number of parameters of the above machine code is '588f' is 2, '508f' is 4, '4fef' is half the value stored in 2 (Byte) arranged next, and 'dffc' is the next 4 (Byte). Half of the values stored in are the number of parameters. For example, if 2 (Byte) after '4fef' in machine code indicates '10', the number of parameters is 5, and 4 (Byte) after 'dffc' indicates '14'. The number is seven.

이후, CROS는 스택에서 추출한 정보를 다시 라이브러리로 전달하고, 해당 라이브러리는 상기 추출된 정보를 IPC(Internet Protocol Control) 통신을 이용하여 프로세서로 전달하고(스텝 S405), 해당 프로세서는 상기 추출된 정보를 메모리에 저장한다. 여기서, 해당 프로세서에는 사용자의 명령어를 처리하고 상기 정보를 메모리에 저장할 수 있도록 하는 함수(예를 들어, 'ASERT_FUN()')가 정의되어 해당 정보가 메모리에 저장되는 시간도 함께 저장한다(스텝 S406).Thereafter, CROS transfers the information extracted from the stack back to the library, and the library transfers the extracted information to the processor using IPC (Internet Protocol Control) communication (step S405), and the processor transfers the extracted information. Store in memory. In this case, a function (for example, 'ASERT_FUN ()') for processing a user's instruction and storing the information in the memory is defined in the processor, and the time for which the information is stored in the memory is also stored (step S406). ).

이상으로 본 발명의 바람직한 실시 예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술 분야에 있어서 통상의 지식을 가진 사람이라면 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서, 본 발명의 실시 예들의 변경은 본 발명의 기술적 범위를 벗어날 수 없을 것이다.Although the preferred embodiments of the present invention have been described in detail above, it will be understood by those skilled in the art that the present invention may be modified or modified in various ways. Therefore, changes of the embodiments of the present invention will not be able to escape the technical scope of the present invention.

상술한 바와 같이, 본 발명은 교환기에서도 사용자에게 사용자가 프로그램에 대한 에러 수정을 할 수 있는 디버깅 툴을 제공하여 프로그램을 안정화시키는 장점이 있다.As described above, the present invention has an advantage of stabilizing a program by providing a debugging tool that allows a user to correct an error in a program even in an exchange.

또한, 교환기에서도 디버깅시 사용자가 원하는 메시지만 출력하고, 파라미터와 데이터 값을 구분할 수 있으며, 해당 함수의 어드레스 값을 이용하여 하드디스크에 저장되어 있는 파일의 심볼 테이블에서 해당 함수 이름을 파악하므로 용이하게 해당 함수 이름을 사용자가 확인할 수 있는 장점이 있다..In addition, the exchanger can output only the message that the user wants when debugging, and can distinguish the parameter and data value, and the function name is identified in the symbol table of the file stored in the hard disk using the address value of the function. The advantage is that the function name can be checked by the user.

Claims (2)

사용자가 프로그램의 에러 정보를 요청하는 경우에 더미 터미널을 통해 디버깅 중인 프로세서의 이름과 명령어를 입력받는 과정과;Receiving a name and an instruction of a processor under debugging through a dummy terminal when a user requests error information of a program; 상기 입력받은 명령어에 따라 상기 프로세서에 의해 메모리에 저장된 정보를 추출하는 과정과;Extracting information stored in a memory by the processor according to the received instruction; 상기 추출된 정보의 어드레스에 대한 함수 이름을 하드디스크의 심볼 테이블을 검색하여 파악하는 과정과;Retrieving a function table of an address of the extracted information by searching a symbol table of a hard disk; 상기 메모리에 저장된 정보 및 상기 하드디스크로부터 파악한 함수 이름을 함께 정렬하여 상기 더미 터미널에 출력하는 과정을 포함하여 이루어진 것을 특징으로 하는 교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법.And arranging the information stored in the memory and the function name determined from the hard disk together and outputting them to the dummy terminal. 제1항에 있어서,The method of claim 1, 상기 메모리에 저장된 정보를 추출하는 과정은, 상기 프로그램이 구동되는 경우에 상기 프로그램의 라이브러리 함수를 호출하는 단계와;The extracting of the information stored in the memory may include: calling a library function of the program when the program is driven; 상기 라이브러리 함수를 호출하면 상기 라이브러리 함수에 포함된 레지스터 값을 라이브러리가 해당되는 변수에 저장한 후, 프리미티브 함수를 이용하여 사용자가 원하는 정보를 CROS(Concurrent Real-Time OS)에게 요청하는 단계와;Calling the library function, storing a register value included in the library function in a variable corresponding to the library, and then requesting information desired by a user from a concurrent real-time OS (CROS) using a primitive function; 상기 CROS에서 정보 요청을 수신받아 스택에 저장된 정보를 취득하여 상기 라이브러리를 경유하여 상기 프로세서로 전달하는 단계와;Receiving an information request from the CROS, acquiring information stored in a stack, and transferring the information stored in a stack to the processor via the library; 상기 프로세서에서 상기 정보를 수신받아 상기 메모리에 저장하는 단계를 포함하여 이루어진 것을 특징으로 하는 교환기에서 어서트 기능을 이용한 프로그램 디버깅 방법.Receiving the information from the processor and storing the information in the memory.
KR10-2000-0011328A 2000-03-07 2000-03-07 Program Debugging Method using Assert Function in Switching System KR100461521B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0011328A KR100461521B1 (en) 2000-03-07 2000-03-07 Program Debugging Method using Assert Function in Switching System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0011328A KR100461521B1 (en) 2000-03-07 2000-03-07 Program Debugging Method using Assert Function in Switching System

Publications (2)

Publication Number Publication Date
KR20010087548A KR20010087548A (en) 2001-09-21
KR100461521B1 true KR100461521B1 (en) 2004-12-14

Family

ID=19652935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0011328A KR100461521B1 (en) 2000-03-07 2000-03-07 Program Debugging Method using Assert Function in Switching System

Country Status (1)

Country Link
KR (1) KR100461521B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286598A (en) * 1988-05-11 1989-11-17 Nec Corp Exchange program debugging system
KR19980061804A (en) * 1996-12-31 1998-10-07 유기범 Function Parameter Tracking Method in Electronic Switching System
KR100208268B1 (en) * 1996-11-11 1999-07-15 유기범 Method for outputing error information in a full-electronic exchange
KR100222736B1 (en) * 1996-11-26 1999-10-01 유기범 Method for tracking global variable in debuging in switching system
KR100256561B1 (en) * 1997-08-21 2000-05-15 강병호 Method for processor fault information save/confirmation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286598A (en) * 1988-05-11 1989-11-17 Nec Corp Exchange program debugging system
KR100208268B1 (en) * 1996-11-11 1999-07-15 유기범 Method for outputing error information in a full-electronic exchange
KR100222736B1 (en) * 1996-11-26 1999-10-01 유기범 Method for tracking global variable in debuging in switching system
KR19980061804A (en) * 1996-12-31 1998-10-07 유기범 Function Parameter Tracking Method in Electronic Switching System
KR100214125B1 (en) * 1996-12-31 1999-08-02 유기범 Function parameter tracking method in full electronic switching system
KR100256561B1 (en) * 1997-08-21 2000-05-15 강병호 Method for processor fault information save/confirmation

Also Published As

Publication number Publication date
KR20010087548A (en) 2001-09-21

Similar Documents

Publication Publication Date Title
US6412106B1 (en) Graphical system and method for debugging computer programs
US6134690A (en) Computerized automation system and method
US6931631B2 (en) Low impact breakpoint for multi-user debugging
US20050268195A1 (en) Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
Crowley-Milling et al. The NODAL System for the SPS
US8776024B2 (en) Software application fine-tuning method, system, and corresponding computer program product
JPH09325901A (en) Method for executing debugging
US7093237B2 (en) High performance debugging in a message flow environment
US6957421B2 (en) Providing debugging capability for program instrumented code
US6598181B1 (en) Method and system for debugging multiple function calls
US7849470B2 (en) System and method for extending a programming language to include multiple dissimilar object systems
JP2513417B2 (en) Information processing device
US6735774B1 (en) Method and apparatus for system call management
US20070150866A1 (en) Displaying parameters associated with call statements
JP2752094B2 (en) Backtrack processing method in logic language
KR100461521B1 (en) Program Debugging Method using Assert Function in Switching System
WO2017202083A1 (en) Microcode debugging method and single board
US7028294B2 (en) Linking of applications into devices having overlays and shadow memories
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
CN109947407B (en) Data acquisition method and device
JPS6378231A (en) Partial program combining system
US20040216140A1 (en) Method and system for accessing system operations through an interface layer
US7281166B1 (en) User-customizable input error handling
JP2004139609A (en) Development support device
CN115599408B (en) Data burning method, equipment and storage medium of processor

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081201

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee