Основные сведения о области дерева трассировки
Панель "Дерево трассировки " находится в центре внимания средства просмотра дефектов. Как правило, выполняется пошаговое выполнение кода в области Дерево трассировки , а также его влияние на код в области Исходный код и на значения в области Состояние .
Панель "Дерево трассировки " организована в иерархическую структуру с рядом развертываемых и сворачиваемых узлов. Иерархия указывает элементы кода, которые вызвали выполнение других элементов. Этот формат позволяет интерпретировать каждую ветвь кода, а также легко отображать и скрывать разделы кода при пошаговом прохождении трассировки.
На следующем снимке экрана показан пример панели "Дерево трассировки ".
Каждому элементу кода в области Дерево трассировки предшествует номер строки в исходном файле. Эта нумеровка помогает найти элемент кода в окне "Дерево источника" и в исходном файле.
Некоторые строки кода в области Исходный код соответствуют нескольким элементам в области Дерево трассировки . Эта ситуация возникает, когда строка кода вызывает несколько действий. Например, если параметр вызова функции является параметром IRQL, строка кода, включающая вызов функции, может также включать вызов для поиска текущего IRQL, например:
IoReleaseCancelSpinLock(KeGetCurrentIrql());
В этом случае область Дерево трассировки будет включать критически важный элемент для вызова функции KeGetCurrentIrql , несколько вызовов модели операционной системы SDV для случайного создания IRQL, а затем вызов IoReleaseCancelSpinLock с возвращенным IRQL.