Übersicht über die WdbgExts-Erweiterungs-API
Jede WdbgExts-Erweiterungs-DLL exportiert eine oder mehrere Funktionen, die zum Implementieren von Erweiterungsbefehlen verwendet werden. Diese Funktionen werden nach der Standard-C-Konvention benannt, mit der Ausnahme, dass Großbuchstaben nicht zulässig sind.
Der Funktionsname und der Name des Erweiterungsbefehls sind identisch, mit der Ausnahme, dass der Erweiterungsbefehl mit einem Ausrufezeichen ( ! ) beginnt. Wenn Sie beispielsweise Myextension.dll in den Debugger laden und dann !stack in das Debuggerbefehlsfenster eingeben, sucht der Debugger in Myextension.dll nach einer exportierten Funktion namens stack .
Wenn Myextension.dll noch nicht geladen ist oder andere Erweiterungsbefehle mit demselben Namen in anderen Erweiterungs-DLLs vorhanden sind, können Sie !myextension.stack in das Debuggerbefehlsfenster eingeben, um die Erweiterungs-DLL und den Erweiterungsbefehl in dieser DLL anzugeben.
Jede WdbgExts-Erweiterungs-DLL exportiert auch eine Reihe von Rückruffunktionen. Diese Funktionen werden vom Debugger aufgerufen, wenn die DLL geladen wird und Erweiterungsbefehle verwendet werden.
Die Debugger-Engine platziert einen try/except-Block um einen Aufruf einer Erweiterungs-DLL. Dadurch wird die Engine vor einigen Arten von Fehlern im Erweiterungscode geschützt. Da die Erweiterungsaufrufe jedoch im selben Thread wie die Engine ausgeführt werden, können sie dennoch zum Absturz der Engine führen.