Das Debugmodell der Plattform definiert generische Debugschnittstellen, die in konkreten sprachspezifischen Implementierungen umgesetzt und erweitert werden können.
Das Modell enthält Klassen, die unterschiedliche Artefakte in einem Programm darstellen, für das ein Debug vorgenommen wird. Alle Artefakte implementieren neben ihren eigenen Schnittstellen auch IDebugElement. Das Modell enthält Definitionen für die folgenden Artefakte:
Plug-ins, die sprachspezifische Debugger implementieren, erweitern normalerweise diese Schnittstellen, um sprachspezifisches Verhalten zu integrieren. Alle Debugelemente können die ID des Plug-ins zurückgeben, von dem sie erstellt wurden. Dies ist für die Registrierung anderer Klassen wichtig, die einem Debugmodell zugeordnet sind (z. B. Benutzerschnittstellenklassen).
Das Modell enthält außerdem Schnittstellen, die eine Gruppe von Debugaktionen für allgemeines Verhalten gegenüber Debugartefakten definieren. Diese Schnittstellen werden bei Bedarf durch Debugelemente implementiert. Sie enthalten die folgenden Aktionen:
Bei Betrachtung der Definitionen für die Debugelemente der Plattform wird deutlich, dass unterschiedliche Elemente unterschiedliche Debugaktionen implementieren. Über Standardschnittstellen für die Elemente und deren Verhalten kann die Plattform abstrakte Implementierungen von Dienstprogrammklassen und eine Benutzerschnittstellenunterstützung bereitstellen, die für konkrete Debuggerimplementierungen erweitert werden können.
Mit Debugereignissen (DebugEvent) werden Ereignisse beschrieben, die beim Debug eines Programms auftreten. Debugereignisse enthalten das Debugelement, das dem Ereignis zugeordnet ist. Jeder Typ eines Debugelements hat eine spezifische Gruppe von Ereignissen, die unterstützt werden. Dies ist in DebugEvent dokumentiert. Debugger-Implementierungen können anwendungsspezifische Debug-Ereignisse mit Hilfe von DebugEvent.MODEL_SPECIFIC als Bezeichnung der Ereignisart hinzufügen. In diesem Fall kann ein Clientdatenfeld verwendet werden, um modellspezifische Informationen über das Ereignis hinzuzufügen.
Debugger-Klassen für Benutzerschnittstellen sind typischerweise für spezielle Ereignisse für Elemente empfangsbereit, um Informationen über Änderungen in den Elementen anzeigen zu können. Debugereignisse treten in Gruppen auf, die als Debugereignisgruppen bezeichnet. Ereignisse, die an derselben Ausführungsposition eines Programms auftreten, gehören zur gleichen Gruppe. Clients sollten einen IDebugEventSetListener implementieren und diese Listener-Funktion mit dem Plug-inorg.eclipse.debug.core registrieren, um Debugereignisse zu empfangen.