DOI QR코드

DOI QR Code

Design and Implementation of a Remote Debugger for Concurrent Debugging of Multiple Processes based on Embeded Linux System

임베디드 Linux 시스템 기반 프로세스 동시 디버깅을 지원하는 원격 디버거 설계 및 구현

  • 심현철 (성균관대학교 대학원 정보통신공학부) ;
  • 강용혁 (성균관대학교 대학원 정보통신공학부) ;
  • 엄영익 (성균관대학교 정보통신공학부)
  • Published : 2003.10.01

Abstract

In the embedded Linux environments, developers can concurrently debug multiple processes that have parent-child relationships using multiple gdbs and gdbservers. But, it needs additional coding efforts and messy works of activating another gdbs and gdbservers for each created process, and so, it may be inefficient in the viewpoint of developers. In this paper, we propose a mgdb library and mgdbserver that supports concurrent debugging of multiple processes in the embedded Linux systems by using the library wrapping mechanism without modifying the kernel. Also, through the experimentation of concurrent debugging for multiple processes that communicate by an unnamed pipe, we show that our proposed debugging mechanism is more efficient than the preexisting mechanisms.

임베디드 Linux 환경에서 gdb와 gdbserver를 사용하여 현재 디버깅 중인 프로세스로부터 fork 시스템 콜에 의해 생성된 새로운 프로세스를 원격으로 동시에 디버깅할 수는 있으나 이를 위해서 개발자는 부가적인 코딩뿐만 아니라 새로운 프로세스가 생성될 때마다 원격 디버깅을 위해 별도의 gdb 및 gdbserver를 구동 시켜야 하는 등 불필요한 작업을 해야 하므로 효율적인 디버깅 작업을 진행하기 어렵다. 본 논문에서는 Linux 커널의 변경 없이 라이브러리 래핑 방법을 이용하여 원격 시스템에서 동작하는 다중 프로세스들을 동시에 디버깅할 수 있도록 지원하기 위한 mgdb 라이브러리와 mgdbserver를 제안한다. 또한, 파이프를 통하여 데이터를 주고받는 부모-자식 관계의 프로세스들을 원격으로 동시에 디버깅하는 실험을 통하여 본 논문에서 제안한 방법이 기존의 방법보다 더 효율적임을 보인다.

Keywords

References

  1. Daniel Jacobowitz, Remote Debugging with GDB, http://www.kegel.com/linux/gdbserver.html
  2. Minheng Tan, A minimal GDB stub for embedded remote debugging, http://www1.cs.columbia.edu/~sedwards/classes/2002/w4995-02/tan-final.pdf, 2002
  3. Richard M. Stallman, Debugging with GDB, 4th ed., Cygnus Support, 1996
  4. 임형택, 심현철, 손승우, 김흥남, 김채규, 'Q+P Esto의 원격개발을 지원하는 타겟에이전트', 한국정보처리학회 2001년 추계학술대회, 제8권 제2호, pp.671-674, 2001
  5. Greg Rose, Embedded Linux 101, http://www.ecnmag.com/ecnmag/issues/2001/12012001/ecldsc100_.asp
  6. Etnus, Totalview Getting Started, http://www.etnus.com/Products/TotalView/started/getting_started2.html, 2001
  7. Intel, Intel Atchitecture Software Developer's Manual, Vol. 3, 1999
  8. Daniel P. Bovet and Marco Cesati, Understanding the Linux Kernel, O'Reilly, 2001
  9. Uresh Vahalia, Unix Internals, Prentice Hall, 1996
  10. Sun Microsystems Inc., Linker & Libraries Guide, October, 1998