KR0175455B1 - 교차 디버깅 운용방법 - Google Patents
교차 디버깅 운용방법 Download PDFInfo
- Publication number
- KR0175455B1 KR0175455B1 KR1019950050087A KR19950050087A KR0175455B1 KR 0175455 B1 KR0175455 B1 KR 0175455B1 KR 1019950050087 A KR1019950050087 A KR 1019950050087A KR 19950050087 A KR19950050087 A KR 19950050087A KR 0175455 B1 KR0175455 B1 KR 0175455B1
- Authority
- KR
- South Korea
- Prior art keywords
- debugging
- gdb
- server
- cross
- service
- 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
-
- 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/3664—Environments for testing or debugging software
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)
- Exchange Systems With Centralized Control (AREA)
Abstract
본 발명은 실시간 운영체계인 CROS(Concurrent Real-Time Operationg System)를 운영체계로 사용하는 대용량 교환시스템에서 방대한 소프트웨어를 개발함에 있어 C프로 그래밍 언어로 개발한 소프트 웨어의 GDB(GNU Source-Level Debugger)인터페이스를 통한 고급 교차 디버깅 지원을 위해 호스트 컴퓨터의 디버거 인터페이스인 GDB와 CROS를 운영체계로 한 타겟 교환시스템에서 교차 디버깅의 핵심 기능을 제공하는 디버그 서버와의 클라이언트 서버 구조에 대한 교차 디버깅을 위한 서버 구종 및 교차 디버깅 운용방법에 관한 것으로, 일반적인 원시 코드 디버깅에 사용되는 기본기능들(프로그램 실행 제어 기능, 메모리의 내용 조회 및 변경 기능, 레지스터 내용 조회 및 변경 기능, breakpoint 설정 및 해제 기능 등)을 타겟 운영체계인 CROS 상에 서버로 구현하여 디버깅 서비스를 함으로써 클라이언트인 호스트 컴퓨터에서 원시 코드 디버깅 도구인 GDB인터페이스를 이용하여 타겟 교환 시스템에서 실행하고 있는 프로그램을 사용 프로그래밍에 사용한 C원시 코드 수준에서 편리하게 디버깅 할 수 있는 효과가 있다.
Description
제1도는 본 발명이 적용되는 하드웨어 시스템의 개략적인 구성도.
제2도는 본 발명에 따른 서버 구조도.
제3도는 본 발명에 따른 디버깅 클라이언트인 호스트 컴퓨터의 GDB에서의 처리 흐름도.
제4도는 본 발명에 따른 디버깅 서버인 타겟교환 시스템의 디버그 서버에서의 처리 흐름도.
* 도면의 주요부분에 대한 부호의 설명
1 : 운용보전 프로세서 (Operation and Maintenance Processor ; OMP)
2 : 호처리 프로세서 (Subscriber Call Processor ; SCP)
본 발명은 실시간 운영체계인 CROS(Concurrent Real-Time Operationg System)를 운영체계로 사용하는 대용량 교환시스템에서 방대한 소프트웨어를 개발함에 있어 C프로 그래밍 언어로 개발한 소프트웨어의 GDB(GNU Source-Level Debugger)인터페이스를 통한 고급 교차 디버깅 지원을 위해 호스트 컴퓨터의 디버거 인터페이스인 GDB와 CROS를 운영체계로 한 타겟 교환시스템에서 교차 디버깅의 핵심 기능을 제공하는 디버그 서버와의 클라이언트 서버 구조로 된 교차 디버깅 구조에서의 교차 디버깅 운용방법에 관한 것이다.
일반적으로 교환 시스템은 내장형(embedded) 응용분야이므로 UNIX운영체계를 근간으로 하는 호스트 컴퓨터(SUN워크스테이션, VAX 컴퓨터, CRAY 컴퓨터 등등)에서 편집하고 타겟인 교환기 목적 코드를 생산하는 교차 컴파일러를 이용하여 컴파일한 다음 타겟 교환 시스템에 다운로딩하여 실행시킨다. 그러므로 프로그래머는 편집, 컴파일하는 호스트 컴퓨터에서 실제 타겟 교환 시스템에 로딩한 프로그램을 어셈블리 수준이 아닌 자신이 프로그래밍에 사용한 언어인 C 언어 수준에서 디버깅하기를 원한다.
그러나, 종래에는 CROS 운영체계를 사용하고 C프로그래밍 언어로 작성한 교환기 소프트웨어를 디버깅하기 위해서는 호스트 컴퓨터에서가 아닌 타겟 교환시스템에서 이해하기 쉬운 고급 언어인 C 언어 수준이 아닌 보다 이해하기 어려운 저급 수준의 어셈블리언어로 디버깅하여 왔다. 그렇기 때문에 이해하기도 어렵고 디버깅하기도 어려운 문제점이 있어다. 따라서, C 언어에 비해 저급한 어셈블리 수준의 디버깅 도구에 비해 보다 이해하기 쉽고 편리하게 사용할 수 있는 새로운 디버깅 도구가 요구되었다.
상기 종래 기술에 대한 무제점을 해결하고 상기한 요구 사항에 부응하기 위하여 안출된 본 발명은, 편집하고 컴파일하는 호스트 검퓨터에서, 타겟 교환 시스템에서 수행되는 프로그램을 C언어 수준에서 디버깅할 수 있는 즉, 교차 디버깅할 수 있는 수단을 제공함으로써 CROS 운영체계 위에 실행되는 교환 소프트웨어 디버깅의 편이성을 높이는 교차 디버깅을 위한 서버 구조 및 교차 디버깅 운용방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 유닉스(UNIX)를 운영체계로 하는 호스트컴퓨터의 GDB(GNU Source-Level Debugger)와, CROS(Concurrent Real-Time Operation System)를 운영체계로 하는 타겟 교환시스템의 디버그 서버와 클라이언트서버를 포함하는 서버 구조에 적용되는 교차 디버깅 운영방법에 있어서, 호스트 컴퓨터에서 GDB를 실행시켜 타겟 교환 시스템상의 실행 프로그램을 교차 디버깅할 것인가를 선택하는 제1단계, 상기 제1단계에서, 교차 디버깅을 원하지 않으면 호스트 컴퓨터 상에서 바로 C프로그램을 원시 코드 수준에서 디버깅한 후 종료하는 제2단계, 상기 제1단계에서, 교차 디버깅을 선택하면 GDB는 타겟 교환시스템에서 실행하는 디버그 서버와의 통신 채널을 확보하여 통신 채널 연결을 요청하는 제3단계, 상기 제3단계 수행 후, 디버그 서버로부터의 연결 응답 대기중 연결 응답 메세지를 수신하면 교차 디버깅을 위한 통신 채널을 확보하는 제4단계,및 설정된 통신, 채널상에서 GDB의 요청에 따라 교차 디버깅을 수행하는 제5단게를 포함하는 것을 특징으로 한다.
타겟 교환 시스템에 실행하는 사용자 프로그램을 타겟 교환 시스템의 디버그 서버에서 제공하는 디버깅 서비스 기능을 이용하여 호스트 컴퓨터에 탑재되는 GDB를 이용하여 목적 시스템에 실행하는 프로그램을 디버깅할 수 있는 기능을 제공한다.
이때, 교차 디버깅이라 함을 호스트 컴퓨터에는 GDB와 같은 디버깅 도구와 원시 프로그램을 두고, 타겟 시스템에서 원시 프로그램에 대응되는 컴파일한 목적 코드인 실행 프로그램과 호스트 컴퓨터에 탑재되는 GDB와 같은 디버깅 도구가 실행 시간에 제공하는 디버깅 기능들을 타겟 시스템의 디버그 서버가 제공하도록 하여 호스트 컴퓨터에서 타겟 시스템에 실행하는 사용자 프로그램을 디버깅할 수 있도록 한다. 여기서, 호스트 컴퓨터에 탑재되는 디버깅 도구가 클라이언트가 되고 타겟 시스템에서 클라이언트가 필요로 하는 디버깅 기능을 대신 제공하는 디버그 서버가 서버 역할을 한다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 일실시예를 상세히 설명한다.
제1도는 본 발명이 적용되는 하드웨어 구성도로서, CROS를 운영체계로 하는 OMP(1)와 SCP(2)가 스위치 망(3)으로 서로 연결된 타겟 교환 시스템(4), UNIX를 운영체계로 하는 호스트 컴퓨터(5), 그리고 상기 타겟 교환 시스템(4)과 호스트 컴퓨터(5)를 물리적으로 연결해 주는 이더넷(6)을 구비한다.
본 발명은 상기 타겟 교환 시스템(4)의 OMP(1) 나 SCP(2)에 CROS운영체계를 실장한 다음 디버그 서버를 탑재하고 UNIX운영체계를 실장한 호스트 컴퓨터(5)에는 GDB를 탑재한 다음 호스트 컴퓨터(5)에서 GDB 인터페이스를 통해 상기 타겟 교환 시스템(4)의 디버그 서버의 디버깅 서비스를 이용하여 상기 타겟 교환 시스템(4)에서 실행되는 C프로그램을 교차 디버깅할 수 있는 기능을 제공한다.
제2도는 본 발명의 전체적인 구조도로 UNIX(16)를 운영체계로 하는 호스트 컴퓨터(11)의 GDB(13)와 CROS(17)를 운영체계로 하는 타겟 교환 시스템(12)의 디버그서버(14)와의 클라이언트 서버(11) 구조를 나타낸 것이다.
상세히 설명하면, 사용자(15)는 호스트 컴퓨터의 GDB인터페이스를 통해 CROS를 운영체계로 하는 타겟교환 시스템의 실행 프로그램(18)을 호스트 컴퓨터에 있는 C 원시 프로그램(19)을 참조하며 디버깅하는데 이때 호스트 컴퓨터의 GDB는 타겟 교환 시스템의 디버그 서버에게 실행 시간에 필요한 디버깅 서비스를 요청(20)하고 디버그 서버는 요청한 내용에 따른 일련의 서비스를 제공(21)하는 구조로 되어 있다. 그러므로 디버깅 서비스를 요청한 호스트 컴퓨터의 GDB가 클라이언트이고 타겟 교환 시스템의 디버그 서버가 디버깅 서비스를 제공하는 서버이다.
클라이언트인 GDB와 서버인 디버그 서버에서의 처리 절차에 대한 상세한 설명은 아래의 제3도 및 제4도와 같다.
제3도는 본 발명에 따른 디버깅 클라이언트인 호스트 컴퓨터의 GDB에서의 처리 흐름도이다.
호스트 컴퓨터에서 GDB를 실행시켜 타겟 교환 시스템상의 실행 프로그램을 교차 디버깅할 것인가를 선택한다(21). 만약 교차 디버깅을 원하지 않으면 호스트 컴퓨터 상에서 바로 C프로그램을 원시 코드 수준에서 디버깅하고(22) 디버깅이 끝나면 종료한다(23).
그러나, 교차 디버깅을 선택하면 GDB는 타겟 교환 시스템에서 실행하는 디버그 서버와 원격 통신을 위해 통신 채널을 확보하고(24) 디버그 서버에게 통신 채널 연결 요청을 한(25) 다음 디버그 서버로 부터의 연결 응답이 올 때까지 기다린다(26). 이때 디버그 서버로부터 연결 응답 메세지를 수신하면(27) 교차 디버깅을 위한 통신 채널을 확보하는 처리가 끝나고, 연결된 통신 채널상에서 교차 디버깅을 하는 다음 처리과정으로 넘어간다.
다음에, C소스 레벨 디버깅(28)을 수행하는데 이 과정에서는 디버그 서버의 서비스가 필요한 경우와 필요하지 않는 경우가 있으므로 계속할 것인가를 선택(29)한 다음 계속하기를 원하지 않으면 GDB수행이 종료된다(30). 그러나 계속 수행하기를 원하면 GDB는 타겟교환 시스템에서 수행하는 디버그서버의 서비스가 필요한 지를 판단(31)하여 필요하지 않으면 상기 과정(28) 이하부터 다시 계속되고 서비스 요청이 필요하면 디버그 서버에게 서비스를 요처(32)한 다음 디버그 서버로부터 서비스 응답이 올때까지 기다린다(33). 이때 디버그 서버로부터 디버깅 서비스 결과 메세지를 수신하면(34) 그 결과 메세지를 이용하여 C원시 코드 수준 디버깅(28)을 계속한다.
제4도는 본 발명에 따른 디버깅 서버인 타겟교환 시스테의 디버그 서버에서의 처리 흐름도이다.
CROS를 운영체계로 하는 타겟 교환 시스템에서 디버그 서버를 실행하면 먼저 호스트 컴퓨터로부터 연결요청이 올때까지 기다린다(41). 이때 연결 요청이 오면 호스트 컴퓨터상의 GDB가 요청한 통신 채널위에 통신 경로를 설정한다(42). 이러한 통신 경로 설정은 디버그 서버에 의해 완성되는 것으로 전체 처리 과정중 제1단계에 해당한다. 다음은 원격 교차 디버깅을 위한 제2단계 처리 과정으로 디버그 서버는 호스트 컴퓨터로부터 디버깅 서비스 요청이나 연결 해제 요청이 올때까지 기다린다(43). 이때 연결해제 요청이 오면 타겟 교환 시스템에서 실행중인 프로그램에 대해 어떠한 디버깅 과정도 수행하지 않고 GDB와의 통신을 위한 채널 연결을 해제(45)하고 디버그 서버는 종료한다(46). 그러나 디버깅 서비스 요청이 오며(47) 디버깅 서비스를 위해 타겟교환 시스템에서 실행중인 프로그램에 대해 일련의 디버깅 기능을 수행(48)한 다음 그 결과를 GDB에 제공한다(49). 즉, GDB의 디버깅 서비스 요청에 따른 서비스를 제공한다.
따라서, 상기와 같은 본 발명은 일반적인 원시 코드 디버깅에 사용되는 기본기능들(프로그램 실행 제어 기능, 메모리의 내용 조회 및 변경 기능, 레지스터 내용 조회 및 변경 기능, breakpoint 설정 및 해제 기능 등)을 타겟 운영체계인 CROS상에 서버로 구현하여 디버깅 서비스를 함으로써 클라이언트인 호스트 컴퓨터에서 원시 코드 디버깅 도구인 GDB인터페이스를 이용하여 타켓 교환 시스템에서 실행하고 있는 프로그램을 사용 프로그래밍에 사용한 C원시 코드 수준에서 편리하게 디버깅 할 수 있는 효과가 있다.
Claims (4)
- 유닉스(UNIX)를 운영체계로 하는 호스트컴퓨터의 GDB(GNU Source-Level Debugger)와 CROS(Concurrent Real-Time Operationg System)를 운영체계로 하는 타겟 교환시스템의 디버그 서버와 클라이언트서버를 포함하는 서버 구조에 적용되는 교차 디버깅 운영방법에 있어서, 호스트 컴퓨터에서 GDB를 실행시켜 타겟 교환 시스템상의 실행 프로그램을 교차 디버깅할 것인가를 선택하는 제1단계, 상기 제1단계에서, 교차 디버깅을 원하지 않으면 호스트 컴퓨터 상에서 바로 C프로그램을 원시 코드 수준에서 디버깅한 후 종료하는 제2단계, 상기 제1단계에서, 교차 디버깅을 선택하면 GDB는 타겟 교환 시스템에서 실행하는 디버그 서버와의 통신 채널을 확보하여 통신 채널 연결을 요청하는 제3단계, 상기 제3단계 수행후, 디버그 서버로부터의 연결 응답 대기중 연결 응답 메세지를 수신하면 교차 디버깅을 위한 통신 채널을 확보하는 제4단계, 및 설정된 통신 채널상에서 GDB의 요청에 따라 교차 디버깅을 수행하는 제5단계를 포함하는 것을 특징으로 하는 교차 디버깅 운용방법.
- 제1항에 있어서, 상기 제3단계 수행후, 호스트 컴퓨터의 GDB로부터 연결요청이 오면 통신경로를 설정하는 제5단계, 상기 통신경로를 통해 디버깅 서비스를 요청 또는 해제 요청이 올 때까지 대기하는 제6단계, 및 상기 대기 단계에서 통신 경로 연결 해제요청이 오면 연결을 해제하고 종료하는 제7단계를 더 포함하여 이루어지는 것을 특징으로 하는 교차 디버깅 운용방법.
- 제1항 또는 제2항에 있어서, 상기 제5단계는, C원시 코드 수준 디버깅 수행시 디버그 서버의 서비스를 필요로 하지 않는 경우 GDB수행이 종료되고, 계속 수행을 원하면 GDB는 타겟교환 시스템에서 수행하는 디버그서버의 서비스가 필요한지를 판단하는 제8단계, 상기 제8단계 수행후, 디버그 서버의 서비스가 필요하지 않으면 상기 C원시 코드 수준 디버깅 과정으로 복귀하고 서비스 요청이 필요하면 디버그 서버에게 서비스를 요청하는 제9단계, 및 상기 제9단계 수행 후, 디버그 서버로부터 서비스 응답이 올때까지 대기중 디버깅 서비스 결과 메세지를 수신하면 결과 메세지를 이용하여 상기 C원시 코드 수준 디버깅 과정 이하를 반복 수행하는 제10단계를 포함하고 있는 것을 특징으로 하는 교차 디버깅 운용방법.
- 제3항에 있어서, 상기 제9단계 수행후 디버그 서버에서는, 서비스 요청 대기중 디버그 서버로 디버깅 서비스 요청이 오면 디버깅 서비스를 위해 타겟교환 시스템에서 실행중인 프로그램에 대해 디버깅 기능을 수행한 다음 그 결과를 GDB에 제공하고 상기 서비스 요청 대기 과정으로 복귀하는 단계를 포함하고 있는 것을 특징으로 하는 교차 디버깅 운용방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950050087A KR0175455B1 (ko) | 1995-12-14 | 1995-12-14 | 교차 디버깅 운용방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950050087A KR0175455B1 (ko) | 1995-12-14 | 1995-12-14 | 교차 디버깅 운용방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970049557A KR970049557A (ko) | 1997-07-29 |
KR0175455B1 true KR0175455B1 (ko) | 1999-04-01 |
Family
ID=19440205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950050087A KR0175455B1 (ko) | 1995-12-14 | 1995-12-14 | 교차 디버깅 운용방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0175455B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101008977B1 (ko) * | 2004-02-25 | 2011-01-17 | 삼성전자주식회사 | OSGi 서비스 플랫폼 테스트 방법 및 이를 이용한테스트 툴 |
-
1995
- 1995-12-14 KR KR1019950050087A patent/KR0175455B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101008977B1 (ko) * | 2004-02-25 | 2011-01-17 | 삼성전자주식회사 | OSGi 서비스 플랫폼 테스트 방법 및 이를 이용한테스트 툴 |
Also Published As
Publication number | Publication date |
---|---|
KR970049557A (ko) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6718294B1 (en) | System and method for synchronized control of system simulators with multiple processor cores | |
CA2292123C (en) | Method and system for modifying executable code to add additional functionality | |
US5613098A (en) | Testing and debugging new Y architecture code on existing X architecture system by using an environment manager to switch between direct X code execution and simulated Y code execution | |
JPH09325901A (ja) | デバッギングを実施する方法 | |
US20060150007A1 (en) | Parallel processing platform with synchronous system halt/resume | |
EP0595540A1 (en) | Debugging/modifying of software in ROM | |
US5737521A (en) | Tracer system for analyzing errors in running real-time systems | |
US20040168157A1 (en) | System and method for creating a process invocation tree | |
KR0175455B1 (ko) | 교차 디버깅 운용방법 | |
CN112579460B (zh) | 一种基于多核嵌入式系统的多级调试方法 | |
Lee et al. | A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems | |
KR100194800B1 (ko) | 접속 관리자를 이용한 다수의 칠 프로그램 교차 디버깅방법 | |
KR950012113B1 (ko) | 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법 | |
KR100255801B1 (ko) | 전전자 교환기에 있어서 지정된 프로세서의 디버깅 방법 | |
KR100205061B1 (ko) | 분산환경에서의 디버거 구동방법 | |
KR100214125B1 (ko) | 전전자 교환기에서 함수 파라미터 추적 방법 | |
KR0151921B1 (ko) | 교환 시스템에서의 교차 디버깅 방법 | |
JP3019330B2 (ja) | コンパイル装置 | |
Akarsu et al. | DARP: Java‐based data analysis and rapid prototyping environment for distributed high performance computations | |
Byun et al. | High-level chill debugging system in cross-development environments | |
KR100289039B1 (ko) | 교차디버깅서버에서프로세스실행제어서비스실현방법 | |
Kraimer et al. | EPICS: A Retrospective on Porting iocCore to Multiple Operating Systems | |
CN115934555A (zh) | Java编程断点在线调试方法、装置、电子设备及介质 | |
Ancona et al. | Interfacing user processes an kernel in high level language | |
Geyer et al. | Development tools for user microprogramming |
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: 20041101 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |