Diagnóstico e depuração

O RDBSS fornece várias rotinas para fins de diagnóstico e depuração. Essas rotinas se enquadram em duas categorias:

  • Declarar e depurar rotinas

  • Rotinas de acompanhamento de referência e desreferência

Essas rotinas incluem os itens na tabela a seguir.

Rotina Descrição

RxAssert

Essa rotina envia uma cadeia de caracteres de declaração em builds verificados do RDBSS para um depurador de kernel se um estiver instalado. Quando o arquivo de inclusão rxAssert.h for usado, as chamadas rtlAssert do kernel do Windows serão redefinidas para chamar essa rotina RxAssert também.

Para builds de varejo, as chamadas para essa rotina afetarão marcar.

RxDbgBreakPoint

Essa rotina gera uma exceção que é manipulada pelo depurador de kernel se um estiver instalado; caso contrário, ele é manipulado pelo sistema de depuração.

RxpTrackDereference

Essa rotina é usada para rastrear uma solicitação para fazer referência a estruturas SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN em builds verificados. Um log dessas solicitações de referência pode ser acessado pelo sistema de registro em log e pelo WMI. Essa rotina não executa a operação de desreferência.

Para builds de varejo, essa rotina não faz nada.

RxpTrackReference

Essa rotina é usada para acompanhar uma solicitação para desreferenciar estruturas de SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN em builds verificados. Um log dessas solicitações de desreferência pode ser acessado pelo sistema de registro em log e pelo WMI. Essa rotina não executa a operação de referência.

Para builds de varejo, essa rotina não faz nada.

Além das rotinas listadas na tabela anterior, várias macros que chamam essas rotinas são definidas para depuração. Essas macros, listadas na tabela a seguir, fornecem um wrapper em torno das rotinas RxReference ou RxDereference usadas para operações de gerenciamento de estrutura de arquivos em estruturas SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB e SRV_OPEN estruturas. Essas macros primeiro chamam a rotina de RxpTrackReference ou RxpTrackDereference correspondentes para registrar informações de diagnóstico antes de chamar a rotina RxReference ou RxDeference correspondente. Um log das solicitações de referência e desreferência pode ser acessado pelo sistema de log RDBSS e pelo WMI.

Macro Descrição

RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize)

Essa macro é usada para acompanhar operações de desreferência em estruturas FCB.

Observe que essa macro manipula a contagem de referência e também retorna o status da chamada de finalização.

RxDereferenceNetFcb (Fcb)

Essa macro é usada para acompanhar operações de desreferência em estruturas FCB.

Observe que essa macro manipula a contagem de referência e também retorna o status da chamada de desreferência final.

RxDereferenceNetFobx (Fobx,LockHoldingState)

Essa macro é usada para acompanhar operações de desreferência em estruturas FOBX.

RxDereferenceNetRoot (NetRoot, LockHoldingState)

Essa macro é usada para acompanhar operações de desreferência em estruturas de NET_ROOT.

RxDereferenceSrvCall (SrvCall, LockHoldingState)

Essa macro é usada para acompanhar operações de desreferência em estruturas de SRV_CALL.

RxDereferenceSrvOpen ( SrvOpen, LockHoldingState)

Essa macro é usada para acompanhar operações de desreferência em estruturas de SRV_OPEN.

RxDereferenceVNetRoot ( VNetRoot, LockHoldingState)

Essa macro é usada para acompanhar operações de desreferência em estruturas de NET_ROOT.

RxReferenceNetFcb (Fcb)

Essa macro é usada para acompanhar operações de referência em estruturas FCB.

RxReferenceNetFobx (Fobx)

Essa macro é usada para acompanhar operações de referência em estruturas FOBX.

RxReferenceNetRoot (NetRoot)

Essa macro é usada para acompanhar operações de referência em estruturas de NET_ROOT.

RxReferenceSrvCall (SrvCall)

Essa macro é usada para acompanhar operações de referência em estruturas de SRV_CALL que não estão no nível DPC.

RxReferenceSrvCallAtDpc (SrvCall)

Essa macro é usada para acompanhar operações de referência em estruturas de SRV_CALL no nível DPC.

RxReferenceSrvOpen (SrvOpen)

Essa macro é usada para acompanhar operações de referência em estruturas de SRV_OPEN.

RxReferenceVNetRoot (VNetRoot)

Essa macro é usada para acompanhar operações de referência em estruturas de V_NET_ROOT.