Debugging tools for windows
Раньше я не знал, что такое сабж и не умел его использовать. Теперь немного узнал и впечатлён. Расскажу про свой опыт общения с ним, может кому-то будет полезно.
Эти тулзы содержат мощные отладчики (WinDbg, Cdb) и позволяют делать всякие полезности, типа создания symservers (symstore.exe), создания дампа с процесса (cdb, windbg), отладки мемори ликов (umdh.exe) и других ошибок работы с памятью (gflags — позволяет включать многие «скрытые» системные проверки как для конкретного exe файла, так и для всей системы в целом). Также в комплекте есть много других полезных тулзов, типа просмотрщика debug output.
Взять можно тут: Майкросайт
Например, как получить мемори лики для любой программы:
Нам понадобится umdh.exe, tlist.exe и gflags.exe. Все их надо запускать с админскими правами.
Запускаем gflags.exe, выставляем галочку Create user mode stack database. Перезагружаемся — теперь для всех запущенных программ будет создаваться этот database. Можно для каждого приложения отдельно настроить.
Далее запускаем нужную программу, ждем, пока все загрузится и получаем PID программы с помощью tlist.exe (или как угодно еще). Например, PID == 111.
Далее запускаем umdh.exe -p:111 -f:c:templog1.log
Эта строка сохранит в файл log1.log инфу о всех текущих выделениях памяти в процессе 111.
Далее работаем в программе, ждем сколько-нибудь времени и снова пишем:
umdh.exe -p:111 -f:c:templog2.log
Получаем второй лог с выделениями памяти.
Теперь их можно сравнить и получить лики:
umdh.exe -d -v -l c:templog1.log c:templog2.log 1> c:templog_result.log
Теперь у нас в log_result.log будут все выделенные и не освобожденные куски памяти с калстэками!
Чтобы калстэки были правильные, нужно настроить enviroment variable _NT_SYMBOL_PATH. В хелпе написано, как его настроить для майкрософтовских exe и dll.
Свои pdb лучше всего сохранять на symbol server, который можно пополнять после билдов с помощью symstore.exe — тогда всегда отладчик будет иметь правильный pdb.
Если сервера нет, можно просто положить pdb рядом с ехе — должен подцепиться. Если не подцепится, то добавить путь к pdb в _NT_SYMBOL_PATH.
Если у вас есть дамп файл и надо его проверить, то опять же проще всего использовать WinDbg. Он использует ту же переменную _NT_SYMBOL_PATH и, в отличие от VisualStudio, он не требует ни исходников ни правильных бинарников для отладки. Просто дамп и подходящий pdb! Запускаешь WinDbg.exe, Fileopen crash dump…, открываешь дамп, пишешь !analyze -v, потом !uniqstack и уже обычно этого достаточно в простых случаях. Видишь, какие pdb нашлись, какие нет и получаешь анализ дампа. Можно открыть окошки с callstack, Processes and threads и отлаживаться. Если надо увидеть код — FileSource File Path… — указать путь к исходникам и можно смотреть место в коде, где что произошло (лучше сразу эти пути прописать в enviroment variable _NT_SOURCE_PATH, чтобы не вбивать их каждый раз). Короче, опять все просто и удобно, если есть правильный pdb 🙂
Проблемы с зависаниями чего-либо отлично решаются с помощью создания дампа зависшего процесса. Для этого можно использовать тот же WinDbg или специальные проги или стандартную системную фичу в висте в таск менеджере — создать дамп:)
Причем DebuggingTools можно установить уже после зависания — никакой перезагрузки не надо. Установил — снял дамп. Для снятия дампа юзеру не надо никаких pdb.
Потом этот дамп анализируешь и исправляешь (в Windbg есть специальные команды для поиска дедлоков и т.п. — команда !locks и другие).
Вывод:
Чтобы не иметь проблем с отладкой, надо озаботиться системой хранения pdb файлов для КАЖДОГО билда ну или хотя бы для официальных билдов. А также изучить Debugging tools и написать простые рекоммендации тестерам и программистам — что делать в случае ошибки или зависания, как создавать дамп, куда его класть и с какими коментариями. А некоторые тестеры даже могут запускать WinDBG и копипастить в отчет о баге оттуда нужные данные типа калстэка с ошибкой — очень помогает в предварительном анализе.
В дополнение пара полезных ссылок для начинающих про WinDBG:
WinDbg. From A to Z!
Common WinDbg Commands (Thematically Grouped)
В настройках системы
Самая быстрая и простая активация среды для разработчиков — через меню «Параметры», в котором собраны все основные настройки системы, доступные любому пользователю ПК. Как добраться до нужного пункта в этом окне, опишем подробно в инструкции:
- Окно «Параметры» запускается очень легко — с помощью сочетания клавиш Win I. Если вдруг комбинация не сработает на вашем устройстве, откройте панель «Пуск», через которую вы отключаете ПК, и щёлкните по шестерёнке (она ведёт как раз в это же окно).
В системном меню «Пуск» кликаем по шестерёнке, чтобы открыть окно «Параметры Windows» - На начальной странице окна будет несколько плиток. Обращаем внимание на конец списка. Кликаем сразу по разделу «Обновление и безопасность».
В окне «Параметры Windows» жмём на плитку «Обновления и безопасность» - На следующей странице нам понадобится вторая с конца вкладка «Для разработчиков». Здесь необходимо уже активировать наш «Режим разработчика» с помощью одного щелчка по соответствующему значению.
Во вкладке «Для разработчиков» кликаем по соответствующему значению, чтобы включить режим - Система выдаст сообщение с предупреждением. В нём нужно щёлкнуть по «Да», чтобы подтвердить намерение активировать среду для программистов.
Кликаем по «Да», чтобы подтвердить, что вы хотите включить режим - Ждём, когда ОС загрузит все компоненты для стабильной работы режима. В результате под пунктом появится уведомление об успешной активации.
- После этого можно сделать перезапуск ПК. Это обязательно, так как без перезагрузки не все параметры будут доступны для изменения. Об этом будет сказано в сообщении под пунктом: «Некоторые функции могут не работать до перезапуска устройства».
Обязательно перезагрузите компьютер после активации режима, чтобы вам стали доступны все его функции
В системном окне «редактор локальной групповой политики»
Метод активации в этом редакторе довольно простой. Как добраться до нужных параметров в нём, расскажем в инструкции:
- Вызывается окно этого редактора по аналогии с запуском «Редактора реестра», то есть через окно «Выполнить». Однако в этом случаем вставляем код gpedit.msc. Затем, жмём на Enter на клавиатуре либо на ОК в окошке, чтобы введённая команда выполнилась.
Вставьте в строку «Открыть» команду gpedit.msc и нажмите на ОК - В редакторе сразу дважды щёлкаем по блоку «Конфигурация компьютера».
Открываем первый большой раздел «Конфигурация компьютера» - Теперь вам необходимо один за другим запустить три меню со следующими названиями: «Административные шаблоны» — «Компоненты Windows» — «Развёртывание пакета приложений».
Откройте папку «Развёртывание пакета приложений» в правой части окна редактора - Появится небольшой перечень доступных функций. Второй пункт в перечне должен нас заинтересовать в первую очередь. Двойным щелчком запускаем её.
В списке доступных политик откройте сначала «Разрешить разработку приложений магазина Windows» - В сером окошке, которое открылось поверх редактора, ставим круглую отметку слева от значения «Включено». Чтобы изменения начали действовать, жмём на «Применить», а потом на ОК — дополнительное окно исчезнет.
Установите значение «Включено» и примените изменения с помощью специальной кнопки - Затем переходим в ещё одну опцию, посвящённую инсталляции всех доверенных приложений. Здесь также устанавливаем значение «Включено» и применяем изменённые параметры.
Включите ещё одну политику под названием «Разрешить установку всех доверенных приложений» - Закрываем все окна и перезапускаем устройство. Компьютер загрузится в «Режиме разработчика».
Версии
Версии Microsoft Windows | ||||
---|---|---|---|---|
Дата выхода | Название | Последняя версия | Дата прекращения поддержки | Последняя версия встроенного браузера |
20 ноября 1985 | Windows 1.0x | 1.04 (апрель 1987) | 31 декабря 2001 | Нет браузеров |
1 ноября 1987 | Windows 2.x Windows 2.1x | 2.11 (13 марта 1989) | 31 декабря 2001 | |
22 мая 1990 | Windows 3.x | 3.00a (31 октября 1990) | 31 декабря 2001 | |
18 марта 1992 | Windows 3.1 | 3.1 | 31 декабря 2001 | Internet Explorer 5 |
1 октября 1992 | Windows для рабочих групп 3.1 | 3.11 (31 декабря 1993) | 31 декабря 2001 | |
27 июля 1993 | Windows NT 3.1 | 3.10.528 SP3 (10 ноября 1994) | 31 декабря 2001 | |
21 сентября 1994 | Windows NT 3.5 | 3.50.807 SP3 (21 июня 1995) | 31 декабря 2001 | |
30 мая 1995 | Windows NT 3.51 | 3.51.1057 SP5 (19 сентября 1996) | 31 декабря 2001 | |
24 августа 1995 | Windows 95 | 4.00.950C (4.03.1214) (26 ноября 1997) | 31 декабря 2000 (осн.) (Retail); 31 декабря 2001 (SBL) (ext) | Internet Explorer 5.5 |
29 июля 1996 | Windows NT 4.0 | 4.00.1381 / SP6a SRP (26 июля 2001) | 20 июня 2002 (осн.); 30 июня 2003 (SBL); 31 декабря 2004 (ext) | Internet Explorer 6 |
25 июня 1998 | Windows 98 | 4.10.2222A (SE) (5 мая 1999) | 30 июня 2002 (осн.); 31 марта 2004 (SBL); 11 июля 2006 (ext) | |
20 апреля 2000 | Windows 2000 | 5.0.2195 / 5.0 SP4 Rollup 1 v2 (13 сентября 2005) | 31 марта 2004 (retail); 31 марта 2005 (SBL); 30 июня 2005 (осн); 13 июля 2021 (ext) | |
14 сентября 2000 | Windows ME | 4.90.3000 (14 сентября 2000) | 31 декабря 2003 (осн.); 30 июня 2004 (SBL) (Retail); 11 июля 2006 (ext) | |
24 августа 2001 (RTM) 25 октября 2001 (продажи) | Windows XP | 5.1.2600.5512 SP3 (21 апреля 2008) | 30 сентября 2004 (RTM); 10 сентября 2006 (SP1/SP1a); 30 июня 2008 (retail); 14 апреля 2009 (SP2/SP3 осн.); 13 июля 2021 (SP2); 22 октября 2021 (SBL); 8 апреля 2021 (ext) | Internet Explorer 8 |
28 марта 2003 | Windows XP 64-bit Edition | 5.2.3790 | 25 июля 2006 | |
24 апреля 2003 | Windows Server 2003 | 5.2.3790.3959 SP2 (13 марта 2007) | 30 июня 2009 (RTM); 13 июля 2021 (осн.); 14 июля 2021 (ext) | |
25 апреля 2005 | Windows XP Professional x64 Edition | 5.2.3790.3959 SP2 (13 марта 2007) | 30 июня 2008 (retail); 31 января 2009 (SBL) | |
8 ноября 2006 (RTM) 30 января 2007 (продажи) | Windows Vista | 6.0.6001 / SP2 Build 6002 (25 мая 2009) | 13 апреля 2021 (RTM); 22 октября 2021 (retail); 12 июля 2021 (SP1); 22 октября 2021 (SBL); 10 апреля 2021 (осн.); 11 апреля 2021 (ext) | Internet Explorer 9 |
16 июля 2007 | Windows Home Server | 5.2.4500 (16 июля 2007) | 8 января 2021 (ext) | |
27 февраля 2008 | Windows Server 2008 | 6.0.6002 / SP2 build 6002 (25 мая 2009) | 12 июля 2021 (SP1), 13 января 2021 (осн), 14 января 2020 (ext) | |
13 июля 2009 (RTM) 22 октября 2009 (продажи) | Windows 7 | 6.1.7601 / SP1 Build 7601 (22 февраля 2021) | 9 апреля 2021 (RTM), 13 января 2021 (осн), 14 января 2020 (ext) | Internet Explorer 11 |
13 июля 2009 (RTM) 22 октября 2009 (продажи) | Windows Server 2008 R2 или Windows Server 7 | 6.1.7601 / SP1 Build 7601 (22 февраля 2021) | 13 января 2021 (осн), 14 января 2020 (ext) | |
6 апреля 2021 | Windows Home Server 2021 | 6.1.8400 | 12 апреля 2021 (ext) | |
1 августа 2021 (RTM) 4 сентября 2021 (продажи) | Windows Server 2021 | 6.2.9200 (26 октября 2021) | 9 октября 2021 (осн), 10 октября 2023 (ext) | |
1 августа 2021 (RTM) 26 октября 2021 (продажи) | Windows 8 | 6.2.9200 (26 октября 2021) | 12 января 2021 (ext) | |
21 августа 2021 (RTM) 17 октября 2021 (продажи) | Windows Server 2021 R2 | 6.3.9600 (17 октября 2021) | 9 января 2021 (осн) 10 января 2023 (ext) | |
21 августа 2021 (RTM) 17 октября 2021 (продажи) | Windows 8.1 | 6.3.9600 (17 октября 2021) | 9 января 2021 (осн) 10 января 2023 (ext) | |
15 июля 2021 (RTM) 29 июля 2021 (продажи) | Windows 10 | 10.0.15014 1607 (27 января 2021) | 13 октября 2020 (осн.), 14 октября 2025 (ext.) | Microsoft Edge / Internet Explorer 11 (оставлен для совместимости) |
29 сентября 2021 (RTM) 12 октября 2021 (продажи) | Windows Server 2021 | 1607 (10.0.14393) (26 сентября 2021) | Microsoft Edge | |
Условные обозначения: | ||||
Оболочка для MS-DOS | Windows 9x | Windows NT | Windows Server | |
Не поддерживается | ||||
осн. — окончание действия лицензии для первого (основного) релиза | SBL — окончание срока лицензии для производителей | retail — окончание срока лицензии для розничных покупателей | SPx — окончание срока лицензии для различных дополнений (сервис-паков) к системе | ext — полное окончание поддержки системы |
Запуск локальных сценариев без подписи в powershell
В целях безопасности консоль PowerShell принимает и выполняет команды только с цифровой подписью. «Режим разработчика» предполагает тестирование различных скриптов, поэтому в нём проверка выполнения локальных скриптов отключается.

Таким образом, пользователи не будут сталкиваться с ошибкой в командной строке: The file is not digitally signed. Они смогут печатать различные скрипты, но только от надёжных создателей.

Для каждого раздела есть своя кнопка «Применить»: после изменения параметров в нём необходимо обязательно на неё нажать, чтобы все указанные значения вступили в силу. Справа от каждого пункта есть ссылка «Показать параметры». Если вдруг сам параметр некликабелен, нажмите на неё — откроется то или иное окно Windows, которому он соответствует в системе, и измените настройки там.
Изменение параметров «проводника windows»
В соответствующем разделе вы можете настроить показ скрытых папок, системных файлов и их расширений. Это необходимо, например, для очистки системы от ненужных, мусорных файлов, которыми система постепенно забивалась с течением времени.

Для обычных пользователей Windows также будет полезна опция отображения полного пути к файлу в адресной строке окна «Проводника». Он выводится в заголовке после двойного клика по строке.

Недоступные пункты для портала и обнаружения устройств
Если оказались не кликабельными первые два параметра для портала и обнаружения устройств, возможно, ваш компьютер не поддерживает данную функцию.

Причина может быть также в версии Windows и установленных обновлениях. Попробуйте сделать откат до предыдущей версии ОС, удалив последнее обновление. Для этого вы можете воспользоваться встроенным средством Windows для восстановления системы (инструкция в разделе ниже) либо же вручную удалить обновление:
- Откройте плитку «Обновление и безопасность» в меню «Параметры». Во вкладке «Центр обновления Windows» нажмите на ссылку «Просмотреть журнал установленных обновлений».
Кликните по ссылке «Просмотреть журнал установленных обновлений» - Теперь жмём на первый пункт, чтобы избавиться от недавнего апдейта в дополнительном окне.
Нажмите на ссылку «Удалить обновления», чтобы перейти в новое окно - В новом окне кликните правой клавишей мышки по последнему обновлению (первый пункт в списке) и нажмите на «Удалить».
Нажмите на пункт правой кнопкой мыши и выберите «Удалить» - Подтвердите действие, нажав на «Да».
Подтвердите своё намерение удалить обновление - Попытайтесь снова включить «Режим разработчика».
Ошибка «некоторыми параметрами компьютера управляет организация»
В начале страницы для включения режима может появиться надпись «Некоторыми параметрами компьютера управляет организация» после попытки активировать среду в окне с параметрами системы. При этом часть важных функций действительно оказывается недоступна, к большому сожалению пользователей (по ним нельзя щёлкнуть мышью, как и по кнопке «Показать параметры»).
Это может быть вызвано изменениями в реестре и в локальных групповых политиках, которые пользователь ранее вносил на девайсе. В результате некоторые важные системные файлы могли быть удалены, что привело к сбою. Если вы не помните, что именно меняли, попробуйте сделать откат с помощью средства восстановления:
- Кликаем правой клавишей мышки по иконке «Этот компьютер» на «Рабочем столе». В сером меню жмём на пункт «Свойства».
В контекстном меню иконки «Этот компьютер» нажмите на «Свойства» - В большом окне с информацией об «операционке» и вашем ПК ищем в левой части ссылку «Дополнительные параметры системы». Кликаем по ней.
Кликните по ссылке «Дополнительные параметры системы» в левой части окна - В новом окне переключаемся на вторую вкладку «Защита системы», где щёлкаем по кнопке «Восстановить».
Во вкладке «Защита системы» нажмите на кнопку «Восстановить» - Запустится окно для восстановления. Выбираем пункт «Выбрать другую точку восстановления» либо «Рекомендуемое восстановление», если ошибка появилась после недавнего обновления.
В начальном окне средства для восстановления системных файлов кликните по одному из двух пунктов в зависимости от точки восстановления, до которой вы хотите сделать откат - В первом случае выделяем в списке нужную точку левой кнопкой. Не забудьте установить галочку рядом с пунктом для включения показа других точек. Так, вы сможете ознакомиться со всем списком.
Выделите кликом левой кнопки мышки необходимую точку восстановления - Щёлкаем по «Далее». На следующей странице жмём на «Готово» для подтверждения.
Кликните по «Готово», чтобы запустить процесс восстановления - Запустится процесс восстановления. Продолжительность процедуры зависит от количества параметров, которые необходимо изменить. После этого устройство перезапустится.
Сбой поиска или установки пакета «режима разработчика» с кодом ошибки 0x80004005
После попытки активировать среду под пунктом может выскочить красное уведомление о том, что система не смогла инсталлировать пакет «Режима разработчика» или что в «Центре обновления» не оказалось данного пакета. Обе ошибки имеют при этом код 0x80004005.

Они могут возникать из-за проблем с сетевым подключением, поэтому сначала удостоверьтесь, что у вас работает интернет. Перезагрузите роутер или модем, а также попробуйте открыть несколько вкладок в браузере для проверки соединения.
Если у вас установлены какие-либо сторонние утилиты, которые отключают слежку Windows 10, например, DWS или AntiSpy, деактивируйте их на время. Возможно, именно они блокируют доступ к серверам Microsoft.
Антивирус также может по ошибке блокировать доступ к официальным серверам Microsoft. Чтобы это проверить, необходимо на время его отключить. Программа-защитник всегда должна работать в фоновом режиме, чтобы вовремя обнаружить и обезвредить угрозу, поэтому её значок должен находиться в трее Windows. Рассмотрим отключение на примере Avast:
- Отключите среду для разработчиков. Нажмите на значок в виде стрелки, направленной вверх, на «Области уведомлений» в правой части «Панели задач» (это и есть трей Windows).
- В маленьком меню жмём на иконку Avast правой клавишей мышки. Теперь наводим курсор на пункт «Управление экранами Avast». В перечне выбираем нужное время для отключения. Достаточно будет выбрать минимальное значение 10 минут.
Отключите Avast через контекстное меню антивируса в трее Windows - В течение этого времени пробуйте включать «Режим разработчика».
Если антивирус не является помехой, проверьте наличие обновлений Windows 10:
- Запустите окно «Параметры Windows» с помощью комбинации клавиш Win I либо через панель «Пуск».
- В списке выбираем плитку «Обновления и безопасность». Нам нужен первый раздел «Центр обновления Windows». В этой вкладке кликаем по кнопке «Проверка наличия обновлений».
- Система ту же запустит поиск.
Подождите, пока система найдёт доступный апдейт в сети - Если будет найден доступный апдейт, ОС сама его загрузит и установит. Ход инсталляции будет показан в процентах.
Ждём, когда система сама скачает и установит обновления - После обновления попробуйте снова включить среду для разработчиков.
Если уже установлены все актуальные обновления Windows, проверьте есть ли пакет для «Режима разработчика» в блоке с перечнем дополнительных компонентов:
- Снова запускаем «Параметры Windows», но на этот раз кликаем по плитке «Приложения».
- В первом блоке жмём на ссылку для открытия списка дополнительных компонентов.
Нажмите на ссылку «Управление дополнительными компонентами» - В появившемся списке должен быть пункт «Режим разработчика Windows».
В перечне должен стоять пункт «Режим разработчика Windows» - Если его нет, Windows не удастся найти правильный пакет для вашего ПК. Кликните по кнопке «Добавить компонент», чтобы система загрузила его.
Кликните по «Добавить компонент», чтобы загрузить пакет для «Режим разработчика» - После добавления пакета попробуйте снова активировать режим.
«Режим разработчика» полезен как для специалистов IT, так и обычным юзерам, которые хотят установить надёжное приложение без подписи Microsoft. Включить среду можно разными способами. Самый простой — в меню «Параметры Windows». Если не удаётся активировать там, воспользуйтесь редакторами реестра и групповых политик.
Семейство windows nt
Основная статья: Windows NT
Операционные системы этого семейства в настоящее время работают на процессорах с архитектурами x86, x86-64, Itanium, ARM. Ранние версии (до 4.0 включительно) также поддерживали некоторые RISC-процессоры: Alpha, MIPS и PowerPC. Все операционные системы этого семейства являются полностью 32- или 64-битными и не нуждаются в MS-DOS даже для загрузки.
Только в этом семействе представлены операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием, что и аналогичная версия для рабочих станций, но с добавлением суффикса, например «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003 серверные операционные системы называются добавлением суффикса «Server» и года выпуска.
В основу семейства Windows NT положено разделение адресных пространств между процессами. Каждый процесс имеет возможность работать с выделенной ему памятью. Однако он не имеет прав для записи в память других процессов, драйверов и системного кода.
Семейство Windows NT относится к операционным системам с вытесняющей многозадачностью. Разделение процессорного времени между потоками происходит по принципу «карусели». Ядро операционной системы выделяет квант времени (в Windows 2000 квант равен примерно 20 мс) каждому из потоков по очереди при условии, что все потоки имеют одинаковый приоритет.
Поток может отказаться от выделенного ему кванта времени. В этом случае система перехватывает у него управление (даже если выделенный квант времени не закончен) и передаёт управление другому потоку. При передаче управления другому потоку система сохраняет состояние всех регистров процессора в особой структуре в оперативной памяти.
Через «редактор реестра»
Редактирование реестра Windows — не самая простая задача, с которой могут не справиться начинающие пользователи ПК. Тем не менее о способе необходимо знать и по возможности научиться его применять, так как он работает для всех версий «десятки», включая «Домашнюю». Чтобы немного облегчить задачу, подробно и доступно опишем все действия:
- Самый быстрый способ запустить редактор — через окошко «Выполнить». Вызываем его двумя клавишами Win R: одновременно зажимаем их. В строке «Открыть» пишем или вставляем предварительно скопированный код regedit.
В окне «Выполнить» пишем команду regedit - В следующем окне, которое откроет ОС, разрешаем редактору вносить изменения на вашем устройстве: кликаем по кнопке «Да».
Разрешите редактору вносить изменения на вашем устройстве, кликнув по «Да» - В левой колонке редактора нас интересует третья ветка HKEY_LOCAL_MACHINE. Запускаем её двойным кликом.
Открываем третью главную ветку в левой части окна - Далее, необходимо переходить по очереди в следующий разделы в той же левой части окна: SOFTWARE — Microsoft — Windows — CurrentVersion — AppModelUnlock.
Последней открытой папкой в левой части окна должна быть AppModelUnlock - В последней запущенной папке будет две записи. Кликаем дважды по первой с названием AllowAllTrustedApps и ставим в маленьком сером окошке цифру 1 в качестве значения (это активирует запись). Для сохранения всех изменений щёлкаем по ОК.
В поле «Значение» напишите 1 и нажмите на ОК, чтобы сохранить изменения - Повторяем то же действие для другой записи.
- Теперь закрываем все окна, запущенные на ПК, и перезагружаем устройство.
Поменять значение тех же параметров реестра можно и с помощью консоли «Командная строка». Как её запустить и какие коды в ней вводить?
- Консоль открываем через панель «Поиск». Кликаем по иконке в виде лупы, а в строке внизу пишем запрос «Командная строка» или cmd.
Введите в строку запрос «Командная строка» - В результатах поиска жмём на пункт правой клавишей мышки и в сером меню выбираем «Запуск от имени администратора».
Нажмите на пункт «Запуск от имени администратора» в сером меню - В чёрном редакторе вставляем команду reg add ″HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock″ /t REG_DWORD /f /v ″AllowAllTrustedApps″ /d ″1″ и нажимаем на Enter.
В «Командной строке» выполняем по очереди два кода для включения параметров реестра, связанных с «Режимом разработчика» - После её выполнения вставляем другой код: reg add ″HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock″ /t REG_DWORD /f /v ″AllowDevelopmentWithoutDevLicense″ /d ″1″. Также, жмём на Enter.
- Закрываем все окна и перезапускаем ПК.
Эксперимент: отображение информации о типах для структур ядра.
Чтобы вывести список структур ядра, чей тип информации включен в символы ядра, наберите в отладчике ядра команду dt nt!_*. Частичный образец вывода имеет следующий вид:
lkd> dt nt!_*
nt!_LIST_ENTRY
nt!_LIST_ENTRY
nt!_IMAGE_NT_HEADERS
nt!_IMAGE_FILE_HEADER
nt!_IMAGE_OPTIONAL_HEADER
nt!_IMAGE_NT_HEADERS
nt!_LARGE_INTEGER
Командой dt можно также воспользоваться для поиска определенных структур, используя заложенную в эту команду возможность применения символов-заместителей. Например, если ведется поиск имени структуры для объекта interrupt, нужно набрать команду dt nt!_*interrupt*:
lkd> dt nt!_*interrupt*
nt!_KINTERRUPT
nt!_KINTERRUPT_MODE
nt!_KINTERRUPT_POLARITY
nt!_UNEXPECTED_INTERRUPT
Затем, как показано в следующем примере, команду dt можно использовать для форматирования определенной структуры:
lkd> dt nt!_kinterrupt
nt!_KINTERRUPT
0x000 Type : Int2B
0x002 Size : Int2B
0x008 InterruptListEntry : _LIST_ENTRY
0x018 ServiceRoutine : Ptr64 unsigned char
0x020 MessageServiceRoutine : Ptr64 unsigned char
0x028 MessageIndex : Uint4B
0x030 ServiceContext : Ptr64 Void
0x038 SpinLock : Uint8B
0x040 TickCount : Uint4B
0x048 ActualLock : Ptr64 Uint8B
0x050 DispatchAddress : Ptr64 void
0x058 Vector : Uint4B
0x05c Irql : UChar
0x05d SynchronizeIrql : UChar
0x05e FloatingSave : UChar
0x05f Connected : UChar
0x060 Number : Uint4B
0x064 ShareVector : UChar
0x065 Pad : [3] Char
0x068 Mode : _KINTERRUPT_MODE
0x06c Polarity : _KINTERRUPT_POLARITY
0x070 ServiceCount : Uint4B
0x074 DispatchCount : Uint4B
0x078 Rsvd1 : Uint8B
0x080 TrapFrame : Ptr64 _KTRAP_FRAME
0x088 Reserved : Ptr64 Void
0x090 DispatchCode : [4] Uint4B
Следует заметить, что при выполнении команды dt подструктуры (структуры внутри структур) по умолчанию не показываются. Для выполнения рекурсии подструктур нужно воспользоваться ключом –r. Например, воспользоваться этим ключом для вывода объекта прерывания ядра с показом формата структуры _LIST_ENTRY, хранящейся в поле InterruptListEntry:
lkd> dt nt!_kinterrupt -r
nt!_KINTERRUPT
0x000 Type : Int2B
0x002 Size : Int2B
0x008 InterruptListEntry : _LIST_ENTRY
0x000 Flink : Ptr64 _LIST_ENTRY
0x000 Flink : Ptr64 _LIST_ENTRY
0x008 Blink : Ptr64 _LIST_ENTRY
0x008 Blink : Ptr64 _LIST_ENTRY
0x000 Flink : Ptr64 _LIST_ENTRY
0x008 Blink : Ptr64 _LIST_ENTRY
В файле справки Debugging Tools for Windows также объясняется, как настраиваются и используются отладчики ядра. Дополнительные подробности использования отладчиков ядра, предназначенные непосредственно для создателей драйверов устройств, могут быть найдены в документации по набору Windows Driver Kit.