The Debugger kit ################ Classes ======= TargetHostInterface ------------------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Keeps track of how many TeamDebuggers there are, starts new ones, | | finds existing ones, and removes old ones. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ RemoteTargetHostInterface ------------------------- +------------------------------------------------+ | Class | +================================================+ | Operates on remote computers. Not implemented. | +------------------------------------------------+ | | +------------------------------------------------+ LocalTargetHostInterface ------------------------ +-------------------------+-------------------------+---------------+ | Class | L | | | | ocalTargetHostInterface | | +=========================+=========================+===============+ | Operates on the local | | | | computer. Creates | | | | teams, attaches to | | | | existing teams, and | | | | finds teams by threads. | | | | It is responsible for | | | | keeping its instance of | | | | TargetHost up-to-date. | | | +-------------------------+-------------------------+---------------+ | Operations: | | | +-------------------------+-------------------------+---------------+ | visibility | return | name | +-------------------------+-------------------------+---------------+ | | void | GetTargetHost | +-------------------------+-------------------------+---------------+ | | | | +-------------------------+-------------------------+---------------+ TargetHost ---------- +-------------------------------------------+ | Class | +===========================================+ | Stores wich teams are on the target host. | +-------------------------------------------+ | | +-------------------------------------------+ TeamDebugger ------------ +----------------------------------------------------------------------+ | Class | +======================================================================+ | Acts as the backend for UserInterface. Receives the UserInterface's | | requests through the UserInterfaceListener. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ UserInterfaceListener --------------------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Class that receives requests from the UserInterface to set and clear | | breakpoints and watchpoints, read and write memory, write core | | files, step over and into functions, load images, evaluate | | expressions, and so on. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ UserInterface ------------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Similar to BApplication class. States the existence of Show, | | Terminate, Init, LoadSettings, SaveSettings, etc. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ Debugger -------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Main class of the Debugger GUI. Usually starts the TeamsDebugger | | window when run. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ BApplication ------------ +-------+ | Class | +=======+ | | +-------+ GraphicalUserInterface ---------------------- +-----------------------------------------------------------+ | Class | +===========================================================+ | The GUI of a single debugger attached to a single process | +-----------------------------------------------------------+ | | +-----------------------------------------------------------+ TeamWindow ---------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | The window shown when the debugger is attached to the process. | | Allows stepping through code, setting breakpoints, etc. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ TeamsWindow ----------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | The list of applications shown when the debugger is first launched. | | The user can choose one from the list to attach to or start their | | own. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ BFilePanel ---------- +-------+ | Class | +=======+ | | +-------+ TargetHostInterfaceRoster ------------------------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Keeps track of all the available debugging interfaces. Currently | | only holds the local debugging interface, I believe. It could in the | | future also hold remote debugging connections. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ Team ---- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Stores information about the current team such as its threads, | | breakpoints, etc. It does not actually do anything: it simply stores | | information. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ Thread ------ +-------+ | Class | +=======+ | | +-------+ DebuggerInterface ----------------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Communicates to the system to tell it what should be done. Can set | | breakpoints, watchpoints, single step and resume threads, read and | | write memory, and get information. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ WatchpointManager ----------------- +-------+ | Class | +=======+ | | +-------+ BreakpointManager ----------------- +-------+ | Class | +=======+ | | +-------+ CommandLineUserInterface ------------------------ +----------------------------------------------------------------------+ | Class | +======================================================================+ | Controls the output to the terminal when the Debugger is launched | | with the -c option. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ CliContext ---------- +----------------------------------------------------------------------+ | Class | +======================================================================+ | Holds information and functions that each of the commands might want | | to use. | +----------------------------------------------------------------------+ | | +----------------------------------------------------------------------+ Diagrams ======== Classes: -------- .. image:: class\ diagram.png