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