Development of a Remote Multi-Task Debugger for Qplus-T RTOS

Qplus-T RTOS를 위한 원격 멀티 태스크 디버거의 개발

  • 이광용 (한국전자통신연구원 임베디드S/W기술센터) ;
  • 김흥남 (한국전자통신연구원 임베디드/S/W기술센터)
  • Published : 2003.08.01

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의 도구들의 확장성을 크게 개선한다. 그리고, 타겟 매니저와 타겟 시스템 커뮤니케이션을 위한 상대파트 모듈 즉, 디버그 에이전트가 존재하는데, 이것은 타겟의 실시간 운영체제 위에서 데몬 태스크 형태로 수행된다. 디버거를 포함한 호스트 도구로부터의 디버깅 요청을 밟아, 그것을 해석하고 실행하여, 그 결과론 호스트에 보내는 기능을 수행한다.

Keywords

References

  1. 김선자, 김흥남, 김채규, '인터넷 정보가전용 RTOS 기술 현황', 한국정보과학회지, 제19권, 제4호, pp.57-64, 한국정보과학회, 2001
  2. 김선자, 김흥남, 김채규, '정보가전용 잉베디드 운영체제 기술', 한국통신학회지, 제18권 제12호, pp.72-81, 한국통신학회, 2001
  3. 김흥남, '사용자개발도구연구', 정보가전용 실시간 OS 컨퍼런스(RTOS 99) 자료집, ETRl, pp.178-196, Nov. 17, 1999
  4. 임채덕, 'Q+ 사용자개발도구 기술연구', 정보가전용 실시간 OS 컨퍼런스(RTOS 2000) 자료집, ETRI, pp.107-125, Nov. 3, 2000
  5. Eldad Maniv, 'New Trends in Real Time Software Debugging,' Real Time Magazine 99-2 (http://www.realtime info.com), pp.23 25, 1999
  6. T. Yasuda, K. Ueki, 'A Debugging Technique Using Event History,' Proceedings of the Conference on Real-Time Computing Systems and Applications, pp.137 141, 1994
  7. 이광용, 김창갑, 김흥남, '정보가전용 내장형 소프트혜 어 개발윤 위한 원격 디버거의 설계 및 구현' 한국정 보처리학회지, 2000년 춘계 학술발표논문집, 제7권, 제 1호, 한국정보처리학회,2000
  8. Kwangyong Lee, Chaedeok Lim, Kisok Kong, Heung Nam Kim, 'A Design and Implementation of a Remote Debugging Environment for Embedded Internet Software,' Lecture Notes in Computer Science vol. 1985, Springer Verlag, pp.199 203, 2001
  9. Hideyuki Tokuda and Makoto Kotera, 'A Real Time Tool Set for the ARTS Kernel,' Proceedings of Real Time Systems Symposium, 1988 https://doi.org/10.1109/REAL.1988.51124
  10. Intel, StrongARM EBSA 285 Evaluation Board, 1998
  11. GNU, GDB: The GNU Project Debugger, http://sources.redhat.com/gdb
  12. Microtec, Spectra Boot and VRTX Real Time OS, 1996
  13. Jonathan B. Rosenberg, How Debuggers Work, John Wiley & Sons, 1996
  14. Michael Snyder and Jim Blandy, The Heisenberg Debugging Technology, http://sources.redhat.com/gdb/talks/esc west 1999/INTROSPECT.html
  15. W. Richard Stevens, Unix Network Programming: Interprocess Communications, Prentice Hall, 1999
  16. Daniel Schulz and Frank Mueller, A Thread Aware Debugger with an Open Interface, http://citeseer.nj.nec.com/schulzOOthreadaware.html, 1998
  17. Peter A. Buhr, Martin Karsten and Jun Shih, KDB: A Multi threaded Debugger for Mutlti threaded Applications, http://citeseer.nj.nec.com/buhr96kdb.html, 1996
  18. WindRiver, Tornado Users Guide, 1995
  19. WindRiver, Tornado API Guide 1.0.1, 1997
  20. Amit S. Kale, 'kgdb: linux kernel source level debugger,' http://kgdb.sourceforge.net, 2000
  21. GNU, 'DDD: Data Display Debugger,' http://www.gnu.org/software/ddd
  22. ETRI & Dasan, '확장가능 조립형 실시간 OS', http://embedix.com/qplus