WinPE: отладка приложений

Вы можете использовать отладчики Windows, такие как Ntsd.exe, Cdb.exe и Windbg.exe, а также вспомогательные средства для отладки приложений в среде предустановки Windows и для отладки ядра Среды предустановки Windows. Средства отладки включены в пакет SDK для Windows 10. Необходимо сделать средства отладки доступными на компьютере Windows PE, скопировав их локально или используя из общей папки.

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

wpeutil disablefirewall

Отладка в пользовательском режиме

Самый простой способ отладки в пользовательском режиме — запустить сервер обработки на компьютере Windows PE и подключиться к нему с помощью отладчика на другом компьютере. Сервер обработки входит в состав средств отладки в пакете SDK для Windows 10.

Запуск сервера обработки в пользовательском режиме

  1. Скопируйте средство Windows Debugging Process Server: dbgsrv.exeиз папки средств отладки пакета SDK Windows 10 (например, C:\Program Files (x86)\Windows Kits\10.0\Debuggers\x64) на компьютер Windows PE.

  2. В командной строке Windows PE отключите брандмауэр.

    wpeutil disablefirewall
    
  3. Запустите сервер обработки отладки Windows, указав метод подключения к компьютеру, например TCP-порт:

    dbgsrv.exe -t tcp:port=1234
    

    Дополнительные сведения см. в разделе Активация сервера обработки (отладчики Windows).

  4. С удаленного компьютера используйте сервер обработки для подключения или запуска процессов на конечном компьютере Windows PE:

    windbg -premote tcp:server=Server,port=1234
    

    Дополнительные сведения см. в разделе Активация интеллектуального клиента (отладчики Windows).

Отладчик также можно запустить непосредственно на компьютере Windows PE. Однако для этого требуется настроить пути к символам и источнику после каждой перезагрузки компьютера Windows PE. Рекомендуется выполнять отладку с компьютера под управлением полной версии Windows, как описано в этой процедуре.

Следующая процедура отладки полезна, если вы хотите обойти startnet.cmd или setup.exe и перейти непосредственно к командной строке для отладки. Эта процедура обходит всю инициализацию, включая установку, и не выполняет никаких команд, таких как Wpeinit.exe. Эта процедура должна выполняться в оперативной операционной системе.

Включение отладки в пользовательском режиме перед любой инициализацией

  1. Удалите файл winpeshl.ini, если он существует. Если файл winpeshl.ini не существует, доступ к отладке в пользовательском режиме можно получить по умолчанию.

  2. Удерживайте клавишу CTRL во время загрузки, прежде чем появится командная строка. Откроется командная строка.

  3. Перейдите к отладке.

Отладка в режиме ядра

Для отладки в режиме ядра необходимо включить отладку в режиме ядра перед загрузкой системы. Файл конфигурации загрузки содержит параметр отладки в режиме ядра, который включается с помощью программы командной строки bcdedit.exe для изменения хранилища данных конфигурации загрузки (BCD). Отладка ядра может выполняться только с помощью bcdedit.exe. Bcdedit.exe находится в каталоге \Windows\System32 раздела Windows.

Параметры отладчика по умолчанию:

identifier              {dbgsettings} 
debugtype               Serial 
debugport               1 
baudrate                115200

Для создания isos для сред виртуальных машин включите ядро с записями BCD перед созданием ISO.

Сведения об изменении хранилища BCD по умолчанию (default.bcd) см. в статье Изменение хранилища BCD с помощью bcdedit.

Включение отладки в режиме ядра

  1. Найдите хранилище BCD, которое содержится в файле с именем bcd. Этот файл находится в загрузочном каталоге в корне носителя, содержащего образ Windows PE.

  2. В командной строке введите следующую команду bcdedit, чтобы задать флаг отладки хранилища BCD, используемого для загрузки образа debug on:

    bcdedit /store <path to winpe>/boot/bcd /set {default} debug on
    

    Может {default} потребоваться заменить уникальным идентификатором (UID) параметра загрузки для Среды предустановки Windows.

    Кроме того, можно включить отладку ядра, нажав клавишу F8 во время загрузки и выбрав параметр отладки.

    Примечание Чтобы использовать сервер символов из среды предустановки Windows, используйте net use команду для символов и общих папок сервера.

Дополнительные сведения о параметрах командной строки, управляющих отладкой, см. в разделе BcDEdit Command-Line Options.

Включение отладки в сетевом режиме ядра

На техническом компьютере выполните следующие команды, чтобы создать образ Windows PE с параметрами отладки в режиме сетевого ядра:

  1. Запустите среду средств развертывания и создания образов от имени администратора.

  2. Запустите copype, чтобы создать рабочую копию файлов Windows PE.

    copype amd64 d:\WinPE_amd64
    
  3. Если целевой компьютер является системой UEFI, выполните следующие команды (примеры приведены ниже: PORT и ключ. ЗНАЧЕНИЕ PORT можно задать в диапазоне от 50000 до 50039. Ключ шифрования см. в разделе Ключ шифрования:

    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /set {default} debug on
    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /set {default} bootdebug on
    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /dbgsettings NET HOSTIP:xxx.xxx.xxx.xxx PORT:50005 key:5.5.5.5
    
  4. Если целевой компьютер является устаревшей системой BIOS, выполните следующие команды (примерами являются следующие ПОРТ и ключ. ЗНАЧЕНИЕ PORT можно задать в диапазоне от 50000 до 50039. Ключ шифрования см. в разделе Ключ шифрования:

    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /set {default} debug on
    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /set {default} bootdebug on
    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /dbgsettings NET HOSTIP:xxx.xxx.xxx.xxx PORT:50005 key:5.5.5.5
    
  5. Используйте MakeWinPEMedia с параметром /ISO, чтобы создать ISO-файл, содержащий файлы Windows PE, и выполните следующие команды:

    makewinpemedia /iso d:\WinPE_amd64\winpe_x64_debug.iso
    

На целевом компьютере начните с winpe_x64_debug.iso и выполните следующую команду:

windbg.exe -k net:port=50005,key=5.5.5.5

WinPE для Windows 10

WinPE: подключение и настройка

Параметры Command-Line Wpeutil

Справочник поWinpeshl.ini. Запуск приложения при запуске WinPE

Параметры Command-Line BCDEdit