KR19990041418A - How to Generate Object-Oriented Fill Debugging Information - Google Patents
How to Generate Object-Oriented Fill Debugging Information Download PDFInfo
- Publication number
- KR19990041418A KR19990041418A KR1019970062002A KR19970062002A KR19990041418A KR 19990041418 A KR19990041418 A KR 19990041418A KR 1019970062002 A KR1019970062002 A KR 1019970062002A KR 19970062002 A KR19970062002 A KR 19970062002A KR 19990041418 A KR19990041418 A KR 19990041418A
- Authority
- KR
- South Korea
- Prior art keywords
- chill
- information
- generating
- determination
- code
- Prior art date
Links
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/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Abstract
본 발명은 Object Oriented CHILL(OO-CHILL) 디버깅 정보 생성방법에 관한 것으로서, 프로그램이 번역되는 각 단계에서 해당 디버깅 정보를 생성하고 언어 실행 코드에서 통합하는 방법으로, OO-CHILL 프로그램 정보 분석 및 정보 생성 단계, 변형된 CHILL 프로그램에서 객체지향 프로그램 라인 정보 및 태스크 정보 생성 단계, 상기 정보를 통합하는 단계로 구성함으로써, OO-CHILL 컴파일러와 같이 컴파일시 비 객체지향 언어로 변역하고 이를 기계어로 재 번역하는 과정을 갖는 컴파일러에서 디버깅 정보를 효율적으로 생성하는 효과가 있다.The present invention relates to a method for generating Object Oriented CHILL (OO-CHILL) debugging information. The present invention relates to generating debugging information at each stage of program translation and integrating it in language execution code. A step of generating object-oriented program line information and task information in the transformed CHILL program, and integrating the information, thereby converting into a non-object-oriented language at compile time like OO-CHILL compiler and retranslating it into machine language. This has the effect of generating debugging information efficiently in a compiler with.
Description
본 발명은 객체지향 칠(Object Oriented CHILL, 이하 OO-CHILL라 칭함) to CHILL 변환기를 사용하는 컴파일러에서 OO-CHILL 디버깅 정보 생성방법에 관한 것이다.The present invention relates to a method for generating OO-CHILL debugging information in a compiler using an Object Oriented CHILL (hereinafter referred to as OO-CHILL) to CHILL converter.
본 발명은 범용 운영체계를 사용하는 시스템에서 객체지향 CHILL 프로그램 시험시 필요한 디버깅 정보를 프로그램 컴파일 단계에서 효율적으로 생성하고자 한다.The present invention is to efficiently generate the debugging information required for the object-oriented CHILL program test in the program compilation step in a system using a general-purpose operating system.
종래의 모든 컴파일러에서 적용된 디버깅 정보 생성방법들은 컴파일러가 객체지향 프로그램에서 비 객체지향 프로그램으로 변환하는 단계 없이 바로 어셈블리 코드를 생성하기 때문에 객체지향 프로그램에 대한 디버깅 정보를 바로 어셈블리 코드에 내장시킬 수 있다.Debugging information generation methods applied in all conventional compilers can directly embed debugging information for an object-oriented program in the assembly code because the compiler generates assembly code without converting from an object-oriented program to a non-object-oriented program.
그러나 객체지향 프로그램을 비 객체지향 언어로 변환하고 이를 다시 어셈블리 언어로 변환하는 컴파일러에서는 기존의 디버깅 정보 생성방법을 적용할 수 없는 문제점이 있다.However, the compiler that converts an object-oriented program into a non-object-oriented language and converts it back to an assembly language has a problem that the existing debugging information generation method cannot be applied.
이러한 컴파일러에는 디버깅 정보를 2개의 프로그램 변화 과정에서 모두 생성하고 이들 정보간에 정보 통합 방법이 필요하게 된다.These compilers need to generate debugging information during both program changes and to integrate information between them.
상기 문제점을 해결하기 위해 본 발명은, OO-CHILL to CHILL 변환기와 CHILL to 기계어 코드(machine code) 생성방법을 사용하는 OO-CHILL 컴파일러에서 디버깅 정보를 효율적으로 생성하기 위하여 각 변환 단계에서 디버깅 정보를 생성하는 방법과 이들 정보를 통합하는 방법을 제공하는 것을 목적으로 한다.In order to solve the above problems, the present invention, in order to efficiently generate the debugging information in the OO-CHILL compiler using the OO-CHILL to CHILL converter and the CHILL to machine code generation method, Its purpose is to provide a method of generating and a method of integrating this information.
도 1은 본 발명에 따른 하드웨어 구성도,1 is a hardware block diagram according to the present invention,
도 2는 본 발명이 적용되는 OO-CHILL 프로그램 디버깅 정보 생성에 대한 상세 처리흐름도,2 is a detailed process flow diagram for generating OO-CHILL program debugging information to which the present invention is applied;
도 3은 본 발명에 따른 OO-CHILL to CHILL 단계에서의 디버깅 정보 생성에 대한 상세 처리흐름도,3 is a detailed process flow diagram for generating debugging information in the OO-CHILL to CHILL step according to the present invention,
도 4는 본 발명에 따른 CHILL to 기계어 코드 단계에서의 디버깅 정보 생성에 대한 상세 처리흐름도,4 is a detailed process flow diagram for generating debugging information in the CHILL to machine code step according to the present invention,
<도면의 주요부분에 대한 부호의 설명><Description of Symbols for Main Parts of Drawings>
101 : 중앙처리장치 102 : 메인 메모리101: central processing unit 102: main memory
103 : 보조기억장치 104 : 입출력장치103: auxiliary storage device 104: input and output device
105 : 시스템 버스105: system bus
상기 목적을 달성하기 위해 본 발명은, OO-CHILL to CHILL 번역 단계에서 OO-CHILL 프로그램의 객체지향 정보 분석 및 정보를 생성하는 단계와, 생성된 CHILL 프로그램을 기계어로 번역하는 CHILL to 기계어 코드 단계에서 CHILL 코드를 분석하여 해당 객체지향 프로그램 라인 정보 및 태스크 시작 정보를 생성하는 단계와, 상기 생성된 디버깅 정보를 해당 코드에 통합하는 단계로 이루어진 것을 특징으로 한다.In order to achieve the above object, the present invention, in the OO-CHILL to CHILL translation step, object-oriented information analysis and information generation of the OO-CHILL program, and in the CHILL to machine code step of translating the generated CHILL program into machine language Analyzing the CHILL code to generate the object-oriented program line information and task start information, and integrating the generated debugging information into the corresponding code.
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 하드웨어 구성도로서, 중앙처리장치(101), 메인 메모리(102), 보조기억장치(103)와 입출력장치(104)가 시스템 버스(105)로 서로 연결 구성된 일반 범용 컴퓨터에 범용 운영체계를 띄운 시스템이다.1 is a general block diagram of a hardware configuration according to the present invention, in which a central processing unit 101, a main memory 102, an auxiliary memory 103, and an input / output device 104 are connected to each other by a system bus 105. It is a system with a general operating system.
OO-CHILL to CHILL 변환기와 CHILL to 기계어 코드 변환기는 호스트 시스템의 메인 메모리(102)에 탑재되어 중앙처리장치(101)에서 실행되고, 입출력장치(104)를 통하여 출력 및 오류 메시지가 입출력되며, 각 장치간에 주고받는 메시지는 시스템 버스(105)를 통하여 이루어지며, 범용 운영체계는 프로그램들과 장치들을 제어한다.The OO-CHILL to CHILL converter and the CHILL to machine code converter are mounted in the main memory 102 of the host system, executed in the central processing unit 101, and output and error messages are inputted and outputted through the input / output device 104. Messages sent and received between devices are made via the system bus 105, and the general-purpose operating system controls programs and devices.
그리고 상기 보조기억장치(103)에는 OO-CHILL 실행 화일과 각 변환 단계에서 생성된 코드 및 디버깅 정보가 저장되며, 메인 메모리(102)에 탑재되지 않은 화일과 도구들이 저장된다.The auxiliary memory 103 stores an OO-CHILL execution file, code and debugging information generated in each conversion step, and files and tools not mounted in the main memory 102.
도 2는 본 발명이 적용되는 OO-CHILL 프로그램 디버깅 정보 생성에 대한 상세 처리흐름도로서, 본 발명에 따른 디버깅 정보 생성방법을 설명하면 다음과 같다.2 is a detailed process flow diagram for generating the OO-CHILL program debugging information to which the present invention is applied, and the debugging information generating method according to the present invention will be described below.
먼저 OO-CHILL 소스 화일을 입력으로 받아들여(S1) OO-CHILL 정보를 생성하고 이에 대응하는 CHILL 화일을 생성한다(S2).First, an OO-CHILL source file is received as an input (S1) to generate OO-CHILL information, and a corresponding CHILL file is generated (S2).
생성된 CHILL 파일을 입력으로 하여 CHILL 프로그램의 프로세스/프로시져, 소스라인 정보가 포함된 어셈블리 코드를 생성한다(S3).The generated CHILL file is used as an input to generate an assembly code including the process / procedure and source line information of the CHILL program (S3).
어셈블리 코드를 생성한 후 두 개의 디버깅 정보를 통합하고(S4), 상기 각 단계에서 생성된 OO-CHILL 디버깅 정보와 CHILL 프로시져/프로세스, 라인정보가 포함된 어셈블리 파일을 가지고 객체지향 디버깅 정보가 포함된 실행 파일을 작성한다(S5).After generating the assembly code, the two debugging information are integrated (S4), and the object-oriented debugging information is included with the assembly file including the OO-CHILL debugging information, CHILL procedure / process, and line information generated in each step. Create an executable file (S5).
상기 방식으로 작성된 실행 파일은 상용 객체지향 디버거의 입력으로 사용되어 소스 수준으로 디버깅하는데 사용된다.Executables written in this manner can be used as input to a commercial object-oriented debugger to debug at the source level.
도 3은 본 발명에 따른 OO-CHILL to CHILL 단계에서의 디버깅 정보 생성에 대한 상세 처리흐름도로서, 상기 도 2의 OO-CHILL to CHILL 단계에서의 디버깅 정보 생성 과정을 보여주고 있다.3 is a detailed process flow diagram for generating debugging information in the OO-CHILL to CHILL step according to the present invention, and shows a process of generating debugging information in the OO-CHILL to CHILL step of FIG.
OO-CHILL 소스 파일을 입력으로 받아들여(S2a) 프로그램을 파싱하여 OO-CHILL 추상 구문 트리(Abstract Syntax Tree, 이하 AST라 칭함)를 구성한다(S2b).The OO-CHILL source file is taken as input (S2a) and the program is parsed to form an OO-CHILL abstract syntax tree (hereinafter referred to as AST) (S2b).
상기 AST의 내부 정보인 OO-CHILL 변수 이름 및 구조 정보들을 확정한다(S2c).The OO-CHILL variable name and structure information, which is internal information of the AST, are determined (S2c).
상기 OO-CHILL 변수 이름 및 구조 정보들을 확정한 후 코드생성이 완료되었는가를 판단하여(S2d) 완료되었으면, OO-CHILL 디버깅 정보를 포함하는 실행 코드 생성을 종료한다(S2e).After determining the OO-CHILL variable name and structure information, it is determined whether the code generation is completed (S2d), and when it is completed, the execution code generation including the OO-CHILL debugging information is terminated (S2e).
판단 후 코드생성이 완료되지 않았으면 파일 및 기본모드 정보를 생성하고(S2f), 라인정보를 생성하며(S2g) 정보가 데이터 선언문인가를 판단한다(S2h).If the code generation is not completed after the determination, the file and the basic mode information is generated (S2f), the line information is generated (S2g), and it is determined whether the information is a data declaration statement (S2h).
상기 판단 후 데이터 선언문일 경우 객체지향 데이터 정보를 생성하고(S2i), 데이터 선언문이 아니면 태스크 시작문인가를 판단하여(S2j) 태스크 시작문이면 태스크 시작정보 및 태스크 정보를 생성하고(S2k), 아니면 실행코드 생성을 하며(S2l) 다시 상기 코드생성 완료 판단(S2d)으로 돌아간다.After the determination, in the case of the data declaration statement, the object-oriented data information is generated (S2i). If the data declaration statement is not the task start statement (S2j), the task start statement and the task start information and task information are generated (S2k). The code is generated (S2l) and the process returns to the code generation completion determination (S2d).
도 4는 본 발명에 따른 CHILL to 기계어 코드(machine code) 단계에서의 디버깅 정보 생성에 대한 상세 처리흐름도로서, CHILL 소스 파일을 입력으로 받아들여(S3a) 프로그램을 파싱하여 CHILL AST를 구성하고(S3b), 상기 AST의 내부 정보인 CHILL 변수 이름 및 구조 정보들을 확정한다(S3c).4 is a detailed process flow diagram for generating debugging information in the CHILL to machine code step according to the present invention. The CHILL source file is taken as an input (S3a) and the program is parsed to construct a CHILL AST (S3b). ), And determine the CHILL variable name and structure information that is the internal information of the AST (S3c).
CHILL 변수 이름 및 구조 정보들의 확정 후 코드생성 완료를 판단하여(S3d) 완료되었으면, CHILL 디버깅 정보를 포함하는 실행 코드를 생성하고(S3e) 종료한다.After finalizing the CHILL variable name and structure information, it is determined that the code generation is completed (S3d), and when it is completed, the execution code including the CHILL debugging information is generated (S3e).
상기 판단 후 코드 생성이 완료되지 않았으면 라인 정보를 생성하고(S3f) 생성된 정보가 태스크 시작문인지를 판단하여(S3g) 판단 후 태스크 시작문일 경우 태스크 시작 정보를 생성하고(S3h), 아니면 실행 코드를 생성하며(S3i) 다시 상기 코드 생성 완료 판단(S3d)으로 돌아간다.After the determination, if the code generation is not completed, generate line information (S3f) and determine whether the generated information is a task start statement (S3g), and if it is a task start statement after determination, generate task start information (S3h), or execute code (S3i) and return to the code generation completion determination (S3d).
상기 두 단계에서 생성된 OO-CHILL 디버깅 정보파일과 CHILL 디버깅 정보를 포함하는 실행 코드를 통합하여 OO-CHILL 디버깅 정보를 포함하는 실행 코드를 생성한다.The executable code including the OO-CHILL debugging information is generated by integrating the OO-CHILL debugging information file generated in the above two steps with the execution code including the CHILL debugging information.
상술한 바와 같이 본 발명은, OO-CHILL 컴파일러와 같이 컴파일시 비 객체지향 언어로 번역하고 이를 기계어로 재 번역하는 과정을 갖는 컴파일러에서 디버깅을 효율적으로 생성하는데 그 효과가 있다.As described above, the present invention has an effect of efficiently generating debugging in a compiler having a process of translating into a non-object oriented language and retranslating it into machine language, such as the OO-CHILL compiler.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970062002A KR100248434B1 (en) | 1997-11-21 | 1997-11-21 | A mechanism for generating object oriented chill debugging information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970062002A KR100248434B1 (en) | 1997-11-21 | 1997-11-21 | A mechanism for generating object oriented chill debugging information |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990041418A true KR19990041418A (en) | 1999-06-15 |
KR100248434B1 KR100248434B1 (en) | 2000-03-15 |
Family
ID=19525298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970062002A KR100248434B1 (en) | 1997-11-21 | 1997-11-21 | A mechanism for generating object oriented chill debugging information |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100248434B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014684B1 (en) * | 2007-09-14 | 2011-02-16 | 주식회사 신한은행 | System and Method for Analysing Program Test Result using Test Result Log and Program Recording Medium |
-
1997
- 1997-11-21 KR KR1019970062002A patent/KR100248434B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101014684B1 (en) * | 2007-09-14 | 2011-02-16 | 주식회사 신한은행 | System and Method for Analysing Program Test Result using Test Result Log and Program Recording Medium |
Also Published As
Publication number | Publication date |
---|---|
KR100248434B1 (en) | 2000-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cifuentes et al. | Intraprocedural static slicing of binary executables | |
Consel et al. | A uniform approach for compile-time and run-time specialization | |
US20070226720A1 (en) | System and Method for Efficiently Passing Information Between Compiler and Post-Compile-Time Software | |
JPH05257709A (en) | Parallelism discriminating method and parallelism supporting method using the same | |
Cardoso et al. | Performance‐driven instrumentation and mapping strategies using the LARA aspect‐oriented programming approach | |
Aversano et al. | Handling preprocessor-conditioned declarations | |
US9454347B2 (en) | Analyzing incomplete software | |
EP2626784A1 (en) | Method and apparatus for automated MATLAB interfacing | |
EP1417575A2 (en) | Robust logging system for embedded systems for software compilers | |
KR100248434B1 (en) | A mechanism for generating object oriented chill debugging information | |
Garavel et al. | Compiler construction using LOTOS NT | |
Schulte et al. | The interval-enhanced GNU Fortran compiler | |
Bezzubikov et al. | Automatic dynamic binary translator generation from instruction set description | |
Kalinov et al. | Using AËМ specification for automatic test suite generation for mpC parallel programming language compiler | |
CN115268918A (en) | Automatic conversion method from C + + code to C code based on rule template | |
JP3327674B2 (en) | Program translation apparatus and method | |
Vanhoof | Binding-time analysis by constraint solving: A modular and higher-order approach for Mercury | |
Sewell et al. | Cakes That Bake Cakes: Dynamic Computation in CakeML | |
JP3266097B2 (en) | Automatic reentrant method and system for non-reentrant program | |
Zeiß | A refactoring tool for TTCN-3 | |
Tolmach | Combining closure conversion with closure analysis using algebraic types | |
Ryu et al. | Source-level debugging for multiple languages with modest programming effort | |
Kuipers et al. | Object-oriented tree traversal with JJForester | |
Gough et al. | Executable assertions and separate compilation | |
Lenkefi et al. | Connections between Language Semantics and the Query-based Compiler Architecture. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20041201 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |