optimize chkp after ldb
[charm.git] / doc / debugger / intro.tex
1 %% Section: Introduction
2
3 The primary goal of the parallel debugger is to provide an integrated
4 debugging environment which allows the programmer to examine the
5 changing state of the parallel program during the course of its
6 execution.
7
8 The \charmpp{} debugging system has a number of useful features for
9 \charmpp{} programmers.  The system includes a Java GUI client program
10 which runs on the programmer's desktop, and a \charmpp{} parallel
11 program which acts as a server.  The client and server need not be on
12 the same machine, and communicate over the network using a secure
13 protocol described in
14  http://charm.cs.uiuc.edu/manuals/html/converse/5\_CONVERSE\_Client\_Server\_In.html 
15
16 The system provides the following features: 
17
18 \begin{itemize}
19
20 \item Provides a means to easily access and view the major programmer
21 visible entities, including array elements and messages in queues,
22 across the parallel machine during program execution. Objects and messages
23 are extracted as raw data, and interpreted by the debugger, as explained
24 in \ref{section:data}.
25 %% Objects and
26 %%messages are extracted using the \charmpp{} PUP framework described in
27 %%Section%%~\ref{section:pup}.
28
29 \item Provides an interface to set and remove breakpoints on remote
30 entry points, which capture the major
31 programmer-visible control flows in a \charmpp{} program. 
32
33 \item Provides the ability to freeze and unfreeze the execution of 
34 selected processors of the parallel program, which allows a 
35 consistent snapshot by 
36 preventing things from changing as they are examined.
37
38 \item Provides a way to attach a sequential debugger to a specific
39 subset of processes of the parallel program during execution,
40 which keeps a manageable number of sequential debugger windows open.
41 Currently these windows are opened independently of the GUI interface,
42 while in the future they will be transformed into an integrated view.
43
44 \end{itemize}
45
46 The debugging client provides these features via 
47 extensive support built into the \charmpp{} runtime.