UML Model
Actors
Use Cases
Interfaces
Classes
TargetHostInterface <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TargetHostInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Keeps track of how many TeamDebuggers there are, starts new ones, finds existing ones, and removes old ones.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>RemoteTargetHostInterface
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">RemoteTargetHostInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Operates on remote computers. Not implemented.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section> <title>Supertypes:
LocalTargetHostInterface <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">LocalTargetHostInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>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.</para> </entry> </row> <section> <title>Supertypes: Operations: visibility return name void GetTargetHost
TargetHost <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TargetHost</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Stores wich teams are on the target host.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>TeamDebugger
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TeamDebugger</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Acts as the backend for UserInterface. Receives the UserInterface's requests through the UserInterfaceListener.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section><title>Supertypes:,
UserInterfaceListener <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">UserInterfaceListener</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>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.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>UserInterface
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">UserInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Similar to BApplication class. States the existence of Show, Terminate, Init, LoadSettings, SaveSettings, etc.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section> <title>Supertypes:
Debugger <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">Debugger</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Main class of the Debugger GUI. Usually starts the TeamsDebugger window when run.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section> <title>Supertypes:
BApplication <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">BApplication</entry> </row> </thead> <tbody> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>GraphicalUserInterface
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">GraphicalUserInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>The GUI of a single debugger attached to a single process</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section> <title>Supertypes:
TeamWindow <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TeamWindow</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>The window shown when the debugger is attached to the process. Allows stepping through code, setting breakpoints, etc.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>TeamsWindow
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TeamsWindow</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>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.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>BFilePanel
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">BFilePanel</entry> </row> </thead> <tbody> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>TargetHostInterfaceRoster
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">TargetHostInterfaceRoster</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>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.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>Team
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">Team</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Stores information about the current team such as its threads, breakpoints, etc. It does not actually do anything: it simply stores information.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>Thread
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">Thread</entry> </row> </thead> <tbody> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>DebuggerInterface
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">DebuggerInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>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.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>WatchpointManager
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">WatchpointManager</entry> </row> </thead> <tbody> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>BreakpointManager
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">BreakpointManager</entry> </row> </thead> <tbody> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> <section> <title>CommandLineUserInterface
<tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">CommandLineUserInterface</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Controls the output to the terminal when the Debugger is launched with the -c option.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> <section> <title>Supertypes:
CliContext <tgroup cols="3" align="left" colsep="1" rowsep="1"> <colspec colname="c1"/> <colspec colname="c2"/> <colspec colname="c3"/> <thead> <row> <entry role="class-title">Class</entry> <entry role="class-name" namest="c2" nameend="c3">CliContext</entry> </row> </thead> <tbody> <row> <entry role="comment" namest="c1" nameend="c3"> <para>Holds information and functions that each of the commands might want to use.</para> </entry> </row> <row> <entry namest="c1" nameend="c3"> <para/> </entry> </row> </tbody> </tgroup> </table> </section> </section> <section id="diagrams"> <title>Diagrams
class diagram
Classes: