Abstract
In this paper, we present a multi-task debugging environment for Qplus-T embedded-system such as internet information appliances. We will propose the structure and functions of a remote multi-task debugging environment supporting environment effective ross-development. And, we are going enhance the communication architecture between the host and target system to provide more efficient cross-development environment. The remote development toolset called Q+Esto consists to several independent support tools: an interactive shell, a remote debugger, a resource monitor, a target manager and a debug agent. Excepting a debug agent, all these support tools reside on the host systems. Using the remote multi-task debugger on the host, the developer can spawn and debug tasks on the target run-time system. It can also be attached to already-running tasks spawned from the application or from interactive shell. Application code can be viewed as C/C++ source, or as assembly-level code. It incorporates a variety of display windows for source, registers, local/global variables, stack frame, memory, event traces and so on. The target manager implements common functions that are shared by Q+Esto tools, e.g., the host-target communication, object file loading, and management of target-resident host tool´s memory pool and target system´s symbol-table, and so on. These functions are called OPEn C APIs and they greatly improve the extensibility of the Q+Esto Toolset. The Q+Esto target manager is responsible for communicating between host and target system. Also, there exist a counterpart on the target system communicating with the host target manager, which is called debug agent. Debug agent is a daemon task on real-time operating systems in the target system. It gets debugging requests from the host tools including debugger via target manager, interprets the requests, executes them and sends the results to the host.
본 논문에서 인터넷 정보가전과 같은 Qplus-T 내장형 시스템을 위한 멀티 태스크 디버깅 환경에 대해 제안한다. 효과적인 교차 개발을 지원하기 위해 원격 멀티 태스크 디버깅 환경의 구조 및 기능틀을 제안할 것이다. 그리고, 좀더 효율적인 교차 개발 환경의 개발을 위하여 호스트-타겟 사이에 디버깅 커뮤니케이션 아키텍쳐를 개선할 것이다. 본 논문에서 제안하는 Q+Esto라는 원격 개발 도구들은 대화형 쉘, 원격 디버거, 리소스 모니터, 타겟 매니저, 그리고 디버그 에이전트들과 같이 몇 개의 독립된 도구들로 구성된다. 호스트에서 원격 멀티 태스크 디버거를 이용해서, 개발자는 타겟 실행 시스템 위에 태스크들을 생성시키거나 디버그 할 수 있으며, 실행 중인 태스크들에 접속하여 디버그 할 수 있다. 응용 코드는 C/C++ 소스레벨로 활 수 있으며, 어셈블리 레벨 코드로도 볼 수 있다. 그리고, 소스코드, 레지스터들, 지역/전역 변수들, 스택 프레임, 메모리, 그리고 사건 트레이스 등등을 위한 다양한 디스플레이 윈도우들을 포함하고 있다. 타겟 매니저는 Q+Esto 도구들에 의해 공유되는 공통된 기능 즉, 호스트-타겟 커뮤니케이션, 오브젝트 파일 로딩, 타겟 상주 호스트 메모리 풀의 관리, 그리고 타겟 시스템 심볼 테이블 관리 등등의 기능들을 구현한다. 이러한 기능들을 개방형 C API라고 부르는데, Q+Esto의 도구들의 확장성을 크게 개선한다. 그리고, 타겟 매니저와 타겟 시스템 커뮤니케이션을 위한 상대파트 모듈 즉, 디버그 에이전트가 존재하는데, 이것은 타겟의 실시간 운영체제 위에서 데몬 태스크 형태로 수행된다. 디버거를 포함한 호스트 도구로부터의 디버깅 요청을 밟아, 그것을 해석하고 실행하여, 그 결과론 호스트에 보내는 기능을 수행한다.