Diagnostics et débogage
RDBSS fournit un certain nombre de routines à des fins de diagnostic et de débogage. Ces routines se répartissent en deux catégories :
Assertion et débogage des routines
Routines de suivi des références et des déréférencements
Ces routines incluent les éléments du tableau suivant.
Routine | Description |
---|---|
Cette routine envoie une chaîne d’assertion dans les builds vérifiées de RDBSS à un débogueur de noyau, le cas échéant. Lorsque le fichier include rxAssert.h est utilisé, les appels RtlAssert du noyau Windows sont redéfinis pour appeler cette routine RxAssert également. Pour les builds de vente au détail, les appels à cette routine entraînent un bogue case activée. |
|
Cette routine déclenche une exception qui est gérée par le débogueur du noyau s’il est installé ; sinon, il est géré par le système de débogage. |
|
Cette routine est utilisée pour suivre une demande de référence SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB et SRV_OPEN structures dans les builds vérifiées. Un journal de ces demandes de référence est accessible par le système de journalisation et WMI. Cette routine n’effectue pas l’opération de déréférencement. Pour les builds de vente au détail, cette routine ne fait rien. |
|
Cette routine est utilisée pour suivre une demande de déréférencement des structures SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB et SRV_OPEN dans les builds vérifiées. Un journal de ces demandes de déréférencement est accessible par le système de journalisation et WMI. Cette routine n’effectue pas l’opération de référence. Pour les builds de vente au détail, cette routine ne fait rien. |
En plus des routines répertoriées dans le tableau précédent, un certain nombre de macros qui appellent ces routines sont définies pour le débogage. Ces macros, répertoriées dans le tableau suivant, fournissent un wrapper autour des routines RxReference ou RxDereference utilisées pour les opérations de gestion de structure de fichiers sur les structures SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB et SRV_OPEN. Ces macros appellent d’abord la routine RxpTrackReference ou RxpTrackDereference correspondante pour journaliser les informations de diagnostic avant d’appeler la routine RxReference ou RxDeference correspondante. Un journal des demandes de référence et de déréférencement est accessible par le système de journalisation RDBSS et WMI.
Macro | Description |
---|---|
RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FCB. Notez que cette macro manipule le nombre de références et retourne également la status de l’appel de finalisation. |
RxDereferenceNetFcb (Fcb) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FCB. Notez que cette macro manipule le nombre de références et retourne également le status de l’appel de déréférence final. |
RxDereferenceNetFobx (Fobx,LockHoldingState) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FOBX. |
RxDereferenceNetRoot (NetRoot, LockHoldingState) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur NET_ROOT structures. |
RxDereferenceSrvCall (SrvCall, LockHoldingState) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur SRV_CALL structures. |
RxDereferenceSrvOpen ( SrvOpen, LockHoldingState) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur SRV_OPEN structures. |
RxDereferenceVNetRoot ( VNetRoot, LockHoldingState) |
Cette macro est utilisée pour suivre les opérations de déréférencement sur NET_ROOT structures. |
RxReferenceNetFcb (Fcb) |
Cette macro est utilisée pour suivre les opérations de référence sur les structures FCB. |
RxReferenceNetFobx (Fobx) |
Cette macro est utilisée pour suivre les opérations de référence sur les structures FOBX. |
RxReferenceNetRoot (NetRoot) |
Cette macro est utilisée pour suivre les opérations de référence sur NET_ROOT structures. |
RxReferenceSrvCall (SrvCall) |
Cette macro est utilisée pour suivre les opérations de référence sur SRV_CALL structures qui ne sont pas au niveau DPC. |
RxReferenceSrvCallAtDpc (SrvCall) |
Cette macro est utilisée pour suivre les opérations de référence sur SRV_CALL structures au niveau DPC. |
RxReferenceSrvOpen (SrvOpen) |
Cette macro est utilisée pour suivre les opérations de référence sur SRV_OPEN structures. |
RxReferenceVNetRoot (VNetRoot) |
Cette macro est utilisée pour suivre les opérations de référence sur V_NET_ROOT structures. |