Поделиться через


Диагностика и отладка

RDBSS предоставляет ряд подпрограмм для диагностики и отладки. Эти подпрограммы делятся на две категории:

  • Процедуры утверждения и отладки

  • Процедуры отслеживания ссылок и разыменования ссылок

Эти подпрограммы включают элементы, представленные в следующей таблице.

Рутина Описание

RxAssert

Эта подпрограмма отправляет строку утверждения в проверенных сборках RDBSS в отладчик ядра, если он установлен. Если используется файл rxAssert.h include, вызовы ядра 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. Эта подпрограмма не выполняет эталонную операцию.

Для розничных сборок эта подпрограмма ничего не делает.

Помимо подпрограмм, перечисленных в предыдущей таблице, для отладки определяются ряд макросов, вызывающих эти подпрограммы. Эти макросы, перечисленные в следующей таблице, предоставляют оболочку вокруг подпрограмм RxReference или RxDereference , используемых для операций управления структурами файлов в SRV_CALL, NET_ROOT, V_NET_ROOT, FOBX, FCB и SRV_OPEN структурах. Эти макросы сначала вызывают соответствующую подпрограмму 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)

Этот макрос предназначен для отслеживания операций с ссылками на структуры SRV_CALL, которые не находятся на уровне DPC.

RxReferenceSrvCallAtDpc (SrvCall)

Этот макрос используется для отслеживания ссылочных операций на SRV_CALL структурах на уровне DPC.

RxReferenceSrvOpen (SrvOpen)

Этот макрос используется для отслеживания ссылочных операций в структурах SRV_OPEN.

RxReferenceVNetRoot (VNetRoot)

Этот макрос используется для отслеживания ссылочных операций в структурах V_NET_ROOT.