Просмотр стека вызовов в WinDbg (классическая модель)
Стек вызовов — это цепочка вызовов функций, которые привели к текущему расположению счетчика программы. Верхняя функция в стеке вызовов — это текущая функция, следующая функция — это функция, которая вызвала текущую функцию и т. д. Отображаемый стек вызовов основан на текущем счетчике программы, если не изменить контекст регистрации. Дополнительные сведения об изменении контекста регистра см. в разделе Изменение контекстов.
В WinDbg можно просмотреть стек вызовов, введя команды или используя окно Вызовы.
Окно командной строки отладчика
Вы можете просмотреть стек вызовов, введя одну из команд k (Backtrace display Stack Backtrace) в окне Команда отладчика.
Окно "Вызовы"
В качестве альтернативы команде k можно просмотреть стек вызовов в окне Вызовы. Чтобы открыть окно Вызовы, выберите стек вызовов в меню Вид .
На следующем снимке экрана показан пример окна "Вызовы".
Кнопки в окне Вызовы позволяют настроить представление стека вызовов. Чтобы перейти к соответствующему расположению вызова в окне Источник или Дизассемблированное окно, дважды щелкните строку стека вызовов или выберите строку и нажмите клавишу ВВОД. Это действие также изменяет локальный контекст на выбранный кадр стека. Дополнительные сведения о выполнении до или с этого момента см. в разделе Управление целевым объектом.
В пользовательском режиме трассировка стека основана на стеке текущего потока. Дополнительные сведения о стеке текущего потока см. в разделе Управление процессами и потоками.
В режиме ядра трассировка стека основана на текущем контексте регистра. Контекст регистра можно задать в соответствии с конкретным потоком, записью контекста или кадром ловушки. Дополнительные сведения о настройке контекста регистрации см. в разделе Register Context.
В окне Вызовы есть панель инструментов, содержащая несколько кнопок, и контекстное меню с дополнительными командами. Чтобы открыть это меню, выберите и удерживайте (или щелкните правой кнопкой мыши) строку заголовка или щелкните значок в правом верхнем углу окна (
Необработанные аргументы отображают первые три параметра, которые передаются в функцию. На процессоре на базе x86 этот дисплей включает первые три параметра, которые передаются в функцию ("Args to Child").
Сведения о фанке отображают данные об упущении указателя кадра (FPO) и другую внутреннюю информацию о функции. Эта команда доступна только на процессоре x86.
Источник отображает имена исходных модулей и номера строк после имен функций (если эти сведения есть у отладчика).
В надстройках отображаются различные адреса, связанные с кадрами. На процессоре на базе x86 этот дисплей включает базовый указатель для кадра стека ("ChildEBP") и обратный адрес ("RetAddr").
Число кадров отображает номера кадров. Кадры всегда нумеруются последовательно, начиная с нуля.
Типы Arg отображают подробные сведения о аргументах, ожидаемых и полученных функциями в стеке.
Всегда плавающий режим приводит к тому, что окно остается отстыкованным, даже если оно перетаскивается в место закрепления.
Перемещение с помощью фрейма приводит к перемещению окна при перемещении кадра WinDbg, даже если окно отстыковывается.
Дополнительные сведения
Дополнительные сведения о контексте регистра и локальном контексте см. в разделе Изменение контекстов.