Compartilhar via


Opções de linha de comando do CDB

Os usuários iniciantes de CDB ou NTSD devem começar com a seção Depuração usando CDB e NTSD .

A linha de comando do CDB usa a seguinte sintaxe:

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 -?

A sintaxe da linha de comando NTSD é idêntica à do 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 -?

A única diferença entre NTSD e CDB é que o NTSD gera uma nova janela de console, enquanto o CDB herda a janela da qual foi invocado. Como o comando start também pode ser usado para gerar uma nova janela do console, as duas construções a seguir terão os mesmos resultados:

start cdb [parameters]
ntsd [parameters]

Seguem as descrições das opções de linha de comando CDB e NTSD. Apenas as opções -remote, -server, -g e -G diferenciam maiúsculas de minúsculas. O hífen inicial pode ser substituído por uma barra (/). Opções que não recebem nenhum parâmetro adicional podem ser concatenadas - então cdb -o -d -G -g winmine pode ser escrito como cdb -odGg winmine.

Se a opção -remote ou -server for usada, ela deverá aparecer antes de qualquer outra opção na linha de comando. Se um executável for especificado, ele deverá aparecer por último na linha de comando; qualquer texto após o nome do executável é passado para o programa executável como seus próprios parâmetros de linha de comando.

Parâmetros

-servidor Transporte de servidor
Cria um servidor de depuração que pode ser acessado por outros depuradores. Para obter uma explicação dos possíveis valores de ServerTransport , consulte Ativando um servidor de depuração. Quando esse parâmetro é usado, ele deve ser o primeiro parâmetro na linha de comando.

-remoto Transporte de cliente
Cria um cliente de depuração e se conecta a um servidor de depuração que já está em execução. Para obter uma explicação dos possíveis valores de ClientTransport , consulte Ativando um cliente de depuração. Quando esse parâmetro é usado, ele deve ser o primeiro parâmetro na linha de comando.

-premoto SmartClientTransport
Cria um cliente inteligente e se conecta a um servidor de processo que já está em execução. Para obter uma explicação dos possíveis valores de SmartClientTransport , consulte Ativando um Smart Client.

-algarismo
Se o aplicativo de destino for um aplicativo de console, essa opção fará com que ele resida em uma nova janela de console. (O padrão é que um aplicativo de console de destino compartilhe a janela com CDB ou NTSD.)

--
Depura o CSRSS (Subsistema de Tempo de Execução do Servidor Cliente). Para obter detalhes, consulte Depurando CSRSS.

-um Extensão
Define a DLL de extensão padrão. O padrão é userexts. Não deve haver espaço após o "a" e a extensão .dll não deve ser incluída. Para obter detalhes e outros métodos de definir esse padrão, consulte Carregando DLLs de extensão do depurador.

-bonc
Se essa opção for especificada, o depurador entrará no destino assim que a sessão começar. Isso é especialmente útil ao se conectar a um servidor de depuração que pode não estar atualmente dividido no destino.

-c " comando "
Especifica o comando inicial do depurador a ser executado na inicialização. Esse comando deve ser colocado entre aspas. Vários comandos podem ser separados por ponto-e-vírgula. (Se você tiver uma lista de comandos longa, pode ser mais fácil colocá-los em um script e, em seguida, usar a opção -c com o comando $<, $><, $><, $$>< (Executar arquivo de script).)

Se você estiver iniciando um cliente de depuração, esse comando deverá ser destinado ao servidor de depuração. Comandos específicos do cliente, como .lsrcpath , não são permitidos.

-cf " nome do arquivo "
Especifica o caminho e o nome de um arquivo de script. Esse arquivo de script é executado assim que o depurador é iniciado. Se o nome do arquivo contiver espaços, ele deverá ser colocado entre aspas. Se o caminho for omitido, o diretório atual será assumido. Se a opção -cf não for usada, o arquivo ntsd.ini no diretório atual será usado como o arquivo de script. Se o arquivo não existir, nenhum erro ocorrerá. Para obter detalhes, consulte Usando arquivos de script.

-cfr " nome do arquivo "
Especifica o caminho e o nome de um arquivo de script. Esse arquivo de script é executado assim que o depurador é iniciado e sempre que o destino é reiniciado. Se o nome do arquivo contiver espaços, ele deverá ser colocado entre aspas. Se o caminho for omitido, o diretório atual será assumido. Se o arquivo não existir, nenhum erro ocorrerá. Para obter detalhes, consulte Usando arquivos de script.

-cimp
Direciona o CDB/NTSD para iniciar com uma linha de comando implícita DbgSrv em vez de um processo explícito a ser executado. Essa opção é o lado do cliente de dbgsrv -pc.

-Clines Linhas
Define o número aproximado de comandos no histórico de comandos que podem ser acessados durante a depuração remota. Para obter detalhes e outras maneiras de alterar esse número, consulte Usando comandos do depurador.

-d
Passa o controle desse depurador para o depurador de kernel. Se você estiver depurando o CSRSS, esse redirecionamento de controle sempre estará ativo, mesmo que -d não seja especificado. (Essa opção não pode ser usada durante a depuração remota – use -ddefer em vez disso.) Consulte Controlando o Depurador de Modo de Usuário do Depurador de Kernel para obter detalhes. Essa opção não pode ser usada em conjunto com a opção -ddefer ou a opção -noio .

Observação Se você usar o WinDbg como o depurador de kernel, muitos dos recursos familiares do WinDbg não estarão disponíveis neste cenário. Por exemplo, você não pode usar a janela Locais, a janela Desmontagem ou a janela Pilha de Chamadas e não pode percorrer o código-fonte. Isso ocorre porque o WinDbg está atuando apenas como um visualizador para o depurador (NTSD ou CDB) em execução no computador de destino.

-ddefer
Passa o controle desse depurador para o depurador de kernel, a menos que um cliente de depuração esteja conectado. (Essa é uma variação de -d que pode ser usada em um servidor de depuração.) Consulte Controlando o Depurador de Modo de Usuário do Depurador de Kernel para obter detalhes. Esta opção não pode ser usada em conjunto com a opção -d ou a opção -noio .

-e Acontecimento
Sinaliza ao depurador que o evento especificado ocorreu. Essa opção só é usada ao iniciar o depurador programaticamente.

-ee {masm|c++}
Define o avaliador de expressão padrão. Se masm for especificado, a sintaxe da expressão MASM será usada. Se c++ for especificado, a sintaxe da expressão C++ será usada. Se a opção -ee for omitida, a sintaxe da expressão MASM será usada como padrão. Consulte Avaliando expressões para obter detalhes.

-falha
Faz com que o depurador ignore quaisquer símbolos questionáveis. Ao depurar um arquivo de minidespejo no modo de usuário ou no modo kernel, essa opção também impedirá que o depurador carregue quaisquer módulos cujas imagens não possam ser mapeadas. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_EXACT_SYMBOLS.

-g
Ignora o ponto de interrupção inicial no aplicativo de destino. Essa opção fará com que o aplicativo de destino continue em execução depois que ele for iniciado ou o CDB for anexado a ele, a menos que outro ponto de interrupção tenha sido definido. Consulte Ponto de interrupção inicial para obter detalhes.

-G
Ignora o ponto de interrupção final no encerramento do processo. Por padrão, o CDB é interrompido durante o processo de execução da imagem. Essa opção fará com que o CDB saia imediatamente quando o filho for encerrado. Isso tem o mesmo efeito que inserir o comando sxd epr. Para obter mais informações, consulte Controlando exceções e eventos.

-disco rígido
Especifica que o heap de depuração não deve ser usado. Consulte Depurando um processo de modo de usuário usando CDB para obter detalhes.

-eu Caminho da imagem
Especifica o local dos executáveis que geraram a falha. Se o caminho contiver espaços, ele deverá ser colocado entre aspas.

-iae
Instala o CDB como o depurador post-mortem. Para obter detalhes, consulte Habilitando a depuração post-mortem.

Se essa ação for bem-sucedida, nenhuma mensagem será exibida; Se falhar, uma mensagem de erro será exibida.

O parâmetro -iae não deve ser usado com nenhum outro parâmetro. Este comando não iniciará o CDB.

-IAEC Sequência de chaves
Instala o CDB como o depurador post-mortem. O conteúdo de KeyString será acrescentado ao final da chave do Registro AeDebug . Se KeyString contiver espaços, ele deverá ser colocado entre aspas. Para obter detalhes, consulte Habilitando a depuração post-mortem.

Se essa ação for bem-sucedida, nenhuma mensagem será exibida; Se falhar, uma mensagem de erro será exibida.

O parâmetro -iaec não deve ser usado com nenhum outro parâmetro. Este comando não iniciará o CDB.

-isd
Ativa o sinalizador CREATE_IGNORE_SYSTEM_DEFAULT para qualquer criação de processo.

-Ui Sequência de chaves
Registra a comunicação remota do depurador como um tipo de URL para que os usuários possam iniciar automaticamente um cliente remoto do depurador com uma URL. KeyString tem o formato remdbgeng://RemotingOption. RemotingOption é uma cadeia de caracteres que define o protocolo de transporte, conforme definido no tópico Ativando um cliente de depuração. Se essa ação for bem-sucedida, nenhuma mensagem será exibida; Se falhar, uma mensagem de erro será exibida.

O parâmetro -iu não deve ser usado com nenhum outro parâmetro. Este comando não iniciará o CDB.

-kqm
Inicia o CDB/NTSD no modo silencioso.

-Linhas
Habilita a depuração da linha de origem. Se essa opção for omitida, o comando .lines (Alternar suporte à linha de origem) terá que ser usado antes que a depuração de origem seja permitida. Para outros métodos de controle disso, consulte SYMOPT_LOAD_LINES.

-log{a|au|o|ou} Arquivo de log
Começa a registrar informações em um arquivo de log. Se o arquivo especificado já existir, ele será substituído se -logo for usado ou a saída será anexada ao arquivo se -loga for usado. As opções -logau e -logou operam de forma semelhante a -loga e -logo , respectivamente, exceto que o arquivo de log é um arquivo Unicode. Para obter mais detalhes, consulte Mantendo um arquivo de log no CDB.

-Myob
Se houver uma incompatibilidade de versão com dbghelp.dll, o depurador continuará a ser executado. (Sem a opção -myob , isso é considerado um erro fatal.)

-n
Carregamento de símbolo ruidoso: habilita a saída detalhada do manipulador de símbolos. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_DEBUG.

-netsyms {sim | não}
Permitir ou proibir o carregamento de símbolos de um caminho de rede.

-noinh
Impede que os processos criados pelo depurador herdem identificadores do depurador. Para outros métodos de controle disso, consulte Depurando um processo de modo de usuário usando CDB.

-noio
Impede que o servidor de depuração seja usado para entrada ou saída. A entrada só será aceita do cliente de depuração (além de qualquer comando inicial ou script de comando especificado pela opção de linha de comando -c ).

Toda a saída será direcionada para o cliente de depuração. Se NTSD for usado para o servidor, nenhuma janela de console será criada. Para obter mais detalhes, consulte Ativando um servidor de depuração. Essa opção não pode ser usada em conjunto com a opção -d ou a opção -ddefer .

-noshell
Proíbe todos os comandos .shell . Essa proibição durará enquanto o depurador estiver em execução, mesmo que uma nova sessão de depuração seja iniciada. Para obter detalhes e outras maneiras de desabilitar comandos .shell , consulte Usando comandos do Shell.

-nosqm
Desabilita a coleta e o carregamento de dados de telemetria.

-o
Depura todos os processos iniciados pelo aplicativo de destino (processos filho). Por padrão, os processos criados por aquele que você está depurando serão executados normalmente. Para outros métodos de controle disso, consulte Depurando um processo de modo de usuário usando CDB.

-p PID
Especifica a ID do processo decimal a ser depurada. Isso é usado para depurar um processo que já está em execução. Para obter detalhes, consulte Depurando um processo de modo de usuário usando CDB.

-Pb
Impede que o depurador solicite uma interrupção inicial ao anexar a um processo de destino. Isso pode ser útil se o aplicativo já estiver suspenso ou se você quiser evitar a criação de um thread de interrupção no destino.

-Pd
Faz com que o aplicativo de destino não seja encerrado no final da sessão de depuração. Consulte Encerrando uma sessão de depuração no CDB para obter detalhes.

-Pe
Indica que o aplicativo de destino já está sendo depurado. Consulte Reanexando ao aplicativo de destino para obter detalhes.

-Pn Nome
Especifica o nome do processo a ser depurado. (Esse nome deve ser exclusivo.) Isso é usado para depurar um processo que já está em execução.

-Pr
Faz com que o depurador inicie o processo de destino em execução quando ele é anexado a ele. Isso pode ser útil se o aplicativo já estiver suspenso e você desejar que ele retome a execução.

-Psn Nome do serviço
Especifica o nome de um serviço contido no processo a ser depurado. Isso é usado para depurar um processo que já está em execução.

-pt Segundos
Especifica o tempo limite de interrupção, em segundos. O padrão é 30. Consulte Controlando o Destino para obter detalhes.

-Pv
Especifica que o depurador deve ser anexado ao processo de destino de forma não invasiva. Para obter detalhes, consulte Depuração não invasiva (modo de usuário).

-pvr
Funciona como -pv , exceto que o processo de destino não está suspenso.

-QR Servidor
Lista todos os servidores de depuração em execução no servidor de rede especificado. A barra invertida dupla (\) que precede o Servidor é opcional. Consulte Pesquisando servidores de depuração para obter detalhes.

O parâmetro -QR não pode ser usado com nenhum outro parâmetro. Este comando não iniciará o CDB.

-r BreakErrorLevel
Especifica o nível de erro que fará com que o destino entre no depurador. Este é um número decimal igual a 0, 1, 2 ou 3. Os valores possíveis são:

Valor Constante Significado

0

NONE

Não quebre em nenhum erro.

1

ERROR

Interrompa os eventos de depuração de nível ERROR.

2

ERRO MENOR

Interrompa os eventos de depuração de nível MINORERROR e ERROR.

3

WARNING

Interrompa os eventos de depuração de nível WARNING, MINORERROR e ERROR.

Esse nível de erro só tem significado em compilações verificadas do Microsoft Windows. O valor padrão é 1. As compilações verificadas estavam disponíveis em versões anteriores do Windows, antes do Windows 10, versão 1803.

-roubar
Isso permite que o CDB defina um ponto de interrupção em uma página de memória somente leitura. (O padrão é que essa operação falhe.)

-s
Desativa o carregamento lento de símbolos. Isso retardará a inicialização do processo. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_DEFERRED_LOADS.

-sdce
Faz com que o depurador exiba caixas de diálogo de erro de acesso a arquivos durante o carregamento do símbolo. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_FAIL_CRITICAL_ERRORS.

-Ses
Faz com que o depurador execute uma avaliação estrita de todos os arquivos de símbolo e ignore quaisquer símbolos questionáveis. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_EXACT_SYMBOLS.

-bandeiras 0x Número
Define todas as opções do manipulador de símbolos de uma só vez. O número deve ser um número hexadecimal prefixado com 0x - um decimal sem o 0x é permitido, mas as opções de símbolo são sinalizadores binários e, portanto, hexadecimal é recomendado. Essa opção deve ser usada com cuidado, pois substituirá todos os padrões do manipulador de símbolos. Para obter detalhes, consulte Configurando opções de símbolo.

-sicv
Faz com que o manipulador de símbolos ignore o registro de CV. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_IGNORE_CVREC.

-Pecados
Faz com que o depurador ignore o caminho do símbolo e as variáveis de ambiente do caminho da imagem executável. Para obter detalhes, consulte SYMOPT_IGNORE_NT_SYMPATH.

-snc
Faz com que o depurador desative a tradução C++. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_NO_CPP.

-nul
Desabilita o carregamento automático de símbolos para nomes não qualificados. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_NO_UNQUALIFIED_LOADS.

-srcpath Caminho de origem
Especifica o caminho de pesquisa do arquivo de origem. Separe vários caminhos com um ponto-e-vírgula (;). Se o caminho contiver espaços, ele deverá ser colocado entre aspas. Para obter detalhes e outras maneiras de alterar esse caminho, consulte Caminho de origem.

-Sup
Faz com que o manipulador de símbolos pesquise a tabela de símbolos públicos durante cada pesquisa de símbolos. Para obter detalhes e outros métodos de controle disso, consulte SYMOPT_AUTO_PUBLICS.

-t PrintErrorLevel
Especifica o nível de erro que fará com que o depurador exiba uma mensagem de erro. Este é um número decimal igual a 0, 1, 2 ou 3. Os valores possíveis são:

Valor Constante Significado

0

NONE

Não exiba nenhum erro.

1

ERROR

Exibir eventos de depuração de nível ERROR.

2

ERRO MENOR

Exibir eventos de depuração de nível MINORERROR e ERROR.

3

WARNING

Exiba eventos de depuração de nível WARNING, MINORERROR e ERROR.

Esse nível de erro só tem significado em compilações verificadas do Microsoft Windows. As compilações verificadas estavam disponíveis em versões anteriores do Windows antes do Windows 10, versão 1803. O valor padrão é 1.

-v
Habilita a saída detalhada do depurador.

-Versão
Imprime a cadeia de caracteres de versão do depurador.

-Vf
Habilita as configurações padrão do ApplicationVerifier.

-Vf: <Opta>
Habilita determinadas configurações do ApplicationVerifier.

-w
Especifica a depuração de aplicativos de 16 bits em um VDM separado.

-acordar PID
Faz com que o modo de suspensão termine para o depurador do modo de usuário cuja ID do processo é especificada pelo PID. Esse comando deve ser emitido na máquina de destino durante o modo de suspensão. Consulte Controlar o depurador de modo de usuário do depurador de kernel para obter mais informações.

O parâmetro -wake não deve ser usado com nenhum outro parâmetro. Este comando não iniciará o CDB.

-x{e|d|n|i} Exceção
Controla o comportamento do depurador quando o evento especificado ocorre. A exceção pode ser um número de exceção ou um código de evento. Você pode especificar essa opção várias vezes para controlar eventos diferentes. Consulte Controlando exceções e eventos para obter detalhes e outros métodos de controle dessas configurações.

-x
Desabilita a interrupção de primeira chance em exceções de violação de acesso. A segunda ocorrência de uma violação de acesso será interrompida no depurador. Isso é o mesmo que -xd av.

-y Caminho do símbolo
Especifica o caminho de pesquisa do símbolo. Separe vários caminhos com um ponto-e-vírgula (;). Se o caminho contiver espaços, ele deverá ser colocado entre aspas. Para obter detalhes e outras maneiras de alterar esse caminho, consulte Caminho do símbolo.

-z Dumpfile
Especifica o nome de um arquivo de despejo de memória a ser depurado. Se o caminho e o nome do arquivo contiverem espaços, isso deverá ser colocado entre aspas. É possível abrir vários arquivos de despejo de uma só vez, incluindo várias opções -z, cada uma seguida por um valor DumpFile diferente. Para obter detalhes, consulte Analisando um arquivo de despejo no modo de usuário.

-zp Arquivo de paginação
Especifica o nome de um arquivo de paginação modificado. Isso é útil se você estiver depurando um arquivo de despejo e quiser usar o comando .pagein (Página na memória ). Você não pode usar -zp com um arquivo de paginação padrão do Windows - apenas arquivos de paginação especialmente modificados podem ser usados.

executável
Especifica a linha de comando de um processo executável. Isso é usado para iniciar um novo processo e depurá-lo. Este deve ser o item final na linha de comando. Todo o texto após o nome do executável é passado para o executável como sua cadeia de caracteres de argumento.

-?
Exibe o texto de ajuda da linha de comando.

Quando você está iniciando o depurador em Iniciar | Executar ou em uma janela do Prompt de Comando, especifique argumentos para o aplicativo de destino após o nome do arquivo do aplicativo. Por exemplo:

cdb myexe arg1arg2