xref: /haiku/docs/develop/kits/debugger/index.rst (revision 445d4fd926c569e7b9ae28017da86280aaecbae2)
1The Debugger kit
2################
3
4Classes
5=======
6
7TargetHostInterface
8-------------------
9
10+----------------------------------------------------------------------+
11| Class                                                                |
12+======================================================================+
13| Keeps track of how many TeamDebuggers there are, starts new ones,    |
14| finds existing ones, and removes old ones.                           |
15+----------------------------------------------------------------------+
16|                                                                      |
17+----------------------------------------------------------------------+
18
19RemoteTargetHostInterface
20-------------------------
21
22+------------------------------------------------+
23| Class                                          |
24+================================================+
25| Operates on remote computers. Not implemented. |
26+------------------------------------------------+
27|                                                |
28+------------------------------------------------+
29
30LocalTargetHostInterface
31------------------------
32
33+-------------------------+-------------------------+---------------+
34| Class                   | L                       |               |
35|                         | ocalTargetHostInterface |               |
36+=========================+=========================+===============+
37| Operates on the local   |                         |               |
38| computer. Creates       |                         |               |
39| teams, attaches to      |                         |               |
40| existing teams, and     |                         |               |
41| finds teams by threads. |                         |               |
42| It is responsible for   |                         |               |
43| keeping its instance of |                         |               |
44| TargetHost up-to-date.  |                         |               |
45+-------------------------+-------------------------+---------------+
46| Operations:             |                         |               |
47+-------------------------+-------------------------+---------------+
48| visibility              | return                  | name          |
49+-------------------------+-------------------------+---------------+
50|                         | void                    | GetTargetHost |
51+-------------------------+-------------------------+---------------+
52|                         |                         |               |
53+-------------------------+-------------------------+---------------+
54
55TargetHost
56----------
57
58+-------------------------------------------+
59| Class                                     |
60+===========================================+
61| Stores wich teams are on the target host. |
62+-------------------------------------------+
63|                                           |
64+-------------------------------------------+
65
66TeamDebugger
67------------
68
69+----------------------------------------------------------------------+
70| Class                                                                |
71+======================================================================+
72| Acts as the backend for UserInterface. Receives the UserInterface's  |
73| requests through the UserInterfaceListener.                          |
74+----------------------------------------------------------------------+
75|                                                                      |
76+----------------------------------------------------------------------+
77
78UserInterfaceListener
79---------------------
80
81+----------------------------------------------------------------------+
82| Class                                                                |
83+======================================================================+
84| Class that receives requests from the UserInterface to set and clear |
85| breakpoints and watchpoints, read and write memory, write core       |
86| files, step over and into functions, load images, evaluate           |
87| expressions, and so on.                                              |
88+----------------------------------------------------------------------+
89|                                                                      |
90+----------------------------------------------------------------------+
91
92UserInterface
93-------------
94
95+----------------------------------------------------------------------+
96| Class                                                                |
97+======================================================================+
98| Similar to BApplication class. States the existence of Show,         |
99| Terminate, Init, LoadSettings, SaveSettings, etc.                    |
100+----------------------------------------------------------------------+
101|                                                                      |
102+----------------------------------------------------------------------+
103
104Debugger
105--------
106
107+----------------------------------------------------------------------+
108| Class                                                                |
109+======================================================================+
110| Main class of the Debugger GUI. Usually starts the TeamsDebugger     |
111| window when run.                                                     |
112+----------------------------------------------------------------------+
113|                                                                      |
114+----------------------------------------------------------------------+
115
116BApplication
117------------
118
119+-------+
120| Class |
121+=======+
122|       |
123+-------+
124
125GraphicalUserInterface
126----------------------
127
128+-----------------------------------------------------------+
129| Class                                                     |
130+===========================================================+
131| The GUI of a single debugger attached to a single process |
132+-----------------------------------------------------------+
133|                                                           |
134+-----------------------------------------------------------+
135
136TeamWindow
137----------
138
139+----------------------------------------------------------------------+
140| Class                                                                |
141+======================================================================+
142| The window shown when the debugger is attached to the process.       |
143| Allows stepping through code, setting breakpoints, etc.              |
144+----------------------------------------------------------------------+
145|                                                                      |
146+----------------------------------------------------------------------+
147
148TeamsWindow
149-----------
150
151+----------------------------------------------------------------------+
152| Class                                                                |
153+======================================================================+
154| The list of applications shown when the debugger is first launched.  |
155| The user can choose one from the list to attach to or start their    |
156| own.                                                                 |
157+----------------------------------------------------------------------+
158|                                                                      |
159+----------------------------------------------------------------------+
160
161BFilePanel
162----------
163
164+-------+
165| Class |
166+=======+
167|       |
168+-------+
169
170TargetHostInterfaceRoster
171-------------------------
172
173+----------------------------------------------------------------------+
174| Class                                                                |
175+======================================================================+
176| Keeps track of all the available debugging interfaces. Currently     |
177| only holds the local debugging interface, I believe. It could in the |
178| future also hold remote debugging connections.                       |
179+----------------------------------------------------------------------+
180|                                                                      |
181+----------------------------------------------------------------------+
182
183Team
184----
185
186+----------------------------------------------------------------------+
187| Class                                                                |
188+======================================================================+
189| Stores information about the current team such as its threads,       |
190| breakpoints, etc. It does not actually do anything: it simply stores |
191| information.                                                         |
192+----------------------------------------------------------------------+
193|                                                                      |
194+----------------------------------------------------------------------+
195
196Thread
197------
198
199+-------+
200| Class |
201+=======+
202|       |
203+-------+
204
205DebuggerInterface
206-----------------
207
208+----------------------------------------------------------------------+
209| Class                                                                |
210+======================================================================+
211| Communicates to the system to tell it what should be done. Can set   |
212| breakpoints, watchpoints, single step and resume threads, read and   |
213| write memory, and get information.                                   |
214+----------------------------------------------------------------------+
215|                                                                      |
216+----------------------------------------------------------------------+
217
218WatchpointManager
219-----------------
220
221+-------+
222| Class |
223+=======+
224|       |
225+-------+
226
227BreakpointManager
228-----------------
229
230+-------+
231| Class |
232+=======+
233|       |
234+-------+
235
236CommandLineUserInterface
237------------------------
238
239+----------------------------------------------------------------------+
240| Class                                                                |
241+======================================================================+
242| Controls the output to the terminal when the Debugger is launched    |
243| with the -c option.                                                  |
244+----------------------------------------------------------------------+
245|                                                                      |
246+----------------------------------------------------------------------+
247
248CliContext
249----------
250
251+----------------------------------------------------------------------+
252| Class                                                                |
253+======================================================================+
254| Holds information and functions that each of the commands might want |
255| to use.                                                              |
256+----------------------------------------------------------------------+
257|                                                                      |
258+----------------------------------------------------------------------+
259
260Diagrams
261========
262
263Classes:
264--------
265
266.. image:: class\ diagram.png
267