Diagnostica e debug
RDBSS offre numerose routine per scopi di diagnostica e debug. Queste routine rientrano in due categorie:
Routine di asserzione e debug
Routine di rilevamento di riferimenti e dereferenza
Queste routine includono gli elementi della tabella seguente.
Routine | Descrizione |
---|---|
Questa routine invia una stringa asserzione nelle build controllate di RDBSS a un debugger del kernel se è installato. Quando viene usato il file di inclusione rxAssert.h, le chiamate RtlAssert del kernel di Windows verranno ridefinite per chiamare anche questa routine RxAssert . Per le compilazioni al dettaglio, le chiamate a questa routine verificheranno bug. |
|
Questa routine genera un'eccezione gestita dal debugger del kernel se ne viene installata una; in caso contrario, viene gestito dal sistema di debug. |
|
Questa routine viene usata per tenere traccia di una richiesta di riferimento SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN strutture nelle compilazioni controllate. È possibile accedere a un log di queste richieste di riferimento tramite il sistema di registrazione e WMI. Questa routine non esegue l'operazione di dereferenza. Per le compilazioni al dettaglio, questa routine non fa nulla. |
|
Questa routine viene usata per tenere traccia di una richiesta di dereferenza SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN strutture nelle compilazioni controllate. È possibile accedere a un log di queste richieste di dereferenza dal sistema di registrazione e da WMI. Questa routine non esegue l'operazione di riferimento. Per le compilazioni al dettaglio, questa routine non fa nulla. |
Oltre alle routine elencate nella tabella precedente, viene definito un numero di macro che chiamano queste routine per il debug. Queste macro, elencate nella tabella seguente, forniscono un wrapper intorno alle routine RxReference o RxDereference usate per le operazioni di gestione della struttura di file in SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN strutture. Queste macro chiamano prima la routine RxpTrackReference corrispondente o RxpTrackDereference per registrare le informazioni di diagnostica prima di chiamare la routine RxReference o RxDeference corrispondente. È possibile accedere a un log delle richieste di riferimento e dereferenza dal sistema di registrazione RDBSS e WMI.
Macro | Descrizione |
---|---|
RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza nelle strutture FCB. Si noti che questa macro modifica il conteggio dei riferimenti e restituisce anche lo stato della chiamata di finalizzazione. |
RxDereferenceNetFcb (Fcb) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza nelle strutture FCB. Si noti che questa macro modifica il conteggio dei riferimenti e restituisce anche lo stato della chiamata di dereferenza finale. |
RxDereferenceNetFobx (Fobx,LockHoldingState) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza nelle strutture FOBX. |
RxDereferenceNetRoot (NetRoot, LockHoldingState) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza sulle strutture NET_ROOT. |
RxDereferenceSrvCall (SrvCall, LockHoldingState) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza sulle strutture SRV_CALL. |
RxDereferenceSrvOpen ( SrvOpen, LockHoldingState) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza sulle strutture SRV_OPEN. |
RxDereferenceVNetRoot ( VNetRoot, LockHoldingState) |
Questa macro viene usata per tenere traccia delle operazioni di dereferenza sulle strutture NET_ROOT. |
RxReferenceNetFcb (Fcb) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture FCB. |
RxReferenceNetFobx (Fobx) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture FOBX. |
RxReferenceNetRoot (NetRoot) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture di NET_ROOT. |
RxReferenceSrvCall (SrvCall) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture SRV_CALL che non sono a livello DPC. |
RxReferenceSrvCallAtDpc (SrvCall) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture SRV_CALL a livello DPC. |
RxReferenceSrvOpen (SrvOpen) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture SRV_OPEN. |
RxReferenceVNetRoot (VNetRoot) |
Questa macro viene usata per tenere traccia delle operazioni di riferimento sulle strutture V_NET_ROOT. |