Отладка перемещения по времени — запись трассировки
В этом разделе описывается, как записывать трассировки отладки по времени (TTD). Существует два способа записи трассировки в WinDbg, запуска исполняемого файла (дополнительно) и присоединения к процессу.
Запуск исполняемого файла (дополнительно)
Чтобы запустить исполняемый файл и записать трассировку TTD, выполните следующие действия.
В WinDbg выберите "Запуск запуска>файла" для запуска исполняемого файла>(дополнительно).
Введите путь к исполняемому файлу в пользовательском режиме, который вы хотите записать, или нажмите кнопку "Обзор ", чтобы перейти к исполняемому файлу. Сведения о работе с меню "Запуск исполняемого файла" в WinDbg см. в статье "Запуск сеанса в режиме пользователя".
Установите флажок "Запись с отладчиком по времени", чтобы записать трассировку при запуске исполняемого файла.
Если выбрать "Настроить" и "Запись ", вы сможете настроить расположение для файла трассировки.
Чтобы ограничить запись определенными модулями, проверка "Запись подмножества выполнения" и введите в именах модулей. Например, если требуется записать выполнение notepad.exe, в текстовом поле введите "notepad.exe". Если вы хотите записать выполнение notepad.exe и kernelbase.dll, в текстовом поле введите "notepad.exe,kernelbase.dll".
Нажмите кнопку "ОК ", чтобы запустить исполняемый файл и начать запись.
Откроется диалоговое окно записи, показывающее, что трассировка записывается.
Узнайте , как записать сведения о записи.
Присоединение к процессу
Чтобы подключиться к процессу и записать трассировку TTD, выполните следующие действия.
В WinDbg выберите "Начать отладку>файла>" в процессе.
Выберите процесс пользовательского режима, который требуется трассировать. Сведения о работе с подключением к меню процесса в WinDbg см. в статье WinDbg — запуск сеанса в пользовательском режиме.
Установите флажок "Процесс записи" с полем отладки "Путешествие по времени", чтобы создать трассировку при запуске исполняемого файла.
Нажмите кнопку "Присоединить ", чтобы начать запись.
Откроется диалоговое окно записи, показывающее, что трассировка записывается.
Узнайте , как записать сведения о записи.
Запись
Процесс записывается, поэтому здесь необходимо вызвать проблему, которую вы хотите отлаживать. Вы можете открыть проблемный файл или выбрать определенную кнопку в приложении, чтобы вызвать событие, интересующее вас.
При отображении диалогового окна записи можно:
- Остановка и отладка . При выборе этого остановится запись, создайте файл трассировки и откройте файл трассировки, чтобы начать отладку.
- Отмена . При выборе это приведет к остановке записи и созданию файла трассировки. Файл трассировки можно открыть позже.
После завершения записи закройте приложение или нажмите клавишу Stop и debug.
Примечание.
Как остановка, так и отладка , и отмена завершают связанный процесс.
После завершения записи приложения файл трассировки будет закрыт и записан на диск. Это так, если программа завершится сбоем.
При открытии файла трассировки отладчик автоматически индексует файл трассировки. Индексирование обеспечивает более точный и быстрый поиск значений памяти. Этот процесс индексирования займет больше времени для больших файлов трассировки.
... 00007ffc`61f789d4 c3 ret 0:000> !index Indexed 1/1 keyframes Successfully created the index in 96ms.
Примечание.
Ключевой кадр — это расположение трассировки, используемое для индексирования. Ключевые кадры создаются автоматически. Более крупные трассировки будут содержать дополнительные ключевые кадры. При индексировании трассировки отображается количество ключевых кадров.
На этом этапе вы находитесь в начале файла трассировки и готовы к перемещению вперед и назад во времени.
Совет
Использование точек останова — это распространенный подход для приостановки выполнения кода на каком-то событии, интересующем вас. Уникальное для TTD, вы можете задать точку останова и вернуться назад до тех пор, пока эта точка останова не будет достигнута после записи трассировки. Возможность проверить состояние процесса после того, как возникла проблема, чтобы определить оптимальное расположение точки останова, позволяет выполнять дополнительные рабочие процессы отладки. Пример использования точки останова в прошлом см. в разделе "Отладка путешествия по времени" — пример пошагового руководства по приложению.
Next Steps
Теперь, когда вы записали трассировку TTD, вы можете воспроизвести трассировку обратно или работать с файлом трассировки, например совместно с ним. Дополнительные сведения см. в этих разделах.
Отладка перемещения по времени — воспроизведение трассировки
Отладка перемещения по времени — работа с файлами трассировки
Отладка временных путешествий — устранение неполадок
Отладка перемещения по времени — пошаговое руководство по приложению