Diagnose und Debuggen
RDBSS bietet eine Reihe von Routinen für Diagnose- und Debugzwecke. Diese Routinen lassen sich in zwei Kategorien einteilen:
Assert- und Debugroutinen
Referenz- und Rückschlussverfolgungsroutinen
Diese Routinen enthalten die Elemente in der folgenden Tabelle.
-Routine zurückgegebener Wert | BESCHREIBUNG |
---|---|
Diese Routine sendet eine Assert-Zeichenfolge in überprüften Builds von RDBSS an einen Kerneldebugger, sofern einer installiert ist. Wenn die Include-Datei rxAssert.h verwendet wird, werden RtlAssert-Aufrufe des Windows-Kernels neu definiert, um auch diese RxAssert-Routine aufzurufen. Bei Einzelhandelsbuilds wird bei Aufrufen dieser Routine eine Fehlerüberprüfung angezeigt. |
|
Diese Routine löst eine Ausnahme aus, die vom Kerneldebugger behandelt wird, wenn einer installiert ist; andernfalls wird sie vom Debugsystem verarbeitet. |
|
Diese Routine wird verwendet, um eine Anforderung zum Verweisen auf SRV_CALL-, NET_ROOT-, V_NET_ROOT-, FOBX-, FCB- und SRV_OPEN-Strukturen in überprüften Builds nachzuverfolgen. Auf ein Protokoll dieser Verweisanforderungen kann vom Protokollierungssystem und WMI zugegriffen werden. Diese Routine führt den Dereference-Vorgang nicht aus. Bei Einzelhandelsbuilds bringt diese Routine nichts. |
|
Diese Routine wird verwendet, um eine Anforderung zum Rückschluss SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB und SRV_OPEN Strukturen in überprüften Builds nachzuverfolgen. Auf ein Protokoll dieser Rückschlussanforderungen kann das Protokollierungssystem und WMI zugreifen. Diese Routine führt den Verweisvorgang nicht aus. Bei Einzelhandelsbuilds bringt diese Routine nichts. |
Zusätzlich zu den in der vorherigen Tabelle aufgeführten Routinen werden für das Debuggen eine Reihe von Makros definiert, die diese Routinen aufrufen. Diese Makros, die in der folgenden Tabelle aufgeführt sind, stellen einen Wrapper um die RxReference - oder RxDereference-Routinen bereit, die für Dateistrukturverwaltungsvorgänge auf SRV_CALL-, NET_ROOT-, V_NET_ROOT-, FOBX-, FCB- und SRV_OPEN-Strukturen verwendet werden. Diese Makros rufen zuerst die entsprechende RxpTrackReference - oder RxpTrackDereference-Routine auf, um Diagnoseinformationen zu protokollieren, bevor die entsprechende RxReference - oder RxDeference-Routine aufgerufen wird. Auf ein Protokoll der Verweis- und Dereferenceanforderungen kann vom RDBSS-Protokollierungssystem und WMI zugegriffen werden.
Makro | Beschreibung |
---|---|
RxDereferenceAndFinalizeNetFcb (Fcb , RxContext, RecursiveFinalize, ForceFinalize) |
Dieses Makro wird verwendet, um Dereferencevorgänge in FCB-Strukturen nachzuverfolgen. Beachten Sie, dass dieses Makro die Verweisanzahl bearbeitet und auch die status des Finalize-Aufrufs zurückgibt. |
RxDereferenceNetFcb (Fcb) |
Dieses Makro wird verwendet, um Dereferencevorgänge in FCB-Strukturen nachzuverfolgen. Beachten Sie, dass dieses Makro die Verweisanzahl bearbeitet und auch die status des letzten Dereference-Aufrufs zurückgibt. |
RxDereferenceNetFobx (Fobx,LockHoldingState) |
Dieses Makro wird verwendet, um Dereferencevorgänge auf FOBX-Strukturen nachzuverfolgen. |
RxDereferenceNetRoot (NetRoot, LockHoldingState) |
Dieses Makro wird verwendet, um Dereferencevorgänge für NET_ROOT Strukturen nachzuverfolgen. |
RxDereferenceSrvCall (SrvCall, LockHoldingState) |
Dieses Makro wird verwendet, um Dereferencevorgänge für SRV_CALL Strukturen nachzuverfolgen. |
RxDereferenceSrvOpen ( SrvOpen, LockHoldingState) |
Dieses Makro wird verwendet, um Dereferencevorgänge für SRV_OPEN Strukturen nachzuverfolgen. |
RxDereferenceVNetRoot ( VNetRoot, LockHoldingState) |
Dieses Makro wird verwendet, um Dereferencevorgänge für NET_ROOT Strukturen nachzuverfolgen. |
RxReferenceNetFcb (Fcb) |
Dieses Makro wird verwendet, um Verweisvorgänge in FCB-Strukturen nachzuverfolgen. |
RxReferenceNetFobx (Fobx) |
Dieses Makro wird verwendet, um Verweisvorgänge in FOBX-Strukturen nachzuverfolgen. |
RxReferenceNetRoot (NetRoot) |
Dieses Makro wird verwendet, um Verweisvorgänge auf NET_ROOT Strukturen nachzuverfolgen. |
RxReferenceSrvCall (SrvCall) |
Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_CALL Strukturen zu verfolgen, die sich nicht auf DPC-Ebene befinden. |
RxReferenceSrvCallAtDpc (SrvCall) |
Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_CALL Strukturen auf DPC-Ebene nachzuverfolgen. |
RxReferenceSrvOpen (SrvOpen) |
Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_OPEN Strukturen nachzuverfolgen. |
RxReferenceVNetRoot (VNetRoot) |
Dieses Makro wird verwendet, um Verweisvorgänge auf V_NET_ROOT Strukturen nachzuverfolgen. |