KR100205061B1 - Driving method of debugger in distributed computing environment - Google Patents

Driving method of debugger in distributed computing environment Download PDF

Info

Publication number
KR100205061B1
KR100205061B1 KR1019960014695A KR19960014695A KR100205061B1 KR 100205061 B1 KR100205061 B1 KR 100205061B1 KR 1019960014695 A KR1019960014695 A KR 1019960014695A KR 19960014695 A KR19960014695 A KR 19960014695A KR 100205061 B1 KR100205061 B1 KR 100205061B1
Authority
KR
South Korea
Prior art keywords
debugger
program
debugged
core
debugging
Prior art date
Application number
KR1019960014695A
Other languages
Korean (ko)
Other versions
KR970076232A (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 KR1019960014695A priority Critical patent/KR100205061B1/en
Publication of KR970076232A publication Critical patent/KR970076232A/en
Application granted granted Critical
Publication of KR100205061B1 publication Critical patent/KR100205061B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

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

본 발명은 분산환경에서 메시지 전달 프로그래밍 인터페이스(MPI ; Message Passing Interface)를 이용하여 프로그램을 개발하면서 프로그램 개발 도구인 디버거를 이용하여 오류(error)를 찾을 에 사용자의 간섭이나 도움 없이 분산 프로그램의 실행으로 바로 디버깅 상태로 갈 수 있게 하여 분산환경에서 디버거를 쉽게 구동하도록 하는 방법에 관한 것으로서, 그 특징은 사용자에 의한 마스터 디버거 구동후 메시지 전달 프로그래밍 인터페이스(MPI) 데몬이 분산환경에서 메시지 전달 인터페이스(MPI)를 자동화하여 실제 분산 프로그램의 각 프로그램 모듈을 구동하는 단계, 삭이 각 프로그램 모듈에서 각 시스템의 디버거 코어를 구동시키는 단계, 상기 구동한 프로그램 모듈을 디버깅 가능한 상태로 하기 위해 어태치를 실행하고 디버깅되는 프로그램 모듈이 실제 프로그램의 메인(Main) 함수의 가장 처음 코드 부분에 설정되어 디버깅되는 프로그램에 대한 제어를 디버거가 가질 수 있도록 정지점(Break Point)을 설정 후 디버깅되는 프로그램 모듈들의 계속적인 실행을 위해 신호를 전송하는 단계 및 상기 신호 전송 후 마스터 디버거의 명령을 수신하여 실제 디버깅 작업을 수행하는 단계로 이루어지는 데에 있으므로, 상술한 바와 같은 본 발명은 분산환경에서 분산 프로그램을 디버깅할 때에 사용자와의 상호작용 없이 디버거가 디버깅되는 프로그램 모듈에 대한 제어를 자동으로 획득할 수 있도록 함으로써, MPI 프로그램이 실행됨에 따라 자동적으로 디버거가 실행되므로MPI 프로그램 디버깅시 디버거를 모든 시스템마다 따로 따로 구동할 필요가 없으므로 MPI 프로그램 디버깅이 매우 간편한 효과를 갖는다.The present invention is to develop a program using a Message Passing Interface (MPI) in a distributed environment, and to find an error using a debugger as a program development tool. It's about how to make it easy to run the debugger in a distributed environment by allowing you to go directly to the debugging state. Its feature is that the Message Transfer Programming Interface (MPI) daemon can be used in a distributed environment after the master debugger is started by a user. Driving each program module of an actual distributed program by automating, driving a debugger core of each system in each program module, and executing the attach and debugging the program to make the driven program module debuggable. The module is real It sets the break point so that the debugger has control over the program being debugged, which is set in the first code part of the main function of the program, and sends a signal for the continuous execution of the program modules being debugged. Since the step and the step of receiving the command of the master debugger after transmitting the signal to perform the actual debugging operation, the present invention as described above, when debugging the distributed program in a distributed environment, the debugger without interaction with the user By automatically gaining control of the program modules being debugged, the debugger runs automatically as the MPI program runs, so debugging the MPI program is very easy because you don't have to run the debugger on every system separately. Has an effect.

Description

분산환경에서의 디버거 구동방법Debugger Operation in Distributed Environment

제1도는 종래의 분산환경에서의 디버거 구동 시스템에 대한 구성도.1 is a block diagram of a debugger driving system in a conventional distributed environment.

제2도는 제1도에 대한 디버거 구동 신호 흐름도.2 is a debugger drive signal flow diagram for FIG.

제3도는 본 발명에 따른 분산환경에서의 디버거 구동 시스템에 대한 구성도.3 is a block diagram of a debugger driving system in a distributed environment according to the present invention.

제4도는 제3도에 대한 디버거 구동 신호 흐름도.4 is a debugger drive signal flow diagram for FIG.

제5도는 본 발명에 따른 디버거르 구동하기 위한 방법을 도시한 더 도면.5 is a further diagram illustrating a method for driving a debugger in accordance with the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

200 : 마스터 디버거 201 : 제1 디버거 코어200: master debugger 201: first debugger core

202 : 제2 디버거 코어202: second debugger core

203 : 메시지 전달 프로그래밍 인터페이스 데몬203: Message Delivery Programming Interface Daemon

본 발명은 분산환경에서의 디버거(Debugger) 구동에 관한것으로, 좀더 상세하게는 분산환경에서 메시지 전달 프로그래밍 인터페이스(MPI : Message Passing Interface)를 이용하여 프로그램을 개발하면서 프로그램 개발 도구인 디버거를 이용하여 오류 (error)를 찾을 에 사용자의 간섭이나 도움 없이 분산 프로그램의 실행으로 바로 디버깅 상태로 갈 수 있게 하여 분산환경에서 디버거를 쉽게 구동하도록 하는 방법에 관한 것이다.The present invention relates to the operation of a debugger in a distributed environment, and more particularly, to develop a program using a message passing programming interface (MPI) in a distributed environment while using a debugger as a program development tool. It is about how to easily run the debugger in a distributed environment by allowing the user to go directly to the debugging state without the user's intervention or help in finding an error.

일반적으로, 컴퓨터의 사용에 있어서 통신망의 발달은 프로그램 자체가 하나의 컴퓨터 시스템에 국한되어 사용되기 보다는 여러 개의 시스템이 동시에 하나의 프로그램을 위하여 사용되도록 하는 분산 환경 발달로 나타났다.In general, the development of a communication network in the use of a computer is a development of a distributed environment in which several systems are used for one program at the same time, rather than the program itself is limited to one computer system.

이러한 분산환경에 유용하며 표준적으로 프로그램에 사용될 수 있는 메시지 전달 프로그래밍 인터페이스(MPI)가 각 컴퓨터 회사와 사용자들의 단체에 의해서 제정이 되었다.A message transfer programming interface (MPI) was established by each computer company and a group of users that could be useful for this distributed environment and used for programming.

따라서, 사용자는 상기 메시지 전달 프로그래밍 인터페이스(MPI)를 이아여 응용 프로그램을 개발하면 임의의 컴퓨터 시스템 집합에서도 운용되는 분산 프로그램을 쉽게 개발할 수 있게 되었다.Thus, when a user develops an application program using the message transfer programming interface (MPI), a user can easily develop a distributed program that operates on any set of computer systems.

상기 메시지 전달 프로그래밍 인터페이스(MPI)를 이용하여 개발된 분산 프로그램은 각각의 컴퓨터 시스템에서 실행될 수 있는 프로그램 모듈로 분리가 되었다.Distributed programs developed using the message transfer programming interface (MPI) have been separated into program modules that can be executed in each computer system.

각 모듈을 분산환경에서 실행하기 위해서 배치 프로그램(shell program in UNIX)을 이용하여 각 시스템에 적절한 프로그램의 모듈을 실행하게 하는 프로그램을 개발하고 그 개발된 프로그램을 실행함으로써 분산 프로그램이 실행하게 되었다.In order to execute each module in a distributed environment, a distributed program is executed by using a shell program in UNIX to develop a program that executes a module of an appropriate program on each system and executing the developed program.

분산환경에서도 프로그램의 오류를 찾아내기 위해서 디버거를 사용하는데, 단일 시스템에서 디버거를 이용할 때와는 다른 접근방법이 필요하다.In a distributed environment, the debugger is used to detect errors in the program, which requires a different approach than using the debugger on a single system.

제1도는 종래 분산환경에서 디버거 구동 시스템에 대한 구성도로서, 이에 도시된 바와 같이, 분산환경에서 디버거는 로컬(Local) 시스템과 원격 시스템의 프로그램 모듈을 제어하는 제1디버거 코어(dubug core)(101), 제2디버거 코어(102)와; 상기 제1디버거 코어(dubug core)(101), 제2디버거 코어(102)들을 총괄 제어하는 마스터 디버거(mastser debugger)(100)로 나누어지며, 상기 로컬 시스템과 원격 시스템 사이에, 실제로 분산 프로그램의 각 프로그램 모듈을 실행하는 메시지 전달 프로그래밍 인터페이스 데몬(daemon)(102)이 존재한다.FIG. 1 is a block diagram of a debugger driving system in a conventional distributed environment. As shown in FIG. 1, a debugger is a first debugger core (dubug core) controlling a program module of a local system and a remote system. 101, a second debugger core 102; The first debugger core (dubug core) 101, the second debugger core (102) is divided into a master debugger (mastser debugger) 100, the overall control of the distributed program, actually between the local system and the remote system There is a message passing programming interface daemon 102 that executes each program module.

상기 분산환경에서 행해지는 디버깅 방법을 제1도 및 제2도를 참조하여 설명하면 다음과 같다.A debugging method performed in the distributed environment will now be described with reference to FIGS. 1 and 2.

먼저, 사용자가 유닉스의 포크(fork) 시스템 호출을 이용하여 마스터 디버거(100)를 구동하면(SI) 마스터 디버거(100)는 구동하고자 하는 시스템이 로컬 시스템이가 또는 원격 시스템인가를 검색하여 로킬 시스템과 원격 시스템에 각각 실제로 디버깅을 행하는 제1디버거 코어(101)와 제2 디버거 코어(102)를 구동하게 된다(S2).First, when a user drives the master debugger 100 using a fork system call of Unix (SI), the master debugger 100 searches for a locale system by searching whether the system to be driven is a local system or a remote system. The first debugger core 101 and the second debugger core 102 which actually debug the remote system and the remote system are respectively driven (S2).

그 다음으로 상기 제1디버거 코어(101), 제2디버거 코어(102)가 디버깅되는 프로그램 모듈(debuggee)에 대한 제어를 획득한 후 마스터 디버거(100)의 명령을 받아(S5)디버깅을 행하게 된다(S6).Subsequently, the first debugger core 101 and the second debugger core 102 acquire control of a program module debuggee debugged and receive a command of the master debugger 100 to perform debugging (S5). (S6).

여기서 보통 디버거가 디버깅되는 프로그램에 대한 제어를 획득하는 방법은, 유닉스의 포크 시스템 호출을 이용하여 디버거 자신의 자식으로 디버깅되는 프로세스를 생성하고 제어를 획득하는 것이다.The usual way to gain control over the program that the debugger is debugging is to use Unix's fork system call to create a process that is debugged as a debugger's own child and to gain control.

그러나, 프로세스의 생성(S3)에서 실제로 분산 프로그램을 실행하는 것은 제1디버거 코어(101)와 제2디버거 코어(102)가 아니라 메시지 전달 프로그래밍 인터페이스 데몬(103)이 프로그램 모듈을 각각의 시스템에 실행하기 문에 제1디버거 코어(101)와 제2 디버거 코어(102)에게 디버깅되는 프로그램 모듈에 대한 제어를 직접적으로 획득할 수 없고, 사용자가 제1디버거 코어 (101)와 제2 디버거 코어(102)에게 디버깅되는 프로그램 모듈을 등록(attach)하여(S4) 알려주어야 한다.However, actually executing the distributed program in the creation of the process (S3) is not the first debugger core 101 and the second debugger core 102, but the message passing programming interface daemon 103 executes the program module in each system. In the following, the first debugger core 101 and the second debugger core 102 cannot directly obtain control over the program module debugged, and the user cannot directly control the first debugger core 101 and the second debugger core 102. ) Must be attached to the program module being debugged (S4).

만일 분산환경에서 하나의 분산 프로그램에 참여하는 프로그램 모듈의 개수가 매우 많아지거나 원격 시스템의 대수가 많아지는 경우에는 사용자가 그 시스템마다 혹은 프로그램 모듈마다 일일이 등록을 행하는(S4)것은 비현실적이며 또한 각 프로그램의 모듈이 제1디버거 코어(101)와 제2디버거 코어(102)를 자동적으로 기다려주지 않아 실제로는 거의 디버깅이 불가능하다.If the number of program modules participating in one distributed program in a distributed environment becomes very large or the number of remote systems increases, it is impractical for the user to register each system or program module one by one (S4). The module of does not automatically wait for the first debugger core 101 and the second debugger core 102, so that virtually no debugging is possible.

즉, 제2도에서 디버거를 구동하는 신호 흐름도에서와 같이, 디버깅되는 프로그램 모듈을 등록하는 과정에서 사용자의 도움을 필요로 하게 되는데, 이는 제1도에서 설명한 바와 같이, 원격 시스템의 대수가 많아지는 경우에는 실제 디버깅이 불가능하다.That is, as shown in the signal flow diagram for driving the debugger in FIG. 2, the user needs help in registering the program module to be debugged. As described in FIG. 1, the number of remote systems increases. In this case, real debugging is not possible.

이와 같이, 분산환경에서 종래의 방법으로 분산 프로그램을 디버깅할 때, 하나의 분산 프로그램에 참여하는 모듈의 개수가 매우 많아지거나 혹은 원격 시스템의 대수가 많아지는 경우에 사용자가 그 시스템마다 또는 프로그램 모듈마다 일일이 등록응 행해야 하고 또한 각 프로그램의 모듈이 디버거 코어를 자동적으로 기다려 주지 않음으로 인해 디버깅이 거의 불가능하게 되는 문제점이 있었다.As such, when debugging a distributed program in a conventional manner in a distributed environment, when the number of modules participating in a single distributed program becomes very large or the number of remote systems increases, each user or each program module is used. There is a problem that debugging is almost impossible because the registration of each program and the module of each program does not automatically wait for the debugger core.

따라서, 상기 문제점을 해결하기 위한 본 발명의 목적은, 분산 환경에서 실행되는 메시지전달 프로그래밍 인터페이스(MPI)를 자동화한 부분인 데몬(daemon)이 실행하는 MPI 프로그램이 디버거를 실행하게 한 후 디버거가 자동적으로 MPI 프로그램을 디버깅 가능하게 하는데 있다.Accordingly, an object of the present invention for solving the above problems is that the debugger automatically runs after the MPI program executed by the daemon, which is an automated part of the message transfer programming interface (MPI), which is executed in a distributed environment, executes the debugger. This is to enable debugging of MPI programs.

상기 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 분산 환경에서 사용자의 간섭 및 도움 없이 사용자가 분산 프로그램 실행 시에 바로 디버깅상태로 갈 수 있게 하여 쉽게 디버거를 이용할 수 있도록 하는데 있다.Another object of the present invention for solving the above problems is to enable a user to easily use the debugger when the distributed program is executed without the user's interference and help in a distributed environment.

상기 목적을 달성하기 위한 본 발명의 특징은, 사용자에 의한 마스터 디버거 구동 후 메시지 전달 프로그래밍 인터페이스(MIP) 데이몬이 분산환경에서 메시지 전달 인터페이스(MIP) 를 자동화하여 실제분산 프로그램의 각 프로그램 모듈을 구동하는 단계, 상기 각 프로그램 모듈에서 각 시스템의 디버거 코어를 구동시키는 단계, 상기 구동한 프로그램 모듈을 디버깅 가능한 상태로 하기 위해 어태치를 실행하고 디버깅되는 프로그램 모듈이 실제 프로그램의 메인(Main) 함수의 가장 처음 코드 부분에 설정되어 디버깅되는 프로그램에 대한 제어를 디버거가 가질 수 있도록 정지점(Break Point)을 설정 후 디버깅되는 프로그램 모듈들의 계속적인 실행을 위해 신호를 전송하는 단계 및 상기 신호 전송 후 마스터 디버거의 명령을 수신하여 실제 디버깅 작업을 수행하는 단계로 이루어지는 데에 있다.A feature of the present invention for achieving the above object is that the message transfer programming interface (MIP) daemon after driving the master debugger by the user to drive each program module of the actual distributed program by automating the message transfer interface (MIP) in a distributed environment Driving the debugger core of each system in each of the program modules; executing the attach to make the driven program module debuggable; and the program module being debugged is the first code of the main function of the actual program. Setting a break point to allow the debugger to have control over the program being debugged and sending the signal to continue execution of the program modules being debugged, and executing the command of the master debugger after the signal transmission. Can receive actual debugging work It lies in comprising the steps of.

이하, 본 발명을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, described in detail with reference to the accompanying drawings of the present invention.

제3도는 본 발명에 따른 분산환경에서의 디버거 구동 시스템에 대한 구성도로서, 이에 도시한 바와 같이 로킬(Local) 시스템과 원격 시스템의 프로그램 모듈을 제어하는 제1디버거 코어(101), 제2 디버거 코어(102)와; 상기 제1디버거 코어(101), 제2 디버거 코어(102)들을 총괄 제어하고 사용자에 의해 구동되는 마스터 디버거(200)로 나누어지며, 상기 로컬 시스템과 원격 시스템 사이에, 실제로 분산 프로그램의 각 프로그램 모듈을 실행하는 메시지 전달 프로그래밍 인터패이스 데몬(203)으로 구성된다.3 is a configuration diagram of a debugger driving system in a distributed environment according to the present invention. As shown therein, a first debugger core 101 and a second debugger for controlling program modules of a local system and a remote system are illustrated. Core 102; The first debugger core 101 and the second debugger cores 102 are divided into a master debugger 200 which is controlled by a user and is driven by a user. Message delivery programming daemon daemon (203).

이와 같이, 구성된 본 발명의 작용 효과를 제3도 내지 제5도를 참조하여 상세히 설명하면 다음과 같다.Thus, when described in detail with reference to Figure 3 to Figure 5 the effect of the present invention configured as follows.

먼저, 사용자가 마스터 디버거(200)를 구동하면(S100) 그 마스터 디버거(200)는 제1 디버거 코어(101)와 제2 디버거 코어(102)를 구동하지 않고 단지 명령만을 전달하게 된다(S104).First, when the user drives the master debugger 200 (S100), the master debugger 200 does not drive the first debugger core 101 and the second debugger core 102, and only transmits a command (S104). .

즉 다시 말해서, 본 발명에서는 제1 도에서와 같이, 마스터 디버거(200)가 제1 디버거 코어(101)와 제2 디커버 코어(102)를 구동하고(S2) 그 제 1 디버거 코어 (101)와 제2 디버거 코어(102)가 디버깅되는 모듈에 대한 제어를 획득하는 형태(S4) 대신에 전술한 바와 같이, 사용자가 단순히 마스터 디버거(200)만 구동시키면 된다.In other words, in the present invention, as shown in FIG. 1, the master debugger 200 drives the first debugger core 101 and the second cover core 102 (S2) and the first debugger core 101. As described above, the user merely needs to drive the master debugger 200 instead of the form S4 in which the second debugger core 102 obtains control of the module to be debugged.

그리고, 제1디버거 코어(101)와 제2 디버거 코어(102)를 구동하고(S102) 프로그램 모듈에 대한 제어를 획득하는 과정은 메시지 전달 프로그래밍 인터페이스 데몬(203)이 실제 분산 프로그램을 실행할 때 자동적으로 행해진다.The process of driving the first debugger core 101 and the second debugger core 102 (S102) and obtaining control of the program module is automatically performed when the message transfer programming interface daemon 203 executes the actual distributed program. Is done.

이렇게 함으로써 사용자의 도움이 필요 없이 제1 디버거 코어(101)와 제2 디버거 코어(102)가 상기 메시지 전달 프로그래밍 인터페이스 데몬(203)에 의해 구동이 되어(S102) 마스터 디버거(200)의 명령 접수 후 프로그램 모듈(debuggee)에 대한 제어를 자동적으로 획득하여 디버깅되는 프로그램인 디버기를 수행하게 된다(105).By doing so, the first debugger core 101 and the second debugger core 102 are driven by the message transfer programming interface daemon 203 without the user's help (S102), after receiving the command of the master debugger 200. The control of the program module (debuggee) is automatically acquired to perform a debug, which is a debugged program (105).

제4도는 본 발명을 이용할 경우 분산환경에서 디버거를 구동하는 신호 흐름도로서, 사용자는 단순히 마스터 디버거(200)를 구동하는 것으로 분산 프로그램을 디버깅할 수 있는 상태에 도달하게 된다.4 is a signal flow diagram for driving a debugger in a distributed environment when using the present invention. The user simply reaches the state where the distributed program can be debugged by simply driving the master debugger 200.

상기 제3도에서, 메시지 전달 프로그래밍 인터페이스 데몬(203)에 의해 제1 디버거 코어(101)와 제2 디버거 코어(102)가 자동적으로 디버깅되는 프로그램 모듈에 대한 제어를 획득하는 과정(S102,S103)을 좀더 상세하게 설명하면, 먼저 사용자에 의해 마스터 디버거(200)를 구동한 후(S100) 메시지 전달 프로그래밍 인터페이스 데몬(203)이 실제 분산프로그램의 각 프로그램 모듈을 구동하면(S101) 제3도 및 제5도에서와 같이, 각 프로그램 모듈의 시작 부분에서 유닉스의 포크(fork) 시스템 호출을 이용하여(S102,S10) 각 로컬 시스템 및 원격 시스템에 제1디버거 코어(101)와 제2 디버거 코어(102)를 구동시키게 된다.In FIG. 3, the first debugger core 101 and the second debugger core 102 are automatically controlled by the message transfer programming interface daemon 203 to obtain control of a program module debugged (S102, S103). In more detail, first, the master debugger 200 is driven by the user (S100), and then the message transfer programming interface daemon 203 drives each program module of the actual distributed program (S101). As shown in FIG. 5, the first debugger core 101 and the second debugger core 102 are connected to each local system and a remote system by using a fork system call of Unix at the beginning of each program module (S102, S10). ) Will be driven.

상기 프로그램 모듈에 의해 구동된 제1 디버거 코어(101)와 제2 디버거 코어(102)는 자신을 구동한 프로그램 모듈을 디버깅 가능한 상태로 만들기 위하여 제3도 및 제5도에서와 같이, 어태치(S103,S11)를 실행하고 디버깅되는 프로그램 모듈이 초기상태를 유지할 수 있게 제1 디버거 코어(101)와 제2 디버거 코어(102)가 실제 프로그램 메인(Main)함수의 가장 처음 코드 부분에 설정하여 디버깅 되는 프로그램에 대한 제어를 디버거가 가질 수 있도록 정지점(breakpoint)을 설정한 후(S12) 디버깅되는 프로그램 모듈리 실행을 계속하게 신호를 보내주게 된다(S13).As shown in FIGS. 3 and 5, the first debugger core 101 and the second debugger core 102 driven by the program module make the program module driving the program module debuggable. The first debugger core 101 and the second debugger core 102 are set to the first code part of the actual program main function so that the program module to be debugged and the program module to be debugged can be maintained in the initial state. After setting a breakpoint (S12) so that the debugger can have control over the program being controlled (S12), the program module continues to signal the execution of the debugged program (S13).

이후 상기 마스터 디버거(200)와 연결하여(S14) 명령을 받고 (S104) 실제 디버깅 작업을 진행하게 된다(S105,S15).After the connection with the master debugger 200 (S14) receives a command (S104) and proceeds to the actual debugging (S105, S15).

상기에서, 디버깅되는 프로그램 모듈은 제1 디버거 코어(101)와 제2 디버거 코어(102)가 구동되었다는 것을 인식하고 실행을 계속하지만 접속 디버거 코어(connect-debugcore()) 함수(S16)의 가장 처음 코드 부분에 설정된 정지점에서 멈추어져 제1 디버거 코어(101)와 제2디버거 코어(102)의 디버깅 명령에 따르게 된다.In the above, the program module to be debugged recognizes that the first debugger core 101 and the second debugger core 102 have been driven, and continues execution, but is the first of the connect debugger core (connect-debugcore ()) function S16. It stops at the break point set in the code part and follows the debugging instructions of the first debugger core 101 and the second debugger core 102.

이상에서 설명한 바와 같이, 본 발명에 따른 분산환경에서의 디버거 구동방법에 의하면 분산환경에서 분산 프로그램을 디버깅할 때에 사용자와의 상호작용 없이 디버거가 디버깅되는 프로그램 모듈에 대한 제어를 자동으로 획득할 수 있도록 함으로써, MPI 프로그램이 실행됨에 따라 자동적으로 디버거가 실행되므로 MPI 프로그램 디버깅시 디버거를 모든 시스템마다 따로 따로 구동할 필요가 없으므로 MPI 프로그램 디버깅이 매우 간편한 효과를 갖는다.As described above, the debugger driving method in a distributed environment according to the present invention enables the debugger to automatically obtain control over a program module to be debugged without a user interaction when debugging a distributed program in a distributed environment. Therefore, since the debugger is automatically executed as the MPI program is executed, debugging the MPI program is very easy because there is no need to run the debugger separately for every system when debugging the MPI program.

Claims (4)

사용자에 의한 마스터 디버거 구동 후 메시지 전달 프로그래밍 인터페이스(MPI) 데몬이 분산환경에서 메시지 전달 인터페이스(MPI)를 자동화하여 실제 분산 프로그램의 각 프로그램 모듈을 구동하는 단계; 상기 각 프로그램 모듈에서 각 시스템의 디버거 코어를 구동 시키는 단계; 상기 구동한 프로그램 모듈을 디버깅 가능한 상태로 하기 위해 어태치를 실행하고 디버깅되는 프로그램 모듈이 실제 프로그램의 메인(Main) 함수의 가장 처음 코드 부분에 설정되어 디버깅되는 프로그램에 대한 제어를 디버거가 가질 수 있도록 정지점(Break Point)을 설정 후 디버깅되는 프로그램 모듈들의 계속적인 실행을 신호를 전송하는 단계; 및 상기 신호 전송 후 마스터 디버거의 명령을 수신하여 실제 디버깅 작업을 수행하는 단계로 이루어진 것을 특징으로 하는 분산환경에서의 디버거 구동방법.After the master debugger is driven by a user, a message transfer programming interface (MPI) daemon for automating a message transfer interface (MPI) in a distributed environment to drive each program module of an actual distributed program; Driving a debugger core of each system in each program module; Attach is executed to make the driven program module debuggable and the program module to be debugged is set in the first code part of the main function of the actual program so that the debugger can have control over the program being debugged. Setting a break point and signaling a continuous execution of program modules to be debugged; And performing a real debugging operation by receiving a command of a master debugger after transmitting the signal. 제1항에 있어서, 디버깅되는 프로그램 모듈은 프로그램 메인 함수의 가장 처음 부분에 설정된 정지점에 멈추어 디버거 코어의 디버깅 명령에 따르는 것을 특징으로 하는 분산환경에서의 디버거 구동방법.The method of claim 1, wherein the program module to be debugged stops at a break point set at the very beginning of the program main function and follows the debugging instructions of the debugger core. 제1항에 있어서 상기 디버거 코어의 구동은 포크 시스템 호출을 이용하여 구동하는 것을 특징으로 하는 분산환경에서의 디버거 구동방법.The method of claim 1, wherein the debugger core is driven using a fork system call. 제1항 또는 제3항에 있어서 각 프로그램 모듈의 시작부분에서 디버거 코어를 구동하기 위한 포크 시스템의 호출이 수행되는 것을 특징으로 하는 분산 환경에서의 디버거 구동방법.4. A method as claimed in claim 1 or 3, wherein the fork system is called at the beginning of each program module to drive the debugger core.
KR1019960014695A 1996-05-06 1996-05-06 Driving method of debugger in distributed computing environment KR100205061B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960014695A KR100205061B1 (en) 1996-05-06 1996-05-06 Driving method of debugger in distributed computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960014695A KR100205061B1 (en) 1996-05-06 1996-05-06 Driving method of debugger in distributed computing environment

Publications (2)

Publication Number Publication Date
KR970076232A KR970076232A (en) 1997-12-12
KR100205061B1 true KR100205061B1 (en) 1999-06-15

Family

ID=19457825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960014695A KR100205061B1 (en) 1996-05-06 1996-05-06 Driving method of debugger in distributed computing environment

Country Status (1)

Country Link
KR (1) KR100205061B1 (en)

Also Published As

Publication number Publication date
KR970076232A (en) 1997-12-12

Similar Documents

Publication Publication Date Title
US5325530A (en) Controller for sequential programming tools executed in a parallel computing environment
US5819093A (en) System and method for a distributed debugger for debugging distributed application programs
US6961926B2 (en) System and method for distributed debugging and recording medium on which control programs are recorded
US8196109B2 (en) Common debug adaptor in a multiple computer programming language environment
US5805892A (en) Method of and apparatus for debugging multitask programs
US7353498B2 (en) Multi-process debugger
CN105740139A (en) Virtual environment based embedded software debugging method
US7200839B2 (en) Debugging transactions across multiple processors
KR100205061B1 (en) Driving method of debugger in distributed computing environment
Baiardi et al. Development of a debugger for a concurrent language
CN112363707B (en) Control layer general scheduling method based on JAVA reflection technology
JPH0588933A (en) Parallel processing system with debugging function
KR100255801B1 (en) Method of debugging a specified processor in electric switching system
KR0175455B1 (en) Cross Debugging Operation
KR100194800B1 (en) How to Cross-Debug Multiple Chill Programs Using Connection Manager
Akarsu et al. DARP: Java‐based data analysis and rapid prototyping environment for distributed high performance computations
JPH07306800A (en) Debugging system
JP2000250778A (en) Inter-distributed debugger linkage processing method
CN115422046A (en) Software debugging method and system based on CAN communication
KR930007470B1 (en) Electronic exchange
JPS63150739A (en) Diagnosing device for microcomputer board
JPH03237502A (en) Programmable controller
JPH0695910A (en) Interactive debugging control system for abnormality processing
KR19990061516A (en) How to execute debugging command in electronic exchange
JPH06103107A (en) Program tracing method

Legal Events

Date Code Title Description
A201 Request for examination
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: 20080307

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee