Иконка ресурса

Отладчик WinDbg 1.2502.25002.0

  • Автор Автор akok
  • Дата создания Дата создания
IntelliSense в командном окне
При вводе команды автодополнение будет автоматически отображаться, если первый символ — это точка (.), восклицательный знак (!) или доллар ($). Также подсказки можно вызвать сочетанием клавиш Ctrl + Пробел.


Отладка с использованием моментальных снимков (Snapshot debugging)
Во время локальной отладки работающих процессов отладчик может делать "снимки" состояния процесса и переключаться между снимками и живым процессом с помощью иконок на вкладке "Extensions". Также можно подключиться к моментальному снимку процесса без его приостановки, используя строку протокола snapshot:pid=<pid процесса в hex> в окне "Подключиться к удалённому отладчику".


Новые API модели данных
  • Debugger.Utility.Symbols.GetTypeInformation
    Возвращает информацию о типе переданного объекта. Поддерживается необязательный аргумент для автоматического разыменования указателей (на один уровень), если нужно получить тип объекта, на который указывает указатель или ссылка.
  • Debugger.Utility.Control.CreateStepFilter
    Создаёт новый фильтр пошагового выполнения. API находится в том же пространстве имён, что и функции создания точек останова.
  • Debugger.State.StepFilters
    Возвращает список фильтров пошагового выполнения с такими свойствами, как Id, Description, Type, Pattern и IsEnabled. У каждого фильтра есть метод .Remove().

Улучшенная отладка CLR без clrcomposition.dll
Теперь redistributable-компонент dbgeng.dll поддерживает трассировку стека CLR-кадров без необходимости наличия clrcomposition.dll.


Прочие улучшения
  • Улучшена поддержка отладки ядра Linux (особенно для ядер версии 6.11 и выше)
  • Поддержка ZSTD-сжатых KDUMP-страниц

Исправления ошибок
  • Обновлён SOS до версии 9.0.557512
  • Исправлена проблема производительности при проверке отозванных подписей при загрузке msdia140.dll
  • Исправлен сбой при чтении контекста XSTATE
  • Исправлена подсветка отключённых точек останова в окне дизассемблирования, теперь они отличаются от включённых
  • Исправлен сбой при закрытии плавающего окна инструмента
  • Исправлена проблема, из-за которой окно Timelines не отображало текущую позицию при открытии недавнего трассирования
  • Исправлена проблема, из-за которой окна Disassembly и Memory не обновлялись после ввода нового значения
  • Исправлена цветовая схема заголовка окон в тёмной теме
  • Улучшено отображение отложенных точек останова в окне Breakpoints — теперь Location не показывает 0x0, а отображает исходное выражение. Также добавлен особый значок, указывающий, что точка не привязана
  • Исправлена проблема в окнах Locals/Watch — правый клик по элементу вызывал прокрутку вверх
  • Исправлены ошибки в natvis (см. оригинальный отчёт об ошибке)
  • Устранён спам отладчика kd с сообщением Error getting port connector information (см. оригинальный отчёт об ошибке)
  • Исправлена проблема с условными точками останова, срабатывавшими от сборщика мусора даже при ложном условии
  • Теперь можно просматривать регистры YMM и ZMM при отладке трассировки TTD

Улучшения доступности
  • Улучшена навигация по клавиатуре в окнах Locals, Watch и Breakpoints
  • Улучшена визуальная читаемость ленты и указанных окон
  • Улучшена поддержка экранных дикторов в этих окнах
  • При редактировании в окнах Locals, Watch и Breakpoints сохраняется предыдущий фокус, выделение и прокрутка (если возможно)
  • Улучшена общая поддержка масштабирования текста в Windows

Общие улучшения интерфейса


  • Добавлена команда переключения фокуса между вводом команды и выводом результата, аналогичная Toggle Mark Mode в командной строке. Сочетание клавиш — Ctrl + M
  • В окно Breakpoints добавлен пункт контекстного меню "Перейти к дизассемблированию"
  • В окно Disassembly добавлено контекстное меню с пунктами: "Выполнить до инструкции", "Установить указатель инструкции", "Перейти к исходному коду", "Переключить точку останова", "Включить/выключить точку останова"

Time Travel Debugging (TTD)
Обновлено до версии 1.11.481
См. [примечания к выпуску TTD] (TTD Release Notes).
  • Like
Реакции: Dragokas

1.2402.24001.0​

Новые возможности​

Отладка Live Linux​

Теперь вы можете выполнять прямую отладку процесса Linux. Дополнительные сведения см. в следующих статьях:

Отладка удаленного процесса Linux

Символы и источники Linux

Клиент WinDbg в обозримом будущем по-прежнему потребует Windows, так как WinDbg не работает в Linux.

Запись подмножества выполнения с помощью отладки времени перемещения​

Теперь можно указать список модулей для записи, чтобы сосредоточиться на TTD на модулях, которые вам нужны. Это может значительно снизить затраты на запись. Чтобы использовать это просто проверка "Запись подмножества выполнения" в диалоговом окне "Настройка и запись", а затем укажите модули, которые требуется записать. (см . известные проблемы ниже).

Для более точного управления можно точно записать программу с помощью нового API записи в процессе. Узнайте, как с помощью примера кода и документации.

Окно компактных регистров​

Новое окно регистрации выглядит так же, как выходные данные команды r . Обратите внимание, что редактирование из нового окна регистрации еще не поддерживается.

Новые параметры для e (ввод значений) в команды памяти​

Команды e (ввод значений) в память теперь поддерживают физические адреса так же, как d команды (отображаемая память). Обратите внимание, что эти параметры поддерживаются только в режиме ядра:

Развернуть таблицу
ВариантОписание
/pИспользует адреса физической памяти для отображения. Диапазон, указанный диапазоном, будет взят из физической памяти, а не виртуальной памяти.
/p[c]Аналогично тому, что /pкэшированная память будет считываться. Квадратные скобки вокруг c должны быть включены.
/p[uc]То же самое /p, что, за исключением того, что некэшированная память будет считываться. Квадратные скобки вокруг uc должны быть включены.
/p[wc]Так же, как /pи в случае с памятью, объединенной записью, будет считываться. Квадратные скобки вокруг wc должны быть включены.
Дополнительные сведения см. в разделе e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (ВВОД значений).

Исправления ошибок​

  • Поддержка дедемангинга имени Rust в отладке Linux
  • Улучшения отладки СРЕДЫ CLR
    • Добавление возможности принудительной принудительной передачи кадров среды CLR в смешанном режиме
      • Добавлен параметр ForceMixedModeStackWalker , добавленный config.xml или DbgX.xml.
      • Добавлена !forceclrmixedmodeunwind команда для одноуровневых расследований или если вы не можете изменить параметр конфигурации.
  • Общие улучшения отладки СРЕДЫ CLR в Linux
  • Устранение ряда проблем, связанных с LinuxKernel.js и переменными на ЦП
    • Добавлена !runq команда для LinuxKernel.js, чтобы иметь возможность дампа очередей запуска планировщика ядра на ЦП (аналогичной команде служебной программы аварийного runq завершения Linux).
    • Исправлены различные команды в LinuxKernel.js для соответствия изменениям ядра: в более поздних ядрах дерево таймера использует кэшированные узлы RB вместо необработанных узлов RB; в более поздних ядрах список all_bdevs исчез, поэтому блоковые устройства теперь переходят из суперблока (blockdev_superblock)
  • Различные исправления natvis для работы более поздних версий Visual Studio
  • Предпочитать sourcelink и устаревшую sourceinfo
    • Добавлена !lmsourcesinfo <module> команда для отображения потоков исходной связи из PDB (чтобы помочь в отладке проблем с sourcelink).
Назад
Сверху Снизу