Condividi tramite


Panoramica dell'API dell'estensione WdbgExts

Ogni DLL di estensione WdbgExts esporta una o più funzioni usate per implementare i comandi di estensione. Queste funzioni vengono denominate in base alla convenzione C standard, ad eccezione del fatto che le lettere maiuscole non sono consentite.

Il nome della funzione e il nome del comando di estensione sono identici, ad eccezione del fatto che il comando di estensione inizia con un punto esclamativo ( ! ). Ad esempio, quando si carica Myextension.dll nel debugger e quindi si digita !stack nella finestra Comando debugger, il debugger cerca una funzione esportata denominata stack in Myextension.dll.

Se Myextension.dll non è già caricato o se sono presenti altri comandi di estensione con lo stesso nome in altre DLL di estensione, è possibile digitare !myextension.stack nella finestra comando debugger per indicare la DLL di estensione e il comando di estensione in tale DLL.

Ogni DLL dell'estensione WdbgExts esporta anche una serie di funzioni di callback. Queste funzioni vengono chiamate dal debugger quando la DLL viene caricata e quando vengono usati i comandi di estensione.

Il motore del debugger inserisce un blocco try/except intorno a una chiamata a una DLL di estensione. In questo modo il motore viene protetto da alcuni tipi di bug nel codice di estensione. Tuttavia, poiché le chiamate di estensione vengono eseguite nello stesso thread del motore, possono comunque causare l'arresto anomalo del motore.