診断とデバッグ
RDBSS には、診断とデバッグを目的としたさまざまなルーチンが用意されています。 これらのルーチンは、次の 2 つのカテゴリに分類されます。
アサートおよびデバッグのルーチン
参照および逆参照追跡ルーチン
これらのルーチンには、次の表の項目が含まれます。
ルーチンによって返される値 | 説明 |
---|---|
このルーチンは、RDBSS のチェック済みビルド内のアサート文字列をカーネル デバッガーに送信します (インストールされている場合)。 rxAssert.h インクルード ファイルが使用されると、Windows カーネル RtlAssert 呼び出しは、この RxAssert ルーチンも呼び出すように再定義されます。 製品版ビルドの場合、このルーチンの呼び出しによってバグ チェックが行われます。 |
|
このルーチンによって例外が発生します。カーネル デバッガーがインストールされている場合はカーネル デバッガーによって処理され、インストールされていない場合はデバッグ システムによって処理されます。 |
|
このルーチンは、チェック済みビルドの SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、SRV_OPEN 構造体を参照する要求の追跡に使用されます。 これらの参照要求のログには、ログ システムと WMI からアクセスできます。 このルーチンは逆参照操作を実行しません。 製品版ビルドでは、このルーチンは何も行いません。 |
|
このルーチンは、チェック済みビルドの SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、SRV_OPEN 構造体を逆参照する要求の追跡に使用されます。 これらの逆参照要求のログには、ログ システムと WMI からアクセスできます。 このルーチンは参照操作を実行しません。 製品版ビルドでは、このルーチンは何も行いません。 |
前の表に示したルーチンの他に、これらのルーチンを呼び出す多くのマクロがデバッグ用に定義されています。 次の表に示すこれらのマクロによって、SRV_CALL、 NET_ROOT、V_NET_ROOT、FOBX、FCB、SRV_OPEN 構造体に対するファイル構造管理操作で使用される RxReference または RxDereference ルーチンのラッパーが提供されます。 これらのマクロは、まず対応する RxpTrackReference または RxpTrackDereference ルーチンを呼び出して診断情報をログに記録した後で、対応する RxReference または RxDeference ルーチンを呼び出します。 参照要求と逆参照要求のログには、RDBSS ログ システムと WMI からアクセスできます。
マクロ | 説明 |
---|---|
RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize) |
このマクロは、FCB 構造体の逆参照操作を追跡するために使用されます。 このマクロが参照カウントを操作し、ファイナライズ呼び出しの状態も返すことに注意してください。 |
RxDereferenceNetFcb (Fcb) |
このマクロは、FCB 構造体の逆参照操作を追跡するために使用されます。 このマクロが参照カウントを操作し、最終逆参照呼び出しの状態も返すことに注意してください。 |
RxDereferenceNetFobx (Fobx,LockHoldingState) |
このマクロは、FOBX 構造体の逆参照操作を追跡するために使用されます。 |
RxDereferenceNetRoot (NetRoot, LockHoldingState) |
このマクロは、NET_ROOT 構造体の逆参照操作を追跡するために使用されます。 |
RxDereferenceSrvCall (SrvCall, LockHoldingState) |
このマクロは、SRV_CALL 構造体の逆参照操作を追跡するために使用されます。 |
RxDereferenceSrvOpen ( SrvOpen, LockHoldingState) |
このマクロは、SRV_OPEN 構造体の逆参照操作を追跡するために使用されます。 |
RxDereferenceVNetRoot ( VNetRoot, LockHoldingState) |
このマクロは、NET_ROOT 構造体の逆参照操作を追跡するために使用されます。 |
RxReferenceNetFcb (Fcb) |
このマクロは、FCB 構造体の参照操作を追跡するために使用されます。 |
RxReferenceNetFobx (Fobx) |
このマクロは、FOBX 構造体の参照操作を追跡するために使用されます。 |
RxReferenceNetRoot (NetRoot) |
このマクロは、NET_ROOT 構造体の参照操作を追跡するために使用されます。 |
RxReferenceSrvCall (SrvCall) |
このマクロは、DPC レベルにない SRV_CALL 構造体の参照操作を追跡するために使用されます。 |
RxReferenceSrvCallAtDpc (SrvCall) |
このマクロは、DPC レベルの SRV_CALL 構造体の参照操作を追跡するために使用されます。 |
RxReferenceSrvOpen (SrvOpen) |
このマクロは、SRV_OPEN 構造体の参照操作を追跡するために使用されます。 |
RxReferenceVNetRoot (VNetRoot) |
このマクロは、V_NET_ROOT 構造体の参照操作を追跡するために使用されます。 |