Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Новые возможности
Улучшения движка отладки
- Добавлена начальная поддержка масштабируемых векторных расширений ARM64 (SVE), что закладывает основу для отладки целевых систем ARM64, использующих регистры SVE.
- Добавлены кнопки «Открыть рабочую область» (Open Workspace) и «Сохранить рабочую область» (Save Workspace) для более удобного управления сессиями.
- Добавлен системный режим темы — WinDbg теперь следует настройкам светлой/темной темы Windows.
- Значительно улучшен текст справки для инструкций процессора в окне дизассемблера, что обеспечивает более качественную встроенную документацию.
- Повышена надежность обратного подключения по протоколу KDNET при неожиданной перезагрузке целевой системы.
- Инструмент настройки kdnet.exe теперь включен в состав WinDbg.
- В WinDbg добавлены параметры командной строки -Q и -WF.
Общие улучшения интерфейса
- Улучшена обработка состояния регистров (XSTATE) в различных конфигурациях целевых систем.
- Векторные регистры SIMD теперь могут отображаться в нескольких режимах (байт, слово, двойное слово, число с плавающей запятой и т. д.), что облегчает проверку упакованных данных в разных форматах.
- Длинные целые числа (Long integers) теперь выводятся с использованием системы счисления по умолчанию в модели данных.
- Добавлен API для ручного открытия символов композиции целевой системы.
- Повышена производительность поиска имен символов, особенно для DWARF и других плагинов поставщиков символов.
Отладка с возможностью перемещения во времени (TTD — Time Travel Debugging)
- Обновлен .NET SDK до версии 10.0.103 (обновление безопасности).
- Обновлены значки меню ленты в командном окне (Command Window) и добавлено больше действий.
- При вставке текста в поле ввода командного окна теперь удаляются пробелы на конце.
Исправления ошибок
- Обновлен TTD до версии 1.11.592.
- Повышена стабильность индексатора при индексации больших трассировок (от десятков до сотен гигабайт). Это потребовало изменения формата индекса, поэтому существующие трассировки потребуется проиндексировать заново.
- Функция @$cursession.TTD.Calls() теперь сообщает более точную информацию о параметрах для 32-битных заглушек ассемблера (assembly stubs).
- Исправлена проблема, из-за которой код завершения точки входа исполняемого файла не возвращался корректно записанным процессом.
- Исправлено неверное отображение флага четности x64 (Parity Flag) в окне регистров.
- Исправлена проблема, при которой встроенный путь к PDB-файлу в каталоге отладки не проверялся, если в пути поиска сначала обнаруживался несовпадающий PDB-файл.
- Исправлено зависание при обходе стека CLR, когда механизм обхода стека DBI зацикливался.
- Исправлен сбой (краш) из-за нулевого указателя (null pointer), возвращаемого функцией GetSymbolById в композиции CLR.
- Исправлена ошибка, из-за которой строка ввода командного окна не появлялась, если окно открывалось на поздних этапах сессии.
- Исправлены ошибки ввода и истории в командном окне.
- Исправлена проблема, при которой подсказки об ошибках скриптов не появлялись в редакторе скриптов (Script Editor).
- Исправлен сбой программы при операциях закрепления (докинга) окон инструментов.
- Исправлена проблема, из-за которой некоторые операции чтения реестра не отражали последние значения.
- Исправлена проблема, из-за которой вводимый текст в командном окне «прыгал» при перемещении курсора.
- Исправлена проблема, из-за которой комбинация Alt+Space не вызывала системное меню для плавающих окон.
- Исправлена проблема, из-за которой при раскрытии элементов в окне локальных переменных (Locals) элемент скрывался из поля зрения при прокрутке.
Общие улучшения интерфейса
- Обновление до .NET 10
- Окно скриптов обновлено до последней версии редактора Monaco Editor (0.55.1)
- Добавлены кнопки Undo/Redo на вкладку Script
- Улучшена работа фокуса при навигации с клавиатуры между окнами инструментов
- Исправлены мелкие проблемы с прокруткой и выделением в окне Disassembly
- Исправлена ошибка, при которой окно регистров показывало значения, отличающиеся от команды register
- Исправлено несколько проблем с отображением на дисплеях с высоким DPI
- Добавлена проверка версии отладчика с предупреждением, если он "слишком старый"
- Исправлен сбой при выборе режима графа в окне Model, открытом для пустого запроса
- Реализованы crash-safe журналы для WinDbg
Улучшения движка отладки
- Повышена производительность поиска имён символов, которые отсутствуют (особенно для DWARF и других плагинов)
- Добавлена проверка на null в обработчиках OnTargetCompositionEvent
- Включено чтение маски pointer-tag
Time Travel Debugging (TTD)
- Версия TTD обновлена: 1.11.567 → 1.11.584
- Несколько улучшений производительности и надёжности индексации, включая ускорение до 5× для больших трасс (100+ ГБ)
- Исправлена проблема, о которой сообщали пользователи: доступ к TEB через сегментный регистр с использованием 32-битных адресов теперь работает (1.11.572)
- Более точные callstack-и вокруг системных вызовов (1.11.582)
Исправления ошибок
- Исправлены ошибки "type information not found", вызванные неправильной обработкой сложных расположений
- Исправлены проблемы завершения строк в консольном отладчике при перенаправленном вводе-выводе и не-Unicode символах
- Исправлена фильтрация событий CPR/EPR в Linux
- Исправлены отсутствующие метки функций в дизассемблере для Linux
- Исправлено разрешение импортируемых функций в Linux-бинарниках, скомпилированных с CET
- Исправлена проблема с неразрешёнными breakpoint-ами, из-за которых live-сессии отладки Linux становились неработоспособными после загрузки модуля
- Исправлена недоступность thread-local переменных в Linux при подключении через GDBServer
- Исправлен сбой overlay страниц ELF-образа, если сервис памяти цели не реализует информацию о памяти
- Исправлен сбой variadic-функций печати в отладчике из-за некорректного использования параметров формата
- Исправлена несогласованность обработки long, unsigned long и wchar_t на UNIX-подобных ОС (LLP64 vs LP64)
- Исправлен deadlock при ожидании потока очистки во время завершения работы отладчика.
Новые возможности
- Добавлен параметр отключения аппаратного ускорения графического оборудования для WinDbg.
- Добавлено новое .AlternateFunctions свойство <frame>.Attributes.SourceInformation.
Исправления ошибок
- Исправлена проблема, из-за которой страница запуска отладки не обновлялась после открытия диалогового окна.
- Исправлена проблема, из-за которой подключение к элементам меню вкладок устройства было недоступно для автоматизации пользовательского интерфейса.
- Исправлена проблема, из-за которой незафиксированные входные данные команды теряются при изучении журнала команд.
- Исправлена обработка колес мыши для правильной плавной прокрутки (мыши с гладкими колесами и трекпадами).
- Исправлено вводящая в заблуждение рекурсивное поведение пошагового перехода в 32-разрядной отладке x86 при вызове __SEH_prolog4прологов функций.
- Исправлена ошибка. Параметр AllowNugetExeUpdate для коллекций расширений на основе NuGet.
- Исправлена ошибка при чтении символов DWARFv5 вокруг .debug_names таблиц и индексов имен.
- Исправлено поведение шага для исходных строк с несколькими отфильтрованными шагами вызовов.
- Исправлен сбой, вызванный недопустимой строкой версии natvis.
- Исправлена передача CreateProcessW блокировки среды для удаленной отладки.
- Исправлены команды !percpu и !allpercpu для указателей ЦП динамически выделяется через alloc_percpu в ядре Linux.
- Исправлена проблема с нумерированием ЦП в сеансах отладки ядра Linux.
- Исправлено отсутствие меток функции дизассемблирования для целевых объектов символов, отличных от PDB.
- Исправлена обработка перемещения заполнителей в двоичных файлах ELF.
- Исправлена двойная свободная обработка карликовых символов DW_OP_fbreg.
- Исправлена регрессия в коде сбора дампа, предотвращающая полный сбор дампов памяти для эмулированных процессов x64-on-arm64.
Общие улучшения пользовательского интерфейса
- Улучшено, как WinDbg восстанавливает положение окна при изменении мониторов различных разрешений. WinDbg теперь сохраняет и восстанавливает прикрепленные позиции.
- Реализована горизонтальная прокрутка с помощью колесика мыши при удержании клавиши shift.
- Обновлен средство выбора папок, чтобы использовать современное диалоговое окно.
Новые возможности
WinDbg теперь поставляется с отладчиками в режиме консоли (cdb.exe/ ntsd64.exe / kd.exe)! Чтобы различать двоичные файлы друг от друга и не мешать существующим копиям инструментов, двоичные файлы включают имя архитектуры:
Дополнительные возможности:
- cdbARM64.exe / cdbX64.exe / cdbX86.exe
- kdARM64.exe / kdX64.exe / kdX86.exe
- ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe
- Заголовок окна инструментов модели данных можно настроить с помощью команды $OpenDmoToolwindow, а также изменить его с помощью контекстного меню заголовка.
- Новый параметр отладчика позволяет включить параллельное скачивание символов через HTTP. Этот параметр включен по умолчанию.
Исправления ошибок
- Исправлен способ сохранения целевого пути для файлов дампа, открытых с помощью командной строки (-z) для успешного открытия из меню "Последние".
- Исправлен сбой в окне редактора скриптов.
- Исправлено, как WinDbg обрабатывает несогласованные окончания строк в исходных файлах, открытых в окне источника, чтобы обеспечить более согласованное представление исходных файлов.
- Исправлена проблема, из-за которой учетные данные не обновлялись для серверов символов HTTP при использовании новой функции параллельного скачивания.
- Исправлена проблема, из-за которой свойства объектов модели данных не перечислялись должным образом в расширениях JavaScript.
- Исправлена проблема, из-за которой текст столбца исчез при переупорядочении с помощью щелчка и перетаскивания.
- Исправлена проблема, из-за которой настройка фильтрации событий с помощью параметров командной строки не применялась к целевому объекту отладки при запуске.
- Исправлена проблема, из-за которой иногда при откреплении окна инструментов появлялось пустое окно.
- Исправлена проблема, из-за которой не удалось выполнить отладку мини-модулей эмулированных процессов X64 на компьютерах ARM64.
- Исправлена проблема, из-за которой неоднозначные точки останова вызывали сбой в отладчике.
- Исправлена проблема, из-за которой GDBServer произошел сбой при завершении процесса при отладке динамического процесса Linux.
- Исправлено несколько проблем, связанных с отладкой расширений JavaScript (.scriptdebug), включая лучшее перечисление свойств и исправление проблемы с сбоем.
Общие улучшения пользовательского интерфейса
- Всплывающее окно предложения команды выравнивается с курсором и отображает только предлагаемые завершения, а не все перед курсором.
- Диалоговое окно запуска целевой ошибки отладки содержит дополнительные сведения, а для открытых сбоев дампа предоставляет гиперссылку на не удалось открыть TSG-файл дампа.
- Заголовки инструментальных окон имеют то же контекстное меню, что и закрепленная вкладка.
- Визуальные улучшения в окнах "Локальные", "Контрольные" и "Модели".
- Отладка временных путешествий (TTD) обновлена до версии 1.11.532. Дополнительные сведения см . в заметках о выпуске TTD.
IntelliSense в командном окне
При вводе команды автодополнение будет автоматически отображаться, если первый символ — это точка (.), восклицательный знак (!) или доллар ($). Также подсказки можно вызвать сочетанием клавиш Ctrl + Пробел.
Отладка с использованием моментальных снимков (Snapshot debugging)
Во время локальной отладки работающих процессов отладчик может делать "снимки" состояния процесса и переключаться между снимками и живым процессом с помощью иконок на вкладке "Extensions". Также можно подключиться к моментальному снимку процесса без его приостановки, используя строку протокола snapshotid=<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).
1.2402.24001.0
Новые возможности
Отладка Live Linux
Теперь вы можете выполнять прямую отладку процесса Linux. Дополнительные сведения см. в следующих статьях:
Отладка удаленного процесса Linux
Символы и источники Linux
Клиент WinDbg в обозримом будущем по-прежнему потребует Windows, так как WinDbg не работает в Linux.
Запись подмножества выполнения с помощью отладки времени перемещения
Теперь можно указать список модулей для записи, чтобы сосредоточиться на TTD на модулях, которые вам нужны. Это может значительно снизить затраты на запись. Чтобы использовать это просто проверка "Запись подмножества выполнения" в диалоговом окне "Настройка и запись", а затем укажите модули, которые требуется записать. (см . известные проблемы ниже).
Для более точного управления можно точно записать программу с помощью нового API записи в процессе. Узнайте, как с помощью примера кода и документации.
Окно компактных регистров
Новое окно регистрации выглядит так же, как выходные данные команды r . Обратите внимание, что редактирование из нового окна регистрации еще не поддерживается.
Новые параметры для e (ввод значений) в команды памяти
Команды e (ввод значений) в память теперь поддерживают физические адреса так же, как d команды (отображаемая память). Обратите внимание, что эти параметры поддерживаются только в режиме ядра:
Развернуть таблицу
Дополнительные сведения см. в разделе e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (ВВОД значений).
Вариант Описание /p Использует адреса физической памяти для отображения. Диапазон, указанный диапазоном, будет взят из физической памяти, а не виртуальной памяти. /p[c] Аналогично тому, что /pкэшированная память будет считываться. Квадратные скобки вокруг c должны быть включены. /p[uc] То же самое /p, что, за исключением того, что некэшированная память будет считываться. Квадратные скобки вокруг uc должны быть включены. /p[wc] Так же, как /pи в случае с памятью, объединенной записью, будет считываться. Квадратные скобки вокруг wc должны быть включены.
Исправления ошибок
- Поддержка дедемангинга имени 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).