diff --git a/docs/develop/index.rst b/docs/develop/index.rst
index f2c99bf4ea..011e9442e4 100644
--- a/docs/develop/index.rst
+++ b/docs/develop/index.rst
@@ -41,6 +41,7 @@ Table of contents
/build/index
/release/index
/libroot/index
+ /kits/debugger/index
/midi/index
/net/index
/packages/README
diff --git a/docs/develop/kits/debugger/class diagram.png b/docs/develop/kits/debugger/class diagram.png
new file mode 100644
index 0000000000..6822455e14
Binary files /dev/null and b/docs/develop/kits/debugger/class diagram.png differ
diff --git a/docs/develop/kits/debugger/debugger.docbook b/docs/develop/kits/debugger/debugger.docbook
new file mode 100644
index 0000000000..682d417ae7
--- /dev/null
+++ b/docs/develop/kits/debugger/debugger.docbook
@@ -0,0 +1,663 @@
+
+
+
+ UML Model
+
+
+
+
+ Classes
+
+ TargetHostInterface
+
+
+
+
+
+
+
+
+ Class
+ TargetHostInterface
+
+
+
+
+
+ Keeps track of how many TeamDebuggers there are, starts new ones, finds existing ones, and removes old ones.
+
+
+
+
+
+
+
+
+
+
+
+
+ RemoteTargetHostInterface
+
+
+
+
+
+
+
+
+ Class
+ RemoteTargetHostInterface
+
+
+
+
+
+ Operates on remote computers. Not implemented.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LocalTargetHostInterface
+
+
+
+
+
+
+
+
+ Class
+ LocalTargetHostInterface
+
+
+
+
+
+ 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
+ TargetHost
+
+
+
+
+
+ Stores wich teams are on the target host.
+
+
+
+
+
+
+
+
+
+
+
+
+ TeamDebugger
+
+
+
+
+
+
+
+
+ Class
+ TeamDebugger
+
+
+
+
+
+ Acts as the backend for UserInterface. Receives the UserInterface's requests through the UserInterfaceListener.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UserInterfaceListener
+
+
+
+
+
+
+
+
+ Class
+ UserInterfaceListener
+
+
+
+
+
+ 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
+ UserInterface
+
+
+
+
+
+ Similar to BApplication class. States the existence of Show, Terminate, Init, LoadSettings, SaveSettings, etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Debugger
+
+
+
+
+
+
+
+
+ Class
+ Debugger
+
+
+
+
+
+ Main class of the Debugger GUI. Usually starts the TeamsDebugger window when run.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BApplication
+
+
+
+
+
+
+
+
+ Class
+ BApplication
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GraphicalUserInterface
+
+
+
+
+
+
+
+
+ Class
+ GraphicalUserInterface
+
+
+
+
+
+ The GUI of a single debugger attached to a single process
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TeamWindow
+
+
+
+
+
+
+
+
+ Class
+ TeamWindow
+
+
+
+
+
+ The window shown when the debugger is attached to the process. Allows stepping through code, setting breakpoints, etc.
+
+
+
+
+
+
+
+
+
+
+
+
+ TeamsWindow
+
+
+
+
+
+
+
+
+ Class
+ TeamsWindow
+
+
+
+
+
+ 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
+ BFilePanel
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TargetHostInterfaceRoster
+
+
+
+
+
+
+
+
+ Class
+ TargetHostInterfaceRoster
+
+
+
+
+
+ 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
+ Team
+
+
+
+
+
+ Stores information about the current team such as its threads, breakpoints, etc. It does not actually do anything: it simply stores information.
+
+
+
+
+
+
+
+
+
+
+
+
+ Thread
+
+
+
+
+
+
+
+
+ Class
+ Thread
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DebuggerInterface
+
+
+
+
+
+
+
+
+ Class
+ DebuggerInterface
+
+
+
+
+
+ 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
+ WatchpointManager
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BreakpointManager
+
+
+
+
+
+
+
+
+ Class
+ BreakpointManager
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CommandLineUserInterface
+
+
+
+
+
+
+
+
+ Class
+ CommandLineUserInterface
+
+
+
+
+
+ Controls the output to the terminal when the Debugger is launched with the -c option.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CliContext
+
+
+
+
+
+
+
+
+ Class
+ CliContext
+
+
+
+
+
+ Holds information and functions that each of the commands might want to use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Diagrams
+
+
+
+ class diagram
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/develop/kits/debugger/debugger.xmi b/docs/develop/kits/debugger/debugger.xmi
new file mode 100644
index 0000000000..69e67580c6
--- /dev/null
+++ b/docs/develop/kits/debugger/debugger.xmi
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/develop/kits/debugger/index.rst b/docs/develop/kits/debugger/index.rst
new file mode 100644
index 0000000000..1436be52fd
--- /dev/null
+++ b/docs/develop/kits/debugger/index.rst
@@ -0,0 +1,266 @@
+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