Параметры командной строки 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, он должен отображаться перед любыми другими параметрами в командной строке. Если указан исполняемый файл, он должен отображаться последним в командной строке; любой текст после передачи имени исполняемого файла в исполняемую программу в качестве собственных параметров командной строки.
Параметры
-сервер ServerTransport
Создает сервер отладки, к которому можно получить доступ другим отладчикам. Описание возможных значений ServerTransport см. в разделе "Активация сервера отладки". Если этот параметр используется, он должен быть первым параметром в командной строке.
-удалённый ClientTransport
Создает клиент отладки и подключается к серверу отладки, который уже запущен. Описание возможных значений ClientTransport см. в разделе "Активация клиента отладки". Если этот параметр используется, он должен быть первым параметром в командной строке.
-premote SmartClientTransport
Создает смарт-клиент и подключается к серверу обработки, который уже запущен. Описание возможных значений SmartClientTransport см. в разделе "Активация смарт-клиента".
-2
Если целевое приложение является консольным приложением, этот параметр приводит к тому, что он будет жить в новом окне консоли. (По умолчанию используется целевое консольное приложение для совместного использования окна с CDB или NTSD.)
--
Отладка подсистемы времени выполнения клиентского сервера (CSRSS). Дополнительные сведения см. в разделе "Отладка CSRSS".
-a Расширение
Задает библиотеку DLL расширения по умолчанию. Значение по умолчанию — userexts. Не должно быть места после "a", а расширение .dll не должно быть включено. Дополнительные сведения и другие методы настройки этого по умолчанию см. в разделе "Загрузка библиотек DLL расширения отладчика".
-bonc
Если этот параметр указан, отладчик переходит в целевой объект сразу после начала сеанса. Это особенно полезно при подключении к серверу отладки, который в настоящее время не может быть разбит на целевой объект.
-c " команда "
Указывает начальную команду отладчика для запуска при запуске. Эта команда должна быть окружена кавычками. Несколько команд можно разделить точкой с запятой. (Если у вас есть длинный список команд, их может быть проще поместить в скрипт, а затем использовать параметр -c с командой $<, $, $><><, $$>< (Запуск файла скрипта).)
Если вы запускаете клиент отладки, эта команда должна быть предназначена для сервера отладки. Команды, относящиеся к клиенту, такие как Lsrcpath , не допускаются.
-cf " filename "
Указывает путь и имя файла скрипта. Этот файл скрипта выполняется сразу после запуска отладчика. Если имя файла содержит пробелы, оно должно быть заключено в кавычки. Если путь опущен, предполагается, что текущий каталог. Если параметр -cf не используется, файл ntsd.ini в текущем каталоге используется в качестве файла скрипта. Если файл не существует, ошибка не возникает. Дополнительные сведения см. в разделе "Использование файлов скриптов".
-cfr " filename "
Указывает путь и имя файла скрипта. Этот файл скрипта выполняется сразу после запуска отладчика и при перезапуске целевого объекта. Если имя файла содержит пробелы, оно должно быть заключено в кавычки. Если путь опущен, предполагается, что текущий каталог. Если файл не существует, ошибка не возникает. Дополнительные сведения см. в разделе "Использование файлов скриптов".
-cimp
Направляет CDB/NTSD, чтобы начать с неявной командной строки DbgSrv вместо явного процесса для выполнения. Этот параметр является клиентской стороной dbgsrv -pc.
-clines обводы
Задает приблизительное количество команд в журнале команд, к которым можно получить доступ во время удаленной отладки. Дополнительные сведения и другие способы изменения этого числа см. в разделе "Использование команд отладчика".
-d
Передает управление этим отладчиком в отладчик ядра. Если выполняется отладка CSRSS, это перенаправление элемента управления всегда активно, даже если -d не указан. (Этот параметр нельзя использовать во время удаленной отладки— используйте -ddefer вместо.) Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра. Этот параметр нельзя использовать в сочетании с параметром -ddefer или параметром -noio .
Обратите внимание , что при использовании WinDbg в качестве отладчика ядра многие знакомые функции WinDbg недоступны в этом сценарии. Например, нельзя использовать окно "Локальные", окно "Дизассембли" или окно "Стек вызовов", а также выполнить шаги по исходному коду. Это связано с тем, что WinDbg выступает только в качестве средства просмотра для отладчика (NTSD или CDB), работающего на целевом компьютере.
-ddefer
Передает управление этим отладчиком в отладчик ядра, если клиент отладки не подключен. (Это вариант -d , который можно использовать с сервера отладки.) Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра. Этот параметр нельзя использовать в сочетании с параметром -d или параметром -noio .
-e Событие
Сообщает отладчику, что произошло указанное событие. Этот параметр используется только при запуске отладчика программным способом.
-ee {masm|c++}
Задает средство оценки выражений по умолчанию. Если задан масм , будет использоваться синтаксис выражения MASM. При указании c++ синтаксис выражения C++ будет использоваться. Если параметр -ee опущен, синтаксис выражения MASM используется в качестве значения по умолчанию. Дополнительные сведения см. в статье об оценке выражений .
-failinc
Позволяет отладчику игнорировать любые сомнительные символы. При отладке мини-файла в режиме пользователя или в режиме ядра этот параметр также не позволит отладчику загружать все модули, образы которых невозможно сопоставить. Дополнительные сведения и другие методы управления этим процессом см. в SYMOPT_EXACT_SYMBOLS.
-g
Игнорирует начальную точку останова в целевом приложении. Этот параметр приведет к продолжению работы целевого приложения после запуска или подключения CDB к нему, если не задана другая точка останова. Дополнительные сведения см. в разделе "Начальная точка останова".
-G
Игнорирует окончательную точку останова при завершении процесса. По умолчанию CDB останавливается во время запуска образа. Этот параметр приведет к тому, что CDB немедленно завершает работу, когда дочерний элемент завершает работу. Это имеет тот же эффект, что и ввод sxd epr команды. Дополнительные сведения см. в разделе "Управление исключениями и событиями".
-hd
Указывает, что отладочная куча не должна использоваться. Дополнительные сведения см. в статье отладка процесса пользовательского режима с помощью CDB .
-я ImagePath
Указывает расположение исполняемых файлов, создающих ошибку. Если путь содержит пробелы, он должен быть заключен в кавычки.
-iae
Устанавливает CDB в качестве отладчика postmortem. Дополнительные сведения см. в разделе "Включение отладки postmortem".
Если это действие выполнено успешно, сообщение не отображается; Если ошибка завершается ошибкой, отображается сообщение об ошибке.
Параметр -iae не должен использоваться с другими параметрами. Эта команда на самом деле не запустит CDB.
-iaec KeyString
Устанавливает CDB в качестве отладчика postmortem. Содержимое KeyString будет добавлено в конец раздела реестра AeDebug . Если KeyString содержит пробелы, он должен быть заключен в кавычки. Дополнительные сведения см. в разделе "Включение отладки postmortem".
Если это действие выполнено успешно, сообщение не отображается; Если ошибка завершается ошибкой, отображается сообщение об ошибке.
Параметр -iaec не должен использоваться с другими параметрами. Эта команда на самом деле не запустит CDB.
-isd
Включает флаг CREATE_IGNORE_SYSTEM_DEFAULT для любых создания процессов.
-Ме KeyString
Регистрирует удаленное взаимодействие отладчика в качестве типа URL-адреса, чтобы пользователи могли автоматически запускать удаленный клиент отладчика с URL-адресом. KeyString имеет формат remdbgeng://RemotingOption
. RemotingOption — это строка, определяющая транспортный протокол, как определено в разделе "Активация клиента отладки". Если это действие выполнено успешно, сообщение не отображается; Если ошибка завершается ошибкой, отображается сообщение об ошибке.
Параметр -iu не должен использоваться с другими параметрами. Эта команда на самом деле не запустит CDB.
-kqm
Запускает CDB/NTSD в тихом режиме.
-обводы
Включает отладку исходной строки. Если этот параметр опущен, команда .line (toggle Source Line Support) должна быть использована, прежде чем будет разрешена отладка источника. Другие методы управления этим, см . в SYMOPT_LOAD_LINES.
-log{a|au|o|ou} LogFile
Начинает ведение журнала в файл журнала. Если указанный файл уже существует, он будет перезаписан, если используется логотип -, или выходные данные будут добавлены в файл, если используется -loga. Параметры -logau и -logou работают аналогично -loga и -logo соответственно, за исключением того, что файл журнала является файлом Юникода. Дополнительные сведения см. в разделе "Сохранение файла журнала в CDB".
-myob
Если существует несоответствие версий с dbghelp.dll, отладчик продолжит выполняться. (Без переключателя -myob это считается неустранимой ошибкой.)
-n
Шумная загрузка символов: включает подробные выходные данные обработчика символов. Дополнительные сведения и другие методы управления этим процессом см . в SYMOPT_DEBUG.
-netsyms {да|нет}
Разрешить или запретить загрузку символов из сетевого пути.
-noinh
Запрещает процессам, созданным отладчиком, наследовать дескриптор от отладчика. Другие методы управления этим процессом см. в разделе Отладка процесса пользовательского режима с помощью CDB.
-noio
Предотвращает использование сервера отладки для входных или выходных данных. Входные данные будут приниматься только из клиента отладки (плюс любая исходная команда или скрипт команды, указанный параметром командной строки -c ).
Все выходные данные будут перенаправлены клиенту отладки. Если NTSD используется для сервера, окно консоли не будет создано вообще. Дополнительные сведения см. в разделе "Активация сервера отладки". Этот параметр нельзя использовать в сочетании с параметром -d или параметром -ddefer .
-noshell
Запрещает все команды .shell . Это запрет будет длиться до тех пор, пока отладчик запущен, даже если начинается новый сеанс отладки. Дополнительные сведения и другие способы отключения команд .shell см. в разделе "Использование команд оболочки".
-nosqm
Отключает сбор и отправку данных телеметрии.
-o
Отладка всех процессов, запущенных целевым приложением (дочерними процессами). По умолчанию процессы, созданные при отладке, будут выполняться как обычно. Другие методы управления этим процессом см. в разделе Отладка процесса пользовательского режима с помощью CDB.
-p PiD
Указывает идентификатор десятичного процесса для отладки. Используется для отладки процесса, который уже запущен. Дополнительные сведения см. в разделе Отладка процесса пользовательского режима с помощью CDB.
-pb
Запрещает отладчику запрашивать начальный разрыв при присоединении к целевому процессу. Это может быть полезно, если приложение уже приостановлено или если вы хотите избежать создания потока останова в целевом объекте.
-pd
Приводит к тому, что целевое приложение не будет завершено в конце сеанса отладки. Дополнительные сведения см. в разделе "Завершение сеанса отладки" в CDB .
-pe
Указывает, что целевое приложение уже отлаживается. Дополнительные сведения см. в статье "Повторное присоединение к целевому приложению ".
-pn Имя
Указывает имя процесса для отладки. (Это имя должно быть уникальным.) Используется для отладки процесса, который уже запущен.
-pr
Вызывает отладчик запустить целевой процесс, запущенный при подключении к нему. Это может быть полезно, если приложение уже приостановлено, и вы хотите возобновить выполнение.
-psn Имя службы
Указывает имя службы, содержащейся в процессе отладки. Используется для отладки процесса, который уже запущен.
-точка Товары второго сорта
Указывает время ожидания останова в секундах. Значение по умолчанию равно 30. Дополнительные сведения см. в разделе "Управление целевым объектом ".
-pv
Указывает, что отладчик должен подключаться к целевому процессу, неисключаемо. Дополнительные сведения см. в разделе "Невиновная отладка" (режим пользователя).
-pvr
Работает как -pv , за исключением того, что целевой процесс не приостановлен.
-QR Сервер
Выводит список всех серверов отладки, работающих на указанном сетевом сервере. Двойная обратная косая черта (\) предыдущего сервера является необязательным. Дополнительные сведения см. в статье "Поиск серверов отладки".
Параметр -QR нельзя использовать с другими параметрами. Эта команда на самом деле не запустит CDB.
-r BreakErrorLevel
Указывает уровень ошибки, который приведет к разрыву целевого объекта в отладчике. Это десятичное число, равное 0, 1, 2 или 3. Возможны следующие значения:
Значение | Константа | Значение |
---|---|---|
0 |
NONE |
Не прерывайте никаких ошибок. |
1 |
ОШИБКА |
Разрыв событий отладки на уровне ОШИБКИ. |
2 |
MINORERROR |
Разрыв событий отладки на уровне MINORERROR и ERROR. |
3 |
ПРЕДУПРЕЖДЕНИЕ |
Прерывание событий отладки НА УРОВНЕ ПРЕДУПРЕЖДЕНИЯ, MINORERROR и ОШИБОК. |
Этот уровень ошибок имеет значение только в проверенных сборках Microsoft Windows. Значение по умолчанию равно 1. Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803.
-robp
Это позволяет CDB задать точку останова на странице памяти только для чтения. (По умолчанию такая операция завершается ошибкой.)
-s
Отключает отложенную загрузку символов. Это приведет к замедлению запуска процесса. Дополнительные сведения и другие методы управления этим процессом см. в SYMOPT_DEFERRED_LOADS.
-sdce
Позволяет отладчику отображать диалоговые окна доступа к файлам во время загрузки символов. Дополнительные сведения и другие методы контроля см. в SYMOPT_FAIL_CRITICAL_ERRORS.
-ses
Позволяет отладчику выполнять строгую оценку всех файлов символов и игнорировать любые сомнительные символы. Дополнительные сведения и другие методы управления этим процессом см. в SYMOPT_EXACT_SYMBOLS.
-sflags 0x Число
Задает все параметры обработчика символов одновременно. Число должно быть шестнадцатеричным числом, префиксом 0x - десятичное значение без 0x разрешено, но параметры символов являются двоичными флагами, поэтому рекомендуется шестнадцатеричное значение. Этот параметр следует использовать с осторожностью, так как он переопределит все значения обработчика символов по умолчанию. Дополнительные сведения см. в разделе "Параметры символов".
-sicv
Вызывает пропуск записи CV обработчика символов. Дополнительные сведения и другие методы управления этим процессом см. в SYMOPT_IGNORE_CVREC.
-Грехи
Позволяет отладчику игнорировать путь символа и переменные среды пути к исполняемому изображению. Дополнительные сведения см. в SYMOPT_IGNORE_NT_SYMPATH.
-snc
Приводит к отключению отладчика перевода C++. Дополнительные сведения и другие методы управления этим процессом см . в SYMOPT_NO_CPP.
-snul
Отключает автоматическую загрузку символов для неквалифицированных имен. Дополнительные сведения и другие методы управления этим процессом см . в SYMOPT_NO_UNQUALIFIED_LOADS.
-srcpath SourcePath
Указывает путь поиска исходного файла. Разделите несколько путей с запятой (;). Если путь содержит пробелы, он должен быть заключен в кавычки. Дополнительные сведения и другие способы изменения этого пути см. в разделе "Исходный путь".
-глоток
Вызывает обработчик символов для поиска открытой таблицы символов во время каждого поиска символов. Дополнительные сведения и другие методы управления этим процессом см. в SYMOPT_AUTO_PUBLICS.
-t PrintErrorLevel
Указывает уровень ошибки, который приведет к отображению отладчика сообщения об ошибке. Это десятичное число, равное 0, 1, 2 или 3. Возможны следующие значения:
Значение | Константа | Значение |
---|---|---|
0 |
NONE |
Не отображайте никаких ошибок. |
1 |
ОШИБКА |
Отображение событий отладки на уровне ОШИБКИ. |
2 |
MINORERROR |
Отображение событий отладки на уровне MINORERROR и ERROR. |
3 |
ПРЕДУПРЕЖДЕНИЕ |
Отображение событий отладки на уровне ПРЕДУПРЕЖДЕНИЙ, MINORERROR и ОШИБОК. |
Этот уровень ошибок имеет значение только в проверенных сборках Microsoft Windows. Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803. Значение по умолчанию равно 1.
-v
Включает подробные выходные данные отладчика.
-Версия
Выводит строку версии отладчика.
-тональная частота
Включает параметры ApplicationVerifier по умолчанию.
-тональная частота: <Выбирает>
Включает заданные параметры ApplicationVerifier.
-w
Указывает отладку 16-разрядных приложений в отдельном VDM.
-будить PiD
Вызывает завершение режима спящего режима для отладчика пользовательского режима, идентификатор процесса которого указан PID. Эта команда должна быть выдана на целевом компьютере во время спящего режима. Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра.
Параметр -wake не должен использоваться с другими параметрами. Эта команда на самом деле не запустит CDB.
-x{e|d|n|i} Exception
Управляет поведением отладчика при возникновении указанного события. Исключение может быть либо номером исключения, либо кодом события. Этот параметр можно указать несколько раз для управления различными событиями. Дополнительные сведения и другие методы управления этими параметрами см. в разделе "Управление исключениями и событиями ".
-x
Отключает первый шанс перерыва при исключении нарушений доступа. Второе вхождение нарушения доступа будет нарушено в отладчик. Это то же самое, что и -xd av.
-y SymbolPath
Указывает путь поиска символов. Разделите несколько путей с запятой (;). Если путь содержит пробелы, он должен быть заключен в кавычки. Дополнительные сведения и другие способы изменения этого пути см. в разделе "Путь к символам".
-z DumpFile
Указывает имя файла аварийного дампа для отладки. Если путь и имя файла содержат пробелы, это должно быть окружено кавычками. Можно одновременно открыть несколько файлов дампа, включив несколько параметров -z , за которыми следует другое значение DumpFile . Дополнительные сведения см. в разделе "Анализ файла дампа в режиме пользователя".
-zp PageFile
Указывает имя измененного файла страницы. Это полезно, если вы отладили файл дампа и хотите использовать команду .pagein (Page In Memory). Нельзя использовать -zp со стандартным файлом страницы Windows— можно использовать только специально измененные файлы страниц.
выполнимый
Задает командную строку исполняемого процесса. Используется для запуска нового процесса и отладки. Это должен быть окончательный элемент в командной строке. Весь текст после того, как имя исполняемого файла передается исполняемому файлу в качестве строки аргумента.
-?
Отображает текст справки командной строки.
При запуске отладчика с start | Запустите или из окна командной строки укажите аргументы для целевого приложения после имени файла приложения. Например:
cdb myexe arg1arg2