다음을 통해 공유


진단 및 디버깅

RDBSS는 진단 및 디버깅을 위해 다양한 루틴을 제공합니다. 이러한 루틴은 다음 두 가지 범주로 분류됩니다.

  • 어설션 및 디버그 루틴

  • 참조 및 역참조 추적 루틴

이러한 루틴에는 다음 표의 항목이 포함됩니다.

루틴에서 반환된 값 Description

RxAssert

이 루틴은 RDBSS의 확인된 빌드에서 어설션 문자열을 커널 디버거(설치된 경우)로 보냅니다. rxAssert.h 포함 파일을 사용하면 Windows 커널 RtlAssert 호출도 이 RxAssert 루틴을 호출하도록 다시 정의됩니다.

소매 빌드의 경우 이 루틴에 대한 호출은 버그 검사.

RxDbgBreakPoint

이 루틴은 커널 디버거가 설치된 경우 처리되는 예외를 발생합니다. 그렇지 않으면 디버그 시스템에서 처리됩니다.

RxpTrackDereference

이 루틴은 확인된 빌드에서 SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB 및 SRV_OPEN 구조를 참조하는 요청을 추적하는 데 사용됩니다. 이러한 참조 요청의 로그는 로깅 시스템 및 WMI에서 액세스할 수 있습니다. 이 루틴은 역참조 작업을 수행하지 않습니다.

소매 빌드의 경우 이 루틴은 아무 것도 수행하지 않습니다.

RxpTrackReference

이 루틴은 확인된 빌드에서 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 루틴에 대한 래퍼를 제공합니다. 이러한 매크로는 먼저 해당 RxReference 또는 RxDeference 루틴을 호출하기 전에 해당 RxpTrackReference 또는 RxpTrackDereference 루틴을 호출하여 진단 정보를 기록합니다. 참조 및 역참조 요청의 로그는 RDBSS 로깅 시스템 및 WMI에서 액세스할 수 있습니다.

매크로 Description

RxDereferenceAndFinalizeNetFcb (Fcb, RxContext, RecursiveFinalize, ForceFinalize)

이 매크로는 FCB 구조체에 대한 역참조 작업을 추적하는 데 사용됩니다.

이 매크로는 참조 수를 조작하고 finalize 호출의 상태 반환합니다.

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 구조체에 대한 참조 작업을 추적하는 데 사용됩니다.