Parallel architectures offer new challenges in program complexity and design, and significantly complicate the debugging process. The increased complexity of expressing concurrency has made debugging parallel programs even harder than debugging sequential programs. Applications running on KAICUBEII, a distributed-memory message-passing hypercube multicomputer, are composed of multiple processes being executed concurrently on different node computers. Debugging such applications with traditional sequential debuggers is inadequate.
This thesis describes the design and implementation of a source level symbolic parallel debugger aiding KAICUBEII programmers to debug concurrent applications. The prototype debugger Kdb is implemented by extending one-process debuggers to the situation under concurrent multiple application processes. Kdb enables the programmer to use high-level symbolic references during debugging concurrent KAICUBEII application programs written in C. The parallel debugger Kdb supports not only the major capabilities found in advanced source level sequential debuggers but also the challenges derived from the distributed nature of parallel applications.
병렬 시스템은 그 프로그램의 복잡함과 설계에 있어서 새로이 도전해야할 문제들을 던지고, 특히 디버깅을 매우 복잡하게 만든다. 병렬성 (Parallelism) 표현에 있어서 추가된 어려움 때문에 병렬 프로그램의 디버깅은 순차 프로그램에 비해서 훨씬 어렵다. 분산 메모리를 갖고 메세지 교한 방식의 하이퍼큐브형 멀티컴퓨터 KAICUBEII에서 실행되는 응용 프로그램은 동시에 다른 노드에서 실행되는 많은 수의 프로세스들로 구성된다. 이러한 프로그램을 전통적인 순차 디버거를 사용하여 디버깅하는 것은 적당하지가 않다.
본 논문은 KAICUBEII 프로그래머가 병렬 프로그램을 디버깅할 수 있도록 도와 주는 소스-레벨 심볼릭 디버거의 설계와 구현에 대해 기술한다. 구현된 원형 병렬 디버거 Kdb은 순차 디버거를 많은 수의 프로세스들이 동시에 존재하는 상황을 처리 할 수 있도록 확장하여 설계 되었다. 이 Kdb은 C 언어로 쓰여진 KAICUBEII 응 용 프로그램을 높은 레벨의 심볼 표현을 사용하여 디버깅할 수 있게 해준다. 또한 이 병렬 디버거 Kdb은 발전된 소스-레벨 순차 디버거들이 제공하는 주요한 기능들뿐만 아니라, 병렬 프로세스들의 분산된 본성으로부터 도전하고 해결해야할 기능들을 제공한다.