Parallel debugger is greatly helpful to facilitate programmers find problems such as incorrect returned results or abnormal interruption when writing parallel programming. Therefore, in order to improve the quality and efficiency of parallel programs, most researchers usually focus on how to catch the exception, correct the program early.Similar to those errors that occur in sequential programs such as unexpected handling of pointers, mixing of variables, various syntax errors, parallel programs have many other own distinguished problems like deadlock, livelock and race condition. In addition, comparable to sequential debugging, parallel debugging also face some other solid unique problems such as non-deterministic execution, low scalability, time-consuming.This paper mainly concentrates on the research and implement of Scalable Parallel Debugger. Our aim is to develop an efficient parallel debugger based on MPI model. Usually, traditional debugger architecture usually consists of a root debugger connected directly to and controlling debug servers. There are many problems to this approach as the number of application processes scales. Further, we designed a TreeNet protocol to improve the scalability of parallel debugger. Scalable Parallel Debugger uses TreeNet protocol; it can debug more than 512 processes.Scalable Parallel Debugger uses the process group concept to manipulate parallel processes. The group compartmentalizes processes by logic. The basic methods for source level debugging are breakpoint and step. Scalable parallel debugger supports load and attach debugging. In the load mode, the parallel tasks are totally in the control of parallel debugger from the beginning of the tasks. In the attach mode, parallel debugger can debug the parallel tasks when they are running at anytime.Scalable Parallel Debugger is based on Eclipse platform. We use eclipse plug-in architecture and extend extensions of the view and perspective to develop a user-friendly debugger. |