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

Пользователи, которые впервые используют CDB или NTSD, должны начать с раздела Отладка с помощью CDB и NTSD .

Командная строка CDB использует следующий синтаксис:

cdb  [ -server ServerTransport | -remote ClientTransport ] 
[ -premote SmartClientTransport ] [-log{a|au|o|ou} LogFile]
[-2] [-d] [-ddefer] [-g] [-G] [-hd] [-lines] [-myob] [-bonc] 
[-n] [-o] [-s] [-v] [-w] [-cf "filename"] [-cfr "filename"] [-c "command"] 
[-robp] [-r BreakErrorLevel]  [-t PrintErrorLevel] 
[ -x{e|d|n|i} Exception ] [-x] [-clines lines] 
[-i ImagePath]  [-y SymbolPath] [-srcpath SourcePath] 
[-aExtension] [-failinc] [-noio] [-noinh] [-noshell] [-nosqm]
[-sdce] [-ses] [-sicv] [-sins] [-snc] [-snul] [-zp PageFile] 
[-sup] [-sflags 0xNumber] [-ee {masm|c++}]
[-e Event] [-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv] 
[ -- | -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ] 
[-cimp] [-isd] [-kqm] [-pvr] [-version] [-vf] [-vf:<opts>] [-netsyms:{yes|no}]

cdb -iae 

cdb -iaec KeyString 

cdb -iu KeyString

cdb -QR Server 

cdb -wake pid 

cdb -?

Синтаксис командной строки NTSD идентичен синтаксису CDB:

ntsd  [ -server ServerTransport | -remote ClientTransport ] 
[ -premote SmartClientTransport ] [-log{a|au|o|ou} LogFile]
[-2] [-d] [-ddefer] [-g] [-G] [-hd] [-lines] [-myob] [-bonc] 
[-n] [-o] [-s] [-v] [-w] [-cf "filename"] [-cfr "filename"] [-c "command"] 
[-robp] [-r BreakErrorLevel]  [-t PrintErrorLevel] 
[ -x{e|d|n|i} Exception ] [-x] [-clines lines] 
[-i ImagePath]  [-y SymbolPath] [-srcpath SourcePath] 
[-aExtension] [-failinc] [-noio] [-noinh] [-noshell] [-nosqm]
[-sdce] [-ses] [-sicv] [-sins] [-snc] [-snul] [-zp PageFile] 
[-sup] [-sflags 0xNumber] [-ee {masm|c++}] 
[-e Event] [-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv] 
[ -- | -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ] 
[-cimp] [-isd] [-kqm] [-pvr] [-version] [-vf] [-vf:<opts>] [-netsyms:{yes|no}]

ntsd -iae 

ntsd -iaec KeyString 

ntsd -iu KeyString

ntsd -QR Server 

ntsd -wake PID 

ntsd -?

Единственное различие между NTSD и CDB заключается в том, что NTSD создает новое окно консоли, а CDB наследует окно, из которого он был вызван. Так как команда start также может использоваться для создания нового окна консоли, следующие две конструкции дают одинаковые результаты:

start cdb [parameters]
ntsd [parameters]

Ниже приведены описания параметров командной строки CDB и NTSD. Регистр учитывается только в параметрах -remote, -server, -g и -G . Начальный дефис можно заменить косой чертой (/). Параметры, которые не принимают никаких дополнительных параметров, могут быть сцеплены. Поэтому cdb -o -d -G -g winmine можно записать как cdb -odGg winmine.

Если используется параметр -remote или -server , он должен отображаться перед любыми другими параметрами в командной строке. Если указан исполняемый файл , он должен отображаться последним в командной строке; любой текст после имени исполняемого файла передается исполняемой программе в качестве собственных параметров командной строки.

Параметры

-serverServerTransport
Создает сервер отладки, к которому могут обращаться другие отладчики. Описание возможных значений ServerTransport см. в разделе Активация сервера отладки. При использовании этого параметра он должен быть первым параметром в командной строке.

-remoteClientTransport
Создает клиент отладки и подключается к уже работающему серверу отладки. Описание возможных значений ClientTransport см. в разделе Активация клиента отладки. При использовании этого параметра он должен быть первым параметром в командной строке.

-premoteSmartClientTransport
Создает интеллектуальный клиент и подключается к серверу обработки, который уже запущен. Описание возможных значений SmartClientTransport см. в разделе Активация смарт-клиента.

-2
Если целевое приложение является консольным приложением, этот параметр приводит к тому, что оно будет работать в новом окне консоли. (По умолчанию целевое консольное приложение предоставляет общий доступ к окну с CDB или NTSD.)

--
Выполняет отладку подсистемы Run-Time клиентского сервера (CSRSS). Дополнительные сведения см. в разделе Отладка CSRSS.

-aExtension
Задает библиотеку DLL расширения по умолчанию. Значение по умолчанию — userexts. После "a" не должно быть места, и расширение .dll не должно быть включено. Дополнительные сведения и другие методы установки этого значения по умолчанию см. в разделе Загрузка библиотек DLL расширения отладчика.

-bonc
Если этот параметр указан, отладчик войдет в целевой объект сразу после начала сеанса. Это особенно полезно при подключении к серверу отладки, который в настоящее время не может быть разбит на целевой объект.

-c "command"
Указывает начальную команду отладчика, выполняемую при запуске. Эта команда должна быть заключена в кавычки. Несколько команд можно разделить точкой с запятой. (Если у вас длинный список команд, может быть проще поместить их в скрипт, а затем использовать параметр -c с командой $<, $><, $, $><, $$>< (Запуск файла скрипта ).)

Если вы запускаете клиент отладки, эта команда должна быть предназначена для сервера отладки. Клиентские команды, такие как .lsrcpath , не допускаются.

-cf "filename"
Указывает путь и имя файла скрипта. Этот файл скрипта выполняется сразу после запуска отладчика. Если filename содержит пробелы, его необходимо заключить в кавычки. Если путь опущен, предполагается, что используется текущий каталог. Если параметр -cf не используется, в качестве файла скрипта используется файл ntsd.ini в текущем каталоге. Если файл не существует, ошибка не возникает. Дополнительные сведения см. в разделе Использование файлов скриптов.

-cfr "filename"
Указывает путь и имя файла скрипта. Этот файл скрипта выполняется сразу после запуска отладчика и при каждом перезапуске целевого объекта. Если filename содержит пробелы, его необходимо заключить в кавычки. Если путь опущен, предполагается, что используется текущий каталог. Если файл не существует, ошибка не возникает. Дополнительные сведения см. в разделе Использование файлов скриптов.

-cimp
Направляет CDB/NTSD начать с неявной командной строки DbgSrv вместо явного процесса для запуска. Этот параметр является клиентской стороной dbgsrv -pc.

-clinesliness
Задает приблизительное количество команд в журнале команд, к которым можно получить доступ во время удаленной отладки. Дополнительные сведения и другие способы изменения этого числа см. в разделе Использование команд отладчика.

-D
Передает управление этим отладчиком отладчику ядра. При отладке CSRSS это перенаправление элемента управления всегда активно, даже если параметр -d не указан. (Этот параметр нельзя использовать во время удаленной отладки . Вместо этого используйте -ddefer .) Дополнительные сведения см. в разделе Управление отладчиком User-Mode из отладчика ядра . Этот параметр нельзя использовать в сочетании с параметром -ddefer или параметром -noio .

Примечание Если вы используете WinDbg в качестве отладчика ядра, многие из знакомых функций WinDbg недоступны в этом сценарии. Например, нельзя использовать окна Локальные, Дизассемблированное или Стек вызовов, а также невозможно выполнить пошаговое выполнение исходного кода. Это связано с тем, что WinDbg выступает только в качестве средства просмотра для отладчика (NTSD или CDB), работающего на целевом компьютере.

-ddefer
Передает управление этим отладчиком отладчику ядра, если не подключен клиент отладки. (Это вариант -d , который можно использовать с сервера отладки.) Дополнительные сведения см. в разделе Управление отладчиком User-Mode из отладчика ядра . Этот параметр не может использоваться в сочетании с параметром -d или параметром -noio .

-eEvent
Сообщает отладчику, что произошло указанное событие. Этот параметр используется только при запуске отладчика программным способом.

-ee {masm|c++}
Задает средство оценки выражений по умолчанию. Если указан параметр masm , будет использоваться синтаксис выражения MASM. Если указан параметр c++ , будет использоваться синтаксис выражений C++. Если параметр -ee опущен, по умолчанию используется синтаксис выражения MASM. Дополнительные сведения см. в разделе Вычисление выражений .

-failinc
Заставляет отладчик игнорировать все сомнительные символы. При отладке файла минидампа в пользовательском или режиме ядра этот параметр также не позволит отладчику загружать модули, образы которых невозможно сопоставить. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_EXACT_SYMBOLS.


Игнорирует начальную точку останова в целевом приложении. Этот параметр приведет к продолжению работы целевого приложения после запуска или подключения CDB к нему, если не задана другая точка останова. Дополнительные сведения см. в разделе Начальная точка останова .


Игнорирует последнюю точку останова при завершении процесса. По умолчанию CDB останавливается во время запуска образа. Этот параметр приведет к немедленному завершению работы CDB при завершении работы дочернего элемента. Это действие аналогично вводу команды sxd epr. Дополнительные сведения см. в разделе Управление исключениями и событиями.

-Hd
Указывает, что отладочная куча не должна использоваться. Дополнительные сведения см. в разделе Отладка процесса User-Mode с помощью CDB .

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

-Миа
Устанавливает CDB в качестве отладчика postmortem. Дополнительные сведения см. в разделе Включение отладки postmortem.

Если это действие выполнено успешно, сообщение не отображается; В случае сбоя отображается сообщение об ошибке.

Параметр -iae не должен использоваться с другими параметрами. Эта команда не запускает CDB.

-iaecKeyString
Устанавливает CDB в качестве отладчика postmortem. Содержимое KeyString будет добавлено в конец раздела реестра AeDebug . Если KeyString содержит пробелы, она должна быть заключена в кавычки. Дополнительные сведения см. в разделе Включение отладки postmortem.

Если это действие выполнено успешно, сообщение не отображается; В случае сбоя отображается сообщение об ошибке.

Параметр -iaec не должен использоваться с другими параметрами. Эта команда не запускает CDB.

-Isd
Включает флаг CREATE_IGNORE_SYSTEM_DEFAULT для любых процессов.

-iuKeyString
Регистрирует удаленное взаимодействие отладчика в качестве типа URL-адреса, чтобы пользователи могли автоматически запускать удаленный клиент отладчика с URL-адресом. KeyString имеет формат remdbgeng://RemotingOption. RemotingOption — это строка, определяющая транспортный протокол, как определено в разделе Активация клиента отладки. Если это действие выполнено успешно, сообщение не отображается; В случае сбоя отображается сообщение об ошибке.

Параметр -iu не должен использоваться с другими параметрами. Эта команда не запускает CDB.

-kqm
Запускает CDB/NTSD в тихом режиме.

-Линии
Включает отладку исходной строки. Если этот параметр опущен, необходимо использовать команду .lines (Toggle Source Line Support) перед разрешением отладки исходного кода. Другие методы управления этим процессом см. в разделе SYMOPT_LOAD_LINES.

-log{a|au|o|ou} LogFile
Начинает запись данных в файл журнала. Если указанный файл уже существует, он будет перезаписан, если используется -logo , или выходные данные будут добавлены в файл, если используется -loga. Параметры -logau и -logou работают аналогично -loga и -logo соответственно, за исключением того, что файл журнала является файлом Юникода. Дополнительные сведения см. в разделе Сохранение файла журнала в CDB.

-myob
При несоответствии версий с dbghelp.dll отладчик продолжит работу. (Без параметра -myob это считается неустранимой ошибкой.)

-N
Загрузка символов с шумом: включает подробные выходные данные из обработчика символов. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_DEBUG.

-netsyms {yes|no}
Разрешить или запретить загрузку символов из сетевого пути.

-noinh
Запрещает процессам, созданным отладчиком, наследовать дескриптор от отладчика. Другие методы управления этим процессом см. в разделе Отладка процесса User-Mode с помощью CDB.

-noio
Запрещает использование сервера отладки для ввода или вывода. Входные данные будут приниматься только от клиента отладки (а также от любой начальной команды или командного скрипта, указанного параметром командной строки -c ).

Все выходные данные будут направляться клиенту отладки. Если для сервера используется NTSD, окно консоли не будет создано. Дополнительные сведения см. в разделе Активация сервера отладки. Этот параметр нельзя использовать в сочетании с параметром -d или -ddefer .

-noshell
Запрещает все команды .shell . Этот запрет будет длиться до тех пор, пока работает отладчик, даже если запущен новый сеанс отладки. Дополнительные сведения и другие способы отключения команд .shell см. в разделе Использование команд оболочки.

-nosqm
Отключает сбор и отправку данных телеметрии.

-O
Выполняет отладку всех процессов, запущенных целевым приложением (дочерними процессами). По умолчанию процессы, созданные тем, который выполняет отладку, будут выполняться, как обычно. Другие методы управления этим процессом см. в разделе Отладка процесса User-Mode с помощью CDB.

-pPID
Указывает идентификатор отлаживаемого десятичного процесса. Используется для отладки уже запущенного процесса. Дополнительные сведения см. в разделе Отладка процесса User-Mode с помощью CDB.

-Pb
Запрещает отладчику запрашивать начальную приостановку при присоединении к целевому процессу. Это может быть полезно, если приложение уже приостановлено или если вы хотите избежать создания потока останова в целевом объекте.

-Pd
Приводит к тому, что целевое приложение не будет завершено в конце сеанса отладки. Дополнительные сведения см. в разделе Завершение сеанса отладки в CDB .

-Pe
Указывает, что целевое приложение уже выполняет отладку. Дополнительные сведения см. в разделе Повторное присоединение к целевому приложению .

-pnName
Указывает имя отлаживаемого процесса. (Это имя должно быть уникальным.) Используется для отладки уже запущенного процесса.

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

-psnServiceName
Указывает имя службы, содержащейся в отлаживаемом процессе. Используется для отладки уже запущенного процесса.

-ptseconds
Указывает время ожидания перерыва в секундах. Значение по умолчанию равно 30. Дополнительные сведения см. в разделе Управление целевым объектом .

-Pv
Указывает, что отладчик должен подключаться к целевому процессу неинвазивно. Дополнительные сведения см. в разделе Неинвазивная отладка (пользовательский режим).

-Pvr
Работает как -pv , за исключением того, что целевой процесс не приостановлен.

-QR-сервер
Выводит список всех серверов отладки, работающих на указанном сетевом сервере. Двойная обратная косая черта (\) перед сервером является необязательной. Дополнительные сведения см. в разделе Поиск серверов отладки .

Параметр -QR нельзя использовать с другими параметрами. Эта команда не запускает CDB.

-rBreakErrorLevel
Указывает уровень ошибки, который приведет к разрыву целевого объекта в отладчике. Это десятичное число, равное 0, 1, 2 или 3. Возможные значения:

Значение Константа Значение

0

None

Не прерывайте никаких ошибок.

1

ОШИБКА

Прервать события отладки на уровне ОШИБКИ.

2

MINORERROR

Прерывание на событиях отладки MINORERROR и ERROR.

3

ПРЕДУПРЕЖДЕНИЕ

Прерывание на событиях отладки WARNING, MINORERROR и ERROR.

Этот уровень ошибки имеет значение только в проверенных сборках Microsoft Windows. Значение по умолчанию — 1. Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803.

-robp
Это позволяет CDB устанавливать точку останова на странице памяти, доступной только для чтения. (По умолчанию такая операция завершается ошибкой.)

-s
Отключает отложенную загрузку символов. Это замедлит запуск процесса. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_DEFERRED_LOADS.

-sdce
Заставляет отладчик отображать диалоговые окна ошибок доступа к файлу во время загрузки символов. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_FAIL_CRITICAL_ERRORS.

-Ses
Заставляет отладчик выполнять строгую оценку всех файлов символов и игнорировать любые сомнительные символы. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_EXACT_SYMBOLS.

-sflags 0xNumber
Задает все параметры обработчика символов одновременно. Число должно быть шестнадцатеричным числом с префиксом 0x . Десятичная дробь без 0x разрешена, но параметры символов являются двоичными флагами, поэтому рекомендуется использовать шестнадцатеричное значение. Этот параметр следует использовать с осторожностью, так как он переопределяет все значения по умолчанию обработчика символов. Дополнительные сведения см . в разделе Настройка параметров символов.

-sicv
Заставляет обработчик символов игнорировать запись CV. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_IGNORE_CVREC.

-Грехи
Заставляет отладчик игнорировать переменные среды пути к символам и пути к исполняемому образу. Дополнительные сведения см. в разделе SYMOPT_IGNORE_NT_SYMPATH.

-Snc
Приводит к отключению отладчика перевода C++. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_NO_CPP.

-snul
Отключает автоматическую загрузку символов для неквалифицированных имен. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_NO_UNQUALIFIED_LOADS.

-srcpathSourcePath
Указывает путь поиска исходного файла. Разделяйте несколько путей точкой с запятой (;). Если путь содержит пробелы, его следует заключить в кавычки. Дополнительные сведения и другие способы изменения этого пути см. в разделе Исходный путь.

-Sup
Заставляет обработчик символов выполнять поиск в общедоступной таблице символов во время каждого поиска символов. Дополнительные сведения и другие методы управления этим процессом см. в разделе SYMOPT_AUTO_PUBLICS.

-tPrintErrorLevel
Указывает уровень ошибки, который приведет к отображению сообщения об ошибке в отладчике. Это десятичное число, равное 0, 1, 2 или 3. Возможные значения:

Значение Константа Значение

0

None

Ошибки не отображаются.

1

ОШИБКА

Отображение событий отладки на уровне ОШИБКИ.

2

MINORERROR

Отображение событий отладки уровня MINORERROR и ERROR.

3

ПРЕДУПРЕЖДЕНИЕ

Отображение событий отладки на уровне WARNING, MINORERROR и ERROR.

Этот уровень ошибки имеет значение только в проверенных сборках Microsoft Windows. Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803. Значение по умолчанию — 1.

-V
Включает подробные выходные данные отладчика.

-Версия
Выводит строку версии отладчика.

-Vf
Включает параметры ApplicationVerifier по умолчанию.

-vf:<opts>
Включает заданные параметры ApplicationVerifier.


Указывает отладку 16-разрядных приложений в отдельном VDM.

-wakePID
Приводит к завершению спящего режима для отладчика пользовательского режима, идентификатор процесса которого указан с помощью PID. Эта команда должна быть выполнена на целевом компьютере в спящем режиме. Дополнительные сведения см. в разделе Управление отладчиком User-Mode из отладчика ядра .

Параметр -wake не следует использовать с другими параметрами. Эта команда фактически не запускает CDB.

Исключение -x{e|d|n|i}
Управляет поведением отладчика при возникновении указанного события. Исключение может быть номером исключения или кодом события. Этот параметр можно указать несколько раз, чтобы управлять разными событиями. Дополнительные сведения и другие методы управления этими параметрами см. в разделе Управление исключениями и событиями .

-X
Отключает прерывание первого случая при исключении нарушения доступа. Второе вхождение нарушения доступа будет врваться в отладчик. Это то же самое, что и -xd av.

-ySymbolPath
Указывает путь поиска символов. Разделяйте несколько путей точкой с запятой (;). Если путь содержит пробелы, он должен быть заключен в кавычки. Дополнительные сведения и другие способы изменения этого пути см. в разделе Путь к символам.

-zDumpFile
Указывает имя файла аварийного дампа для отладки. Если путь и имя файла содержат пробелы, они должны быть заключены в кавычки. Можно открыть несколько файлов дампа одновременно, включив несколько параметров -z , за каждым из которых следует другое значение DumpFile . Дополнительные сведения см. в разделе Анализ файла дампа User-Mode.

-zpPageFile
Указывает имя измененного файла подкачки. Это полезно, если вы выполняете отладку файла дампа и хотите использовать команду .pagein (страница в памяти). Вы не можете использовать -zp со стандартным файлом подкачки Windows. Можно использовать только специально измененные файлы страниц.

Исполняемый файл
Указывает командную строку исполняемого процесса. Используется для запуска нового процесса и его отладки. Это должен быть последний элемент в командной строке. Весь текст после имени исполняемого файла передается исполняемому файлу в качестве строки аргумента.

-?
Отображает текст справки из командной строки.

При запуске отладчика с начального запуска | Запустите или в окне командной строки укажите аргументы для целевого приложения после имени файла приложения. Например:

cdb myexe arg1arg2