Заметки о выпуске

Логотип WinDbg с увеличивающимся стеклом, проверяющим биты.

В этом разделе содержатся сведения о новых возможностях WinDbg. Более ранние версии были выпущены как Предварительная версия WinDbg.

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).

Известные проблемы

При указании списка модулей для записи с помощью TTD указание нескольких модулей не работает в этом выпуске.

1.2308.2002.0

Многие исправления ошибок и небольшие улучшения.

1.2306.12001.0

Многие исправления ошибок и небольшие улучшения.

1.2303.30001.0

Примечание.

Отладчик был переименован из WinDbg Preview в WinDbg.

Устаревший отладчик, выпущенный с помощью средств отладки для Windows, будет ссылаться как WinDbg (классическая версия).

Отладка временных путешествий в ARM64

Кроме того, WinDbg выполняется изначально в ARM64, мы также включили отладку времени (TTD) собственных процессов ARM64. Теперь вы можете записывать собственные процессы ARM64 (и процессы x86 и ARM32) и выполнять их отладку даже на компьютере x64. Поддержка процессов с поддержкой x64 или x64 (ARM64EC) на устройствах ARM64 пока недоступна.

Общая производительность TTD также была улучшена, при этом затраты на запись значительно сократились для процессов, использующих общие инструкции SIMD. В общей сложности были оптимизированы 65 новых инструкций, начиная от MMX до SSE 4.2, AVX и AVX2.

Неоднозначное разрешение точки останова

Неоднозначные точки останова позволяют отладчику задавать точки останова в определенных сценариях, когда выражение точки останова разрешается в несколько расположений. Дополнительные сведения см. в разделе "Неоднозначное разрешение точек останова".

1.2107.13001.0

Поиск WinDbg Preview теперь включает возможность поиска с помощью регулярных выражений — Regex. Включите regex в окне поиска, выполнив клавиши CTRL+F, а затем переключите кнопку, помеченную .* рядом с полем поиска.

Ограниченный режим

Режим ограниченного доступа — это необязательный параметр, который может ограничить тип сеансов отладки WinDbg Preview, может запускаться только к удаленным сеансам отладки и файлам дампа. Дополнительные сведения см. в статье WinDbg — ограниченный режим.

Поддержка теневой переменной

В предыдущих версиях WinDbg вызывает ошибки "Неоднозначный символ" при попытке оценить (?)) или отобразить переменную (dx), которая использует имя другой переменной в область. Windbg теперь будет диамбигуировать переменные, которые имеют то же имя, добавляя @n к имени переменной. Например: foo, foo@0@1

Это изменение также будет отражено в окне "Локальные". Ранее отображается только ближайшая переменная в область.

1.2104.13002.0

Удобная функция повышения производительности WinDbg Preview — это возможность обнаруживать шаблоны в командном окне. Для этого выделите любой текст и все остальные экземпляры этого текста. Так как это выделение полезно при просмотре шаблонов памяти, теперь оно также будет выделять эквивалентные числа в других радиксах, независимо от формата числа в шестнадцатеричном, десятичном или научном нотации. Дополнительные сведения о схемах нумерирования см. в разделе n (Set Number Base).

Пример:

При выборе 0x000001e2fb3f6160все остальные экземпляры выделяются независимо от формата.

Снимок экрана: командное окно WinDbg с выделенным несколькими форматами чисел.

Эта функция также работает с полувременного выделения. Ctrl+ Double Click on a number, чтобы выделить все его экземпляры. Вы можете отслеживать несколько важных чисел в журнале команд таким образом (чтобы очистить выделение, ctrl+ Double Click on the number again). Наконец, эта функция также работает при поиске чисел с помощью CTRL+F.

Расширенный доступ к исходному коду

Команда исходного пути .srcpath, Lsrcpath (Set Source Path) была обновлена, чтобы включить новый тег — DebugInfoD. Дополнительные сведения см. в статье "Расширенный доступ к исходному коду".

Состояния узлов и гостевых процессов WOW в модели данных

При отладке 32-разрядного процесса WOW из 64-разрядного контекста пользователи теперь могут получить доступ к состояниям узла и гостя в модели данных.

32-разрядные примеры состояния гостевого состояния:

dx @$curprocess.Environment

dx @$curthread.Environment

dx @$curthread.Stack

64-разрядные примеры состояния узла:

dx @$curprocess.NativeEnvironment

dx @$curthread.NativeEnvironment

dx @$curthread.NativeStack

Улучшения отладки Javascript

Javascript, загруженный в пользовательский интерфейс, теперь можно напрямую отладить в консоли с помощью команды scriptdebug. Дополнительные сведения см. в статье "Скрипты отладчика JavaScript" — отладка JavaScript.

Улучшения в специальных возможностях

С помощью Предварительной версии WinDbg мы стремимся создать отладчик, который является инклюзивным для инженеров с ограниченными возможностями, мы постоянно совершенствуем специальные возможности. Были сделаны следующие улучшения.

  • Ссылки на командное окно теперь можно щелкнуть с помощью клавиатуры (SHIFT+ВВОД)
  • Улучшенная навигация по клавиатуре главного меню
  • Улучшенная навигация по клавиатуре ленты
  • Повышенная контрастность элементов пользовательского интерфейса

Новый тип доступа к данным Overwrite для отладчика временных путешествий

Отладчик по времени (TTD) теперь предоставляет тип доступа к данным Overwrite. Запросы памяти, такие как dx @$cursession.TTD.Memory() теперь, имеют дополнительный столбец со старыми значениями записей.

Другие исправления, улучшения и обновления

  • Добавлена функция для автоматического обнаружения и применения обходного решения для аппаратного решения USB 3.1, когда узел отладки ядра и целевой объект являются контроллерами USB 3.1.
  • Добавлен новый ярлык пользовательского интерфейса: CTRL+SHIFT+ Щелкните ссылку DML, чтобы скопировать ее в буфер обмена

1.0.2007.01003

Закладки временной шкалы

Закладка важных позиций поездок по времени в WinDbg вместо ручного копирования позиции в блокнот. Закладки упрощают просмотр разных позиций трассировки относительно других событий и их анимацию.

Вы можете указать описательное имя для закладок.

Снимок экрана: диалоговое окно создания закладки с примером имени первого вызова API в приложении

Доступ к закладкам через окно временной шкалы, доступное в режиме просмотра > временной шкалы. При наведении указателя мыши на закладку будет отображаться имя закладки.

Снимок экрана: временная шкала WinDbg с тремя закладками и подсказкой, отображающей имя закладки.

Вы можете выбрать и сохранить закладку (или щелкнуть правой кнопкой мыши), чтобы перейти к этой позиции, переименовать или удалить закладку.

Снимок экрана: всплывающее меню закладки правой кнопкой мыши с параметрами перемещения по расположению, редактированию и удалению.

Окно модулей

В новых окнах отображаются модули и связанные с ними сведения, они доступны на ленте "Вид". В нем отображается следующее:

  • Имя модуля, включая расположение пути
  • Размер в байтах загруженного модуля
  • Базовый адрес, по которому загружается модуль
  • Версия файла

Снимок экрана: окно представления модулей WinDbg с пятью перечисленными модулями.

Имена и описания потоков, доступные в динамической отладке

Имена потоков, заданные из SetThreadDescription, теперь доступны при отладке в реальном режиме пользователя. Имена потоков доступны с помощью команды "~" или модели данных отладчика.

0:000> ~
   0  Id: 53a0.5ffc Suspend: 1 Teb: 000000b1`db1ed000 Unfrozen "Hello world!"
   7  Id: 53a0.9114 Suspend: 1 Teb: 000000b1`db1ef000 Unfrozen
   8  Id: 53a0.2cc4 Suspend: 1 Teb: 000000b1`db1f1000 Unfrozen
   9  Id: 53a0.5c40 Suspend: 1 Teb: 000000b1`db1f3000 Unfrozen

0:000> dx @$curthread
@$curthread                 : ConsoleTestApp!ILT+25(mainCRTStartup) (00007ff7`fac7101e)  [Switch To]
    Id               : 0x5ffc
    Name             : Hello world!
    Stack
    Registers
    Environment

Поддержка переносимого PDB

Добавлена поддержка переносимых PDB. В формате переносимой PDB (база данных программы) описывается кодировка отладчика информации, созданной компиляторами языков общей инфраструктуры языка (CLI) и используемыми отладчиками и другими средствами. Дополнительные сведения см. в статье "Переносимые символы PDB".

Другие изменения и исправления ошибок

  • WinDbg теперь поддерживает отладку дампа ядра AMD64 и Linux.
  • Улучшения записи времени и другие исправления.

1.0.1912.11001

Временная шкала TTD — мы добавили новое окно, отображающее визуальное представление важных событий в трассировке: исключения, точки останова, вызовы функций и доступ к памяти. Временные шкалы автоматически открываются и отображаются исключения (при наличии) и точек останова. Дополнительные сведения см. в разделе "Предварительная версия WinDbg — временная шкала".

Переключился на хром окна по умолчанию — пользовательский хром окна, который мы использовали, в то время как более красивый, вызывал некоторые проблемы масштабирования и изменения размера для заметного количества людей, поэтому мы решили удалить его на время.

Меню файлов улучшена навигация по клавиатуре. Меню файлов теперь гораздо проще перемещаться с помощью клавиатуры.

Другие изменения и исправления ошибок

  • Теперь окно стека и локальных параметров будет отключено при запуске целевого объекта и не будет отображаться сообщение "Не указанная ошибка", если целевой объект отсутствует.
  • Добавлен столбец "Службы" в диалоговое окно присоединения, чтобы легко найти, какие службы выполняются.
  • Исправлена ошибка, из-за которой обнаружение архитектуры не работало при запуске приложений с аргументами.
  • Окно дизассемблирования улучшило дизассембли при загрузке частных символов.
  • jsprovider.dll теперь загружается автоматически, поэтому мы удалили кнопку Load JSProvider на ленте скрипта.

1.0.1908.30002

Улучшения для объектов - вызовов TTD Теперь включают имена параметров, типы и значения. При запросе между трассировками для вызовов функций можно получить полностью типизированные параметры и их значения, что упрощает фильтрацию результатов по параметрам.

Поддержка Open Enclave — Предварительная версия WinDbg теперь может выполнять отладку приложений Open Enclave (OE) для получения дополнительных сведений, см. в разделе "Отладка Open Enclave".

Дампы ELF Core . В рамках поддержки Open Enclave WinDbg может открывать дампы ядра ELF и двоичные файлы, а также символы DWARF (КАРЛИК 5 в настоящее время не поддерживаются) как из анклавов, так и приложений Linux. При открытии основного дампа из приложения, отличного от Windows, базовые окна и команды должны работать правильно, но большинство расширений и команд, относящихся к Windows, не будут работать. ФАЙЛЫ ELF и DWARF будут загружены с серверов символов после ключевых соглашений, определенных здесь. Анклава являются единственным поддерживаемым сценарием, но мы открыты для отзывов о открытии других дампов ядра Linux.

Изменение формата файла TTD . Мы внесли основное обновление в формат файла для трассировок TTD, которые прерывают совместимость вперед. Предыдущие версии WinDbg Preview не смогут открывать трассировки, записанные с помощью этих (и будущих) версий WinDbg Preview, но эти (и будущие) версии смогут открывать как новые, так и старые трассировки.

Другие изменения

  • Теперь TTD будет использовать 64-разрядный модуль для индексирования и соответствующей биты обработчика отладчика для воспроизведения, чтобы свести к минимуму потенциальные проблемы с памятью при индексировании и проблемах SOS при повторе.
  • При запуске "dx" без параметров теперь отображается корневое пространство имен для упрощения просмотра.
  • Теперь можно изменить расположение символа по умолчанию и исходного кэша с помощью меню параметров.
  • Улучшенная поддержка записи AVX-512 (запись AVX-512 приведет к большему, чем обычное замедление).
  • Мы включили автономное лицензирование.

1.0.1905.12001

Улучшения устранения ошибок SymSetDiaSession . Исправление в прошлом месяце, чтобы устранить ошибку, вызванную приложениями, внедряющими DbgHelp в наш процесс, по-прежнему не работает в некоторых сценариях. Мы улучшили эту ошибку и продолжаем отслеживать отзывы об этой ошибке.

Настройка цвета акцента — для многих сценариев требуется несколько экземпляров OpenDbg, а перемещение между ними может быть запутанным и занять некоторое время, чтобы выяснить, какой из них является "правильным". Мы добавили возможность изменить цвет синего акцента, чтобы помочь визуально различать сеансы и сделать переключение между ними проще.

Просто выберите ленту "Вид" и выберите параметр цвета акцента в последнем разделе. При запуске будущих сеансов из последних целевых объектов цвет акцента будет сохранен в рамках рабочей области целевого объекта.

Улучшения исходной маркеризации. Теперь в окне источника есть базовая поддержка маркеризации исходных файлов Rust и C++ SEH __try/__except/__finally/__leave.

Улучшения корутин — улучшена поддержка локальных переменных соутина и некоторых оптимизированных переменных.

Параметр символа и кэша источника по умолчанию— добавлен параметр в меню параметров отладки, чтобы изменить расположение кэша для символов. Примечание. Существует известная проблема, из-за которую это пустое приведет к сбою загрузки источника. Мы добавим проверку, чтобы предотвратить это в будущем выпуске.

-pv исправления — исправлена ошибка, которая может препятствовать -pv (неинвазивное подключение) работать в некоторых обстоятельствах.

1.0.1904.18001

Исправление ошибки SymSetDiaSession. У нас были отчеты за некоторое время ошибки, которая предотвращает запуск WinDbg Preview в некоторых ситуациях. Существует несколько внешних приложений, которые пытаются внедрить версию DbgHelp в наш процесс перед загрузкой. Некоторые из них используют версию DbgHelp с отсутствующими функциями, что приводит к этой ошибке при попытке использовать эти функции. Мы добавили исправление для этого и будет отслеживаться, если существуют все еще сценарии, в которых она происходит.

Элемент управления шрифтом — мы добавили параметры для управления размером шрифта и шрифта. Существует два разных параметра, один для текстовых окон (монопространствовые окна, такие как дизассембли, источник, команда и т. д.) и один для окон инструментов (локальные, стек и т. д.). Есть еще несколько областей, которые не влияют на эти варианты, которые мы будем обновлять в будущем.

Улучшение выделения. Постоянное выделение текста в командном окне теперь также будет выделять текст в окнах источника и заметок.

Улучшения загрузки источника. Мы изменили способ загрузки исходных файлов. Ранее при открытии исходного файла операции обработчика, такие как выполнение дополнительных команд, не были возможными или непредсказуемы. Мы изменили место загрузки, чтобы повысить параллелизм и более надежную отмену операций открытия источника.

Другие изменения и исправления ошибок:

  • Добавлено значение "Перейти к дизассембли" в контекстное меню исходного окна.
  • Добавлено поле проверка box в поле "Следовать текущей инструкции" в окне дизассемблирования.
  • Исправлена ошибка, из-за которой окно командной строки выполнялось медленно при выводе большого количества текста.
  • Изменены ключи вверх и вниз страницы, чтобы выполнить аналогичные действия Visual Studio.
  • При открытии ФАЙЛА ASM в исходном окне теперь будет выделен базовый комментарий, строка и выделение директив

1.0.1812.12001

Эта версия включает эти обновления.

Заголовок модели данных C++ отладчика . Существует новый заголовок C++ DbgModel.h, включенный в состав пакета SDK для Windows для расширения модели данных отладчика с помощью C++. Дополнительные сведения см. в обзоре модели данных C++ отладчика. В этом выпуске содержится новое расширение, которое добавляет дополнительные функции стиля API в модель данных отладчика, доступ к которой можно получить с помощью команды DX, JavaScript и нового заголовка DbgModel.h. Это расширение позволяет модели данных включать в себя знания о выполнении сборки и кода через пространство имен Debugger.Utility.Code и локальную файловую систему через пространство имен Debugger.Utility.FileSystem.

Расширение искусственных типов с помощью этого нового расширения API у нас есть новый пример на нашем репозитории GitHub здесь - https://github.com/Microsoft/WinDbg-Samples/tree/master/SyntheticTypes. Это расширение JavaScript считывает базовые файлы заголовков C и определяет сведения о искусственном типе для структур и союзов, определенных в заголовке. С помощью команды DX память можно просмотреть структурированным образом, как если бы у вас была PDB с сведениями о типе для этих типов.

Другие изменения и исправления ошибок:

  • Предварительная версия WinDbg теперь будет более интеллектуально обрабатывать исходные окна или дизассемблированное окно на переднем плане при пошаговом выполнении.
  • Повторно упорядоченное заголовок окна WinDbg Preview, чтобы иметь более важную информацию при отладке ядра.
  • Контрастность фона в командном окне должна быть немного заметной.

1.0.1810.2001

Эта версия включает эти обновления.

  • Новое диалоговое окно Параметры, доступ к которому осуществляется из меню "Файл" или ленты "Главная".
  • Диалоговое окно параметров событий и исключений. Это меню изменяет способ обработки событий и исключений отладчика, эквивалента команд sx или диалоговых фильтров событий WinDbg. Выберите Параметры на домашней ленте, а затем нажмите кнопку "События и исключения" слева, чтобы управлять ими.
  • Улучшен индексатор TTD с более высокой производительностью. Это повышает производительность индексирования файлов трассировки TTD, что делает процесс индексирования гораздо быстрее (от 2x до 10x) при увеличении размера файлов индексов (~50 % меньше). Улучшения perf наиболее заметны для трассировки более 4 ГБ размера или при использовании компьютера со многими ядрами ЦП (8+). Новый индексатор делает его более возможным для отладки очень больших трассировок (50 ГБ+).
  • Новый флаг запуска debugArch для указания архитектуры. Предварительная версия WinDbg пытается запустить подсистему отладчика с правильной битностью в целевой объект, чтобы лучше поддерживать отладку управляемого кода. Существуют обстоятельства, когда он не может определить правильную биту или вы можете переопределить то, что он решает. Используйте -debugArch x86|amd64 для управления архитектурой обработчика отладчика.

Другие изменения и исправления ошибок:

  • Исправлена ошибка, из-за которой черные полосы отображались на полноэкранном отладчике с открытым окном с плавающей запятой.
  • Исправлена ошибка, из-за которой параметры символов непреднамеренно очищались.
  • Журнал команд теперь сохраняется при запуске из последних целевых объектов.
  • В окне модели данных теперь можно изменять значения.
  • Неиндексированные трассировки TTD теперь будут более ясными, что они не индексированы.
  • Улучшенная производительность окна локальных параметров
  • Добавлена кнопка ленты для сохранения журналов командного окна в файл.
  • Добавили. SelectMany(<проекция>) для набора методов LINQ по умолчанию.

1.0.1807.11002

Эта версия включает эти обновления.

Автоматическое сохранение и загрузка точек останова. Это первый шаг для замены рабочих областей. Мы начинаем этот маршрут, включив сохранение и загрузку точек останова. Запуск того, что вы отладили ранее на вкладке "Последние" в меню файлов, теперь загрузит точки останова из этого сеанса. План состоит в том, чтобы расширить эту функцию, чтобы сохранить дополнительные сведения в сеансах. Аппаратные точки останова (ba) и другие различные свойства для точек останова, таких как поток и обработка конкретных контекстов, а также условия в настоящее время не сохраняются.

Незначительные изменения и исправления ошибок:

  • Добавлены параметры командной строки -x, -xe, -xd, -xn и -xi для управления обработкой исключений и событий. Эти параметры командной строки ведут себя так же, как и их счетчики команд.
  • Окно заметок теперь поддерживает полужирное, подчеркивание и курсив форматирования.
  • Исправлены некоторые проблемы с увеличением и прокруткой.
  • При выборе текста в окнах команды, памяти, источников или дизассембли теперь отображается светлое выделение над другими экземплярами выделенного текста.
  • Исправлена ошибка, из-за которой прерывание загрузки символов приводило к сбою загрузки символов для остальной части сеанса.
  • Теперь NatVis перезагрузит правильно при перезапуске сеанса.

1.0.1805.17002

Эта версия включает эти обновления.

Новое окно дизассемблирования — теперь включается окно дизассембли:

  • Прокрутка вверх или вниз будет непрерывно загружать больше дизассембли по возможности.
  • Выделение синтаксиса для чисел, адресов кода и опкодов.
  • При выборе символа кода откроется окно дизассемблирования в это расположение.
  • При наведении указателя мыши на числа отображаются подсказки, преобразующие это число в другие базы.
  • Заголовки, обозначающие начало функции.

Быстрое исходное окно — исходное окно было обновлено, чтобы быть быстрее и эффективнее ресурсов.

Незначительные изменения и исправления ошибок:

  • Исправлены проблемы с кэшированием символов
  • Исправлены некоторые случаи, когда переключение начального разрыва не было пригодным для использования, если целевой объект не сломался в
  • Если вы нажимаете вкладку в командном окне без возможности, курсор будет оставаться в поле ввода
  • Предварительная версия WinDbg теперь автоматически обнаруживает бит при открытии CAB-файлов

1.0.1804.18003

Эта версия включает эти обновления.

Улучшения состояния символов и отмены. Есть время, когда отладчик отображает символы загрузки BUSY , и трудно определить, что это делает и почему без поддержки !sym шумно. Мы обновили Предварительную версию WinDbg, чтобы получить более эффективное взаимодействие с тем, что он делает при загрузке символов, чтобы помочь устранить любые проблемы. Помимо простого просмотра того, что происходит, мы внесли некоторые изменения, которые должны сделать отмену символов более надежными, и окно журналов будет содержать некоторые из сведений, которые обычно выводятся при включении !sym шумно. Если вы попали в представление —> журналы вы получите полный шумный символ загрузки выходных данных без необходимости включить его и попытаться перезагрузить символы.

Окно экспериментальных заметок — предварительная версия WinDbg теперь имеет окно для создания заметок. Просто нажмите "Вид" —> "Заметки", чтобы открыть его. Если вы копируете и вставляете его, ссылки DML будут сохранены и по-прежнему работают, как если бы это было командное окно. Вы также можете сохранять и загружать файлы заметок на ленте "Заметки" при открытии окна.

Экспериментальное более быстрое окно источника. Чтобы повысить производительность WinDbg Preview, существует экспериментальное новое окно источника, которое довольно эффективнее. Есть еще несколько пробелов вокруг контекстных меню и выделения синтаксиса, но мы хотим дать всем возможность попробовать его, прежде чем он завершится, чтобы дать нам ранние отзывы. Запустите $UseFastSourceWindow, чтобы использовать его. Если вы хотите вернуться к старому, запустите $UseMonacoSourceWindow. Чтобы получить новую версию, параметр будет сохранен в сеансах, необходимо закрыть и повторно открытый код окна.

API JSProvider версии 1.2 — для расширений JavaScript, которые объявляют поддержку API версии 1.2:

  • Любой объект с методом .compareTo, который завершает скрипт, будет иметь настраиваемый компратор для него (операторы сравнения будут работать в средство оценки DX и в других местах: например: IModelObject::Compare)
  • Любой объект с методом .equals, который завершает скрипт, будет иметь в нем настраиваемый оператор равенства (== и != будет работать в средство оценки DX и в другом месте: например: IModelObject::IsEqualTo)
  • Объекты собственной или модели данных, вводимые в скрипт, будут иметь .compareTo и .equals на них, которые позволяют получить доступ к любому пользовательскому компратору или пользовательским реализациям равенства.

Незначительные изменения и исправления ошибок:

  • Теперь .server перечисляет полное доменное имя для упрощения использования при возникновении проблем с доменом вокруг коротких имен.
  • Ctrl+G теперь работает в исходном окне.
  • Добавлена адресная строка в окно дизассемблирования.
  • Предварительная версия WinDbg теперь будет обрабатывать _NT_SY МБ OL_PATH более ожидаемым образом.
  • Добавлен параметр командной строки -server.
  • Запросы модели данных TTD теперь можно отображать постепенно, поэтому если вы прерываете его, вы по-прежнему увидите некоторые результаты. Эта функция по-прежнему является экспериментальной и необязательной. Запустите dx @$cursession.TTD.AsyncQueryEnabled = 1 , чтобы включить его.
  • Команда dps теперь содержит ссылки на исходные файлы, к ним относятся.

1.1801.19001.0

Эта версия включает эти обновления.

Выделение текста — теперь можно выделить все экземпляры выделенного текста непосредственно в отладчике. Чтобы использовать эту функцию, просто выделите текст в командном окне, а затем выберите "Выделить" на ленте команды или нажмите клавиши CTRL+ALT+H. При использовании одного из тех, кто уже выделен, текст удаляет выделение.

Если вы предпочитаете использовать команды, можно использовать команду "$hl":

$hl ["someValueHere"] — выделение текста (или отмена выделения, если уже выделено)

$hl clearAll — очистка всех выделенных записей

$hl caseSensitive [1|0] — установка сопоставления выделения для конфиденциального регистра или не учитывает регистр (по умолчанию не учитывается регистр)

В этом выпуске также содержатся некоторые незначительные исправления ошибок.

1.1712.15003.0

Эта версия включает эти обновления.

Запросы памяти TTD . Теперь вы можете запрашивать TTD для доступа к памяти аналогично тому, как вы запрашиваете вызовы сегодня. Это позволяет находить все операции чтения, записи и выполнения, которые получают доступ к определенному диапазону памяти.

Пример чтения и записи: dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")

Уникальный пример выполнения: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")

Параметры изменения . Предварительная версия WinDbg теперь автоматически сохраняет параметры между сеансами, включая путь к символам и путь к источнику.

Улучшения JavaScript

  • 64-разрядные числа и числовые числа в JavaScript теперь содержат метод modulo, позволяющий выполнять операцию с модулем true 64-разрядной версии.
  • Объекты, определенные в JavaScript, теперь могут реализовать пользовательское сравнимое или удваиваемое понятие, которое будет работать в dx с помощью стандартных операторов C++ или в операциях LINQ. Чтобы использовать это, скрипт должен объявить в массиве initializeScript, который поддерживает новую версию API узла, вставив запись "new host.apiVersionSupport(1, 2)". После этого эти функции можно использовать в любом запросе LINQ окна модели данных или dx. Если метод реализует .compareTo(other), он сравним (операторы сравнения работают в dx и LINQ). Если метод возвращает отрицательное значение, например "это < другое". Если метод возвращает ноль, "this == other". Если метод возвращает положительное значение "это > другое". Если метод реализует .equals(other), он является equatable (== работает в dx и LINQ). Метод должен возвращать значение true или false.

Незначительные изменения и исправления ошибок:

  • Исправлена ошибка, из-за которой окна стека и локальных параметров не работали во время отладки загрузки.
  • Обновление выходных данных LM для более точного отчета ProductVersion и аналогичных полей
  • Включена кнопка "Выйти назад" во время сеансов TTD
  • Добавлена поддержка -lsrcpath
  • Заголовки в локальных, контрольных и модельных окнах теперь не исчезают при прокрутке вниз
  • Когда ALT+Tabbing обратно в WinDbg Preview, в командном окне будет правильно сохранено расположение курсора
  • Добавлено сочетание клавиш CTRL+ALT+V для переключения подробного режима
  • Теперь можно отключить автоматическую прокрутку командного окна, выбрав и удерживая (или щелкнув правой кнопкой мыши) вкладку командного окна и выбрав "Отключить автоматическую прокрутку".
  • Теперь можно отлаживать дочерние процессы с помощью расширенной страницы запуска исполняемого файла.

1.0.14.0

Эта версия включает эти обновления.

Улучшенный интерфейс сервера обработки — новое уведомление в меню "Файл", чтобы показать, к чему подключен сервер обработки и с которым вы взаимодействуете, был добавлен. В рамках этих изменений при завершении сеанса отладки подключение сервера обработки будет сохраняться и может быть отключено в меню "Файл".

Новые параметры макета предустановки на ленте "Вид" — на ленте "Вид" есть новый параметр "Макеты". В настоящее время существует три макета: значение по умолчанию, одно ориентировано на дизассембли и один минимальный.

Лента отладки "Путешествие по времени" — есть расширенная лента "Путешествие по времени", которая будет отображаться при отладке трассировки отладки перемещения по времени.

Метаданные из скриптов JavaScript— расширения JavaScript теперь могут возвращать метаданные для свойств и других конструкций. Это означает, что расширение может предоставлять строки справки, указывать радикс отображения значений и многое другое. Метаданные предоставляются путем размещения дескриптора метаданных в объекте с помощью функции Symbol.metadataDescriptor или явного вызова host.metadata.defineMetadata. Возвращаемые функции, итерированные значения и другие контексты значений могут возвращать метаданные для их значения через host.metadata.valueWithMetadata.

Обновления API JavaScript. Некоторые потенциально критические изменения на уровне источника были внесены в API в поставщике JavaScript (включая новые проецируемые методы и свойства в собственных объектах). Существующие расширения не будут видеть какие-либо потенциально критические изменения, не указывая на то, что они поддерживают новую версию API JsProvider. Поддержка новой версии API указывается путем размещения записи host.apiVersionSupport в массиве, возвращаемой инициализациейScript, с утверждением поддержки версии 1.1. Может? .. со значением, указывающим поддержку версии 1.1.

Изменения в API версии 1.1 включают:

  • host.getModuleSymbol и host.getModuleType возвращают значение NULL, если они не могут найти символ вместо исключения.
  • Все собственные объекты имеют свойство адреса в дополнение к .targetLocation. Если у объекта нет адреса, при доступе к свойству будет возникать исключение.
  • Все собственные объекты имеют новые методы .getObjectValue и .setObjectValue для доступа к свойствам объекта, который может конфликтовать с именами мест JavaScript на объекте (например, "адрес").

Дополнительные изменения JavaScript

  • Расширения JavaScript теперь могут добавлять и удалять свойства объектов модели данных с помощью Object.defineProperty и оператора удаления. Добавление или регистрация класса JavaScript в качестве родительской модели или сигнатуры типов по-прежнему является наиболее предпочтительным способом управления объектной моделью.
  • Расширения JavaScript теперь могут изменять глобальные переменные в модулях в целевом объекте отладки с помощью нового API host.setModuleSymbol.
  • Все математические функции, которые находятся в 64-разрядном типе библиотеки (например, .add, .subtract, .умножение, деление и т.д.) теперь присутствуют в числах JavaScript, а также.
  • Функции и свойства JavaScript теперь могут возвращать значения, которые являются перечислениями с помощью пользовательского маршалинга. Функция или метод доступа к свойствам может возвращать host.typeSystem.marshalAs(value, type...) для создания такого пользовательского маршалинга.
  • Команда точки останова в отладчике скрипта теперь может прерывать имена функций в дополнение к позициям строки или столбца.
  • Объекты типа в расширениях JavaScript имеют доступ к их содержащим модулю через свойство .containingModule.

Незначительные изменения и исправления ошибок:

  • Исправлено форматирование вкладок условной ленты, которые будут менее запутанными.
  • Повторно работал DML, чтобы быть более строгим в синтаксическом анализе для повышения производительности.
  • Различные исправления с производительностью и поведением CTRL+F.
  • Добавлено предупреждение при выполнении без повышенных привилегий перед попыткой использовать TTD.
  • Добавлен параметр переопределения автоматического обнаружения битов целевого объекта.
  • Отключены различные параметры меню файлов и ленты, если они не могут использоваться (например, Go, когда в файле дампа).

Известные проблемы:

  • SOS не будет работать с трассировками x86.

1.0.13.0

Эта версия добавляет трассировку путешествия по времени. Отладка перемещения по времени позволяет записывать процесс, а затем воспроизводить его позже как вперед, так и назад. Отладка временных путешествий (TTD) помогает упростить отладку проблем, позволяя "перемотка" сеанса отладчика вместо необходимости воспроизводить проблему, пока не найдете ошибку. Дополнительные сведения см. в статье "Отладка временных путешествий" — обзор.

1.0.12.0

Эта версия была первым выпуском WinDbg Preview. Общие сведения о функциях, доступных в WinDbg Preview, основных функциях WinDbg.

См. также

WinDbg — установка

WinDbg — параметры запуска командной строки