CDB Command-Line Options

Les utilisateurs de CDB ou NTSD pour la première fois doivent commencer par la section Débogage à l’aide de CDB et NTSD .

La ligne de commande CDB utilise la syntaxe suivante :

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

La syntaxe de ligne de commande NTSD est identique à celle de 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 -?

La seule différence entre NTSD et CDB est que NTSD génère une nouvelle fenêtre de console tandis que CDB hérite de la fenêtre à partir de laquelle il a été appelé. Étant donné que la commande start peut également être utilisée pour générer une nouvelle fenêtre de console, les deux constructions suivantes donnent les mêmes résultats :

start cdb [parameters]
ntsd [parameters]

Les descriptions des options de ligne de commande CDB et NTSD suivent. Seules les options -remote, -server, -g et -G respectent la casse. Le trait d’union initial peut être remplacé par une barre oblique (/). Les options qui ne prennent pas de paramètres supplémentaires peuvent être concaténées. Ainsi, cdb -o -d -G -g winmine peut être écrit en tant que cdb -odGg winmine.

Si l’option -remote ou -server est utilisée, elle doit apparaître avant toutes les autres options de la ligne de commande. Si un exécutable est spécifié, il doit apparaître en dernier sur la ligne de commande ; tout texte après que le nom de l’exécutable est passé au programme exécutable en tant que ses propres paramètres de ligne de commande.

Paramètres

-serverServerTransport
Crée un serveur de débogage accessible à d’autres débogueurs. Pour obtenir une explication des valeurs possibles de ServerTransport , consultez Activation d’un serveur de débogage. Lorsque ce paramètre est utilisé, il doit s’agir des premiers paramètres de la ligne de commande.

-remoteClientTransport
Crée un client de débogage et se connecte à un serveur de débogage qui est déjà en cours d’exécution. Pour obtenir une explication des valeurs ClientTransport possibles, consultez Activation d’un client de débogage. Lorsque ce paramètre est utilisé, il doit s’agir des premiers paramètres de la ligne de commande.

-prémoteSmartClientTransport
Crée un client intelligent et se connecte à un serveur de processus qui est déjà en cours d’exécution. Pour obtenir une explication des valeurs SmartClientTransport possibles, consultez Activation d’un client intelligent.

-2
Si l’application cible est une application console, cette option la fait vivre dans une nouvelle fenêtre de console. (La valeur par défaut est qu’une application console cible partage la fenêtre avec CDB ou NTSD.)

--
Débogue le sous-système CSRSS (Client Server Run-Time Subsystem). Pour plus d’informations, consultez Débogage de CSRSS.

-aExtension
Définit la DLL d’extension par défaut. La valeur par défaut est userexts. Il ne doit pas y avoir d’espace après « a », et l’extension .dll ne doit pas être incluse. Pour plus d’informations et pour d’autres méthodes permettant de définir cette valeur par défaut, consultez Chargement des DLL d’extension de débogueur.

-bonc
Si cette option est spécifiée, le débogueur s’insère dans la cible dès le début de la session. Cela est particulièrement utile lors de la connexion à un serveur de débogage qui n’est peut-être pas actuellement rompu dans la cible.

-c « command »
Spécifie la commande initiale du débogueur à exécuter au démarrage. Cette commande doit être entourée de guillemets. Plusieurs commandes peuvent être séparées par des points-virgules. (Si vous avez une longue liste de commandes, il peut être plus facile de les placer dans un script, puis d’utiliser l’option -c avec la commande $<, $><, $><, $$>< (Exécuter le fichier de script). )

Si vous démarrez un client de débogage, cette commande doit être destinée au serveur de débogage. Les commandes spécifiques au client telles que .lsrcpath ne sont pas autorisées.

-cf « filename »
Spécifie le chemin d’accès et le nom d’un fichier de script. Ce fichier de script est exécuté dès que le débogueur est démarré. Si le nom de fichier contient des espaces, il doit être placé entre guillemets. Si le chemin d’accès est omis, le répertoire actif est supposé. Si l’option -cf n’est pas utilisée, le fichier ntsd.ini dans le répertoire actif est utilisé comme fichier de script. Si le fichier n’existe pas, aucune erreur ne se produit. Pour plus d’informations, consultez Utilisation de fichiers de script.

-cfr « filename »
Spécifie le chemin d’accès et le nom d’un fichier de script. Ce fichier de script est exécuté dès que le débogueur est démarré et chaque fois que la cible est redémarrée. Si le nom de fichier contient des espaces, il doit être placé entre guillemets. Si le chemin d’accès est omis, le répertoire actif est supposé. Si le fichier n’existe pas, aucune erreur ne se produit. Pour plus d’informations, consultez Utilisation de fichiers de script.

-cimp
Indique à CDB/NTSD de commencer par une ligne de commande implicite DbgSrv au lieu d’un processus explicite à exécuter. Cette option est le côté client de dbgsrv -pc.

-clines lignes
Définit le nombre approximatif de commandes dans l’historique des commandes qui sont accessibles pendant le débogage à distance. Pour plus d’informations et pour connaître d’autres façons de modifier ce nombre, consultez Utilisation de commandes de débogueur.

-d
Transmet le contrôle de ce débogueur au débogueur du noyau. Si vous déboguez CSRSS, cette redirection de contrôle est toujours active, même si -d n’est pas spécifié. (Cette option ne peut pas être utilisée pendant le débogage à distance .- utilisez -ddefer à la place.) Pour plus d’informations, consultez Contrôle du débogueur User-Mode à partir du débogueur de noyau . Cette option ne peut pas être utilisée conjointement avec l’option -ddefer ou l’option -noio .

Note Si vous utilisez WinDbg comme débogueur de noyau, la plupart des fonctionnalités familières de WinDbg ne sont pas disponibles dans ce scénario. Par exemple, vous ne pouvez pas utiliser la fenêtre Locals, la fenêtre Désassemblement ou la fenêtre Pile des appels, et vous ne pouvez pas parcourir le code source. En effet, WinDbg agit uniquement en tant que visionneuse pour le débogueur (NTSD ou CDB) en cours d’exécution sur l’ordinateur cible.

-ddefer
Transmet le contrôle de ce débogueur au débogueur du noyau, sauf si un client de débogage est connecté. (Il s’agit d’une variante de -d qui peut être utilisée à partir d’un serveur de débogage.) Pour plus d’informations, consultez Contrôle du débogueur User-Mode à partir du débogueur de noyau . Cette option ne peut pas être utilisée conjointement avec l’option -d ou l’option -noio .

Événement -e
Signale au débogueur que l’événement spécifié s’est produit. Cette option est utilisée uniquement lors du démarrage du débogueur par programme.

-ee {masm|c++}
Définit l’évaluateur d’expression par défaut. Si masm est spécifié, la syntaxe de l’expression MASM est utilisée. Si c++ est spécifié, la syntaxe de l’expression C++ est utilisée. Si l’option -ee est omise , la syntaxe de l’expression MASM est utilisée comme valeur par défaut. Pour plus d’informations, consultez Évaluation des expressions .

-failinc
Entraîne le débogueur à ignorer tous les symboles douteux. Lors du débogage d’un fichier minidump en mode utilisateur ou en mode noyau, cette option empêche également le débogueur de charger tous les modules dont les images ne peuvent pas être mappées. Pour plus d’informations et pour connaître les autres méthodes de contrôle, consultez SYMOPT_EXACT_SYMBOLS.

-G
Ignore le point d’arrêt initial dans l’application cible. Cette option entraîne la poursuite de l’exécution de l’application cible après son démarrage ou l’attachement de CDB à celle-ci, sauf si un autre point d’arrêt a été défini. Pour plus d’informations, consultez Point d’arrêt initial .

-G
Ignore le point d’arrêt final à l’arrêt du processus. Par défaut, CDB s’arrête pendant le processus d’exécution de l’image. Cette option entraîne la fermeture immédiate de CDB lorsque l’enfant se termine. Cela a le même effet que l’entrée de la commande sxd epr. Pour plus d’informations, consultez Contrôle des exceptions et des événements.

-Hd
Spécifie que le tas de débogage ne doit pas être utilisé. Pour plus d’informations, consultez Débogage d’un processus User-Mode à l’aide de CDB .

-iImagePath
Spécifie l’emplacement des exécutables qui ont généré l’erreur. Si le chemin contient des espaces, il doit être placé entre guillemets.

-Iae
Installe CDB en tant que débogueur post-mortem. Pour plus d’informations, consultez Activation du débogage post-mortem.

Si cette action réussit, aucun message n’est affiché ; en cas d’échec, un message d’erreur s’affiche.

Le paramètre -iae ne doit pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas réellement CDB.

-iaecKeyString
Installe CDB en tant que débogueur post-mortem. Le contenu de KeyString sera ajouté à la fin de la clé de Registre AeDebug . Si KeyString contient des espaces, il doit être placé entre guillemets. Pour plus d’informations, consultez Activation du débogage post-mortem.

Si cette action réussit, aucun message n’est affiché ; en cas d’échec, un message d’erreur s’affiche.

Le paramètre -iaec ne doit pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas réellement CDB.

-Dsi
Active l’indicateur CREATE_IGNORE_SYSTEM_DEFAULT pour toutes les créations de processus.

-iuKeyString
Inscrit la communication à distance du débogueur en tant que type d’URL afin que les utilisateurs puissent lancer automatiquement un client distant de débogueur avec une URL. KeyString a le format remdbgeng://RemotingOption. RemotingOption est une chaîne qui définit le protocole de transport tel que défini dans la rubrique Activation d’un client de débogage. Si cette action réussit, aucun message n’est affiché ; en cas d’échec, un message d’erreur s’affiche.

Le paramètre -iu ne doit pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas réellement CDB.

-kqm
Démarre CDB/NTSD en mode silencieux.

-Lignes
Active le débogage de ligne source. Si cette option est omise, la commande .lines (Activer la prise en charge de la ligne source) doit être utilisée avant que le débogage source soit autorisé. Pour obtenir d’autres méthodes de contrôle, consultez SYMOPT_LOAD_LINES.

-log{a|au|o|ou} LogFile
Commence la journalisation des informations dans un fichier journal. Si le fichier spécifié existe déjà, il est remplacé si -logo est utilisé, ou la sortie est ajoutée au fichier si -loga est utilisé. Les options -logau et -logou fonctionnent respectivement comme -loga et -logo , sauf que le fichier journal est un fichier Unicode. Pour plus d’informations, consultez Conservation d’un fichier journal dans CDB.

-Myob
S’il existe une incompatibilité de version avec dbghelp.dll, le débogueur continuera à s’exécuter. (Sans le commutateur -myob , cela est considéré comme une erreur irrécupérable.)

-¡n
Chargement de symboles bruyants : active la sortie détaillée du gestionnaire de symboles. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_DEBUG.

-netsyms {yes|no}
Autoriser ou interdire le chargement de symboles à partir d’un chemin d’accès réseau.

-noinh
Empêche les processus créés par le débogueur d’hériter des handles du débogueur. Pour obtenir d’autres méthodes de contrôle, consultez Débogage d’un processus User-Mode à l’aide de CDB.

-noio
Empêche l’utilisation du serveur de débogage pour l’entrée ou la sortie. L’entrée ne sera acceptée qu’à partir du client de débogage (plus toute commande ou script de commande initiale spécifiée par l’option de ligne de commande -c ).

Toute la sortie est dirigée vers le client de débogage. Si NTSD est utilisé pour le serveur, aucune fenêtre de console n’est créée. Pour plus d’informations, consultez Activation d’un serveur de débogage. Cette option ne peut pas être utilisée conjointement avec l’option -d ou l’option -ddefer .

-noshell
Interdit toutes les commandes .shell . Cette interdiction dure tant que le débogueur est en cours d’exécution, même si une nouvelle session de débogage est démarrée. Pour plus d’informations et pour connaître d’autres façons de désactiver les commandes .shell , consultez Utilisation des commandes shell.

-nosqm
Désactive la collecte et le chargement des données de télémétrie.

-O
Débogue tous les processus lancés par l’application cible (processus enfants). Par défaut, les processus créés par celui que vous déboguez s’exécutent comme ils le font normalement. Pour obtenir d’autres méthodes de contrôle, consultez Débogage d’un processus User-Mode à l’aide de CDB.

-pPID
Spécifie l’ID de processus décimal à déboguer. Il est utilisé pour déboguer un processus qui est déjà en cours d’exécution. Pour plus d’informations, consultez Débogage d’un processus User-Mode à l’aide de CDB.

-Pb
Empêche le débogueur de demander une introduction initiale lors de l’attachement à un processus cible. Cela peut être utile si l’application est déjà suspendue ou si vous souhaitez éviter de créer un thread d’arrêt dans la cible.

-pd
Empêche l’arrêt de l’application cible à la fin de la session de débogage. Pour plus d’informations, consultez Fin d’une session de débogage dans CDB .

-Pe
Indique que l’application cible est déjà en cours de débogage. Pour plus d’informations, consultez Ré-attachement à l’application cible .

-pnName
Spécifie le nom du processus à déboguer. (Ce nom doit être unique.) Il est utilisé pour déboguer un processus qui est déjà en cours d’exécution.

-Pr
Provoque le débogueur à démarrer le processus cible en cours d’exécution lorsqu’il s’y attache. Cela peut être utile si l’application est déjà suspendue et que vous souhaitez qu’elle reprenne l’exécution.

-psnServiceName
Spécifie le nom d’un service contenu dans le processus à déboguer. Il est utilisé pour déboguer un processus qui est déjà en cours d’exécution.

-ptSecondes
Spécifie le délai d’attente, en secondes. La valeur par défaut est 30. Pour plus d’informations, consultez Contrôle de la cible .

-Pv
Spécifie que le débogueur doit s’attacher au processus cible de manière non invasive. Pour plus d’informations, consultez Débogage non invasif (mode utilisateur).

-Pvr
Fonctionne comme -pv , sauf que le processus cible n’est pas suspendu.

-SERVEUR QR
Répertorie tous les serveurs de débogage s’exécutant sur le serveur réseau spécifié. La double barre oblique inverse (\) qui précède Server est facultative. Pour plus d’informations, consultez Recherche de serveurs de débogage .

Le paramètre -QR ne peut pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas réellement CDB.

-rBreakErrorLevel
Spécifie le niveau d’erreur qui provoquera l’arrêt de la cible dans le débogueur. Il s’agit d’un nombre décimal égal à 0, 1, 2 ou 3. Les valeurs possibles sont les suivantes :

Valeur Constant Signification

0

Aucune

Ne vous arrêtez pas en cas d’erreur.

1

ERROR

Arrêt sur les événements de débogage de niveau ERREUR.

2

MINORERROR

Arrêtez sur les événements de débogage de niveau MINORERROR et ERROR.

3

WARNING

Arrêtez les événements de débogage de niveau WARNING, MINORERROR et ERROR.

Ce niveau d’erreur n’a de sens que dans les builds vérifiées de Microsoft Windows. La valeur par défaut est 1. Les builds vérifiées étaient disponibles sur les versions antérieures de Windows, avant Windows 10 version 1803.

-robp
Cela permet à CDB de définir un point d’arrêt sur une page mémoire en lecture seule. (La valeur par défaut est l’échec d’une telle opération.)

-s
Désactive le chargement de symboles paresseux. Cela ralentit le démarrage du processus. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_DEFERRED_LOADS.

-sdce
Provoque l’affichage par le débogueur des boîtes de dialogue d’erreur d’accès aux fichiers lors du chargement du symbole. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_FAIL_CRITICAL_ERRORS.

-ses
Fait en sorte que le débogueur effectue une évaluation stricte de tous les fichiers de symboles et ignore tous les symboles douteux. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_EXACT_SYMBOLS.

-sflags 0xNumber
Définit toutes les options de gestionnaire de symboles à la fois. Nombre doit être un nombre hexadécimal préfixé par 0x . Une décimale sans le 0x est autorisée, mais les options de symbole sont des indicateurs binaires et, par conséquent, hexadécimal est recommandé. Cette option doit être utilisée avec précaution, car elle remplacera toutes les valeurs par défaut du gestionnaire de symboles. Pour plus d’informations, consultez Définition des options de symbole.

-sicv
Fait que le gestionnaire de symboles ignore l’enregistrement CV. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_IGNORE_CVREC.

-Péchés
Fait que le débogueur ignore les variables d’environnement du chemin du symbole et du chemin d’accès de l’image exécutable. Pour plus d’informations, consultez SYMOPT_IGNORE_NT_SYMPATH.

-Snc
Entraîne la désactivation de la traduction C++ par le débogueur. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_NO_CPP.

-snul
Désactive le chargement automatique des symboles pour les noms non qualifiés. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_NO_UNQUALIFIED_LOADS.

-srcpathSourcePath
Spécifie le chemin de recherche du fichier source. Séparez plusieurs chemins par un point-virgule (;). Si le chemin contient des espaces, il doit être placé entre guillemets. Pour plus d’informations et pour connaître d’autres façons de modifier ce chemin d’accès, consultez Chemin d’accès source.

-Sup
Oblige le gestionnaire de symboles à rechercher dans la table de symboles publics lors de chaque recherche de symboles. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_AUTO_PUBLICS.

-tPrintErrorLevel
Spécifie le niveau d’erreur qui entraînera l’affichage d’un message d’erreur par le débogueur. Il s’agit d’un nombre décimal égal à 0, 1, 2 ou 3. Les valeurs possibles sont les suivantes :

Valeur Constant Signification

0

Aucune

N’affichez aucune erreur.

1

ERROR

Afficher les événements de débogage de niveau ERREUR.

2

MINORERROR

Afficher les événements de débogage de niveau MINORERROR et ERROR.

3

WARNING

Affichez les événements de débogage de niveau WARNING, MINORERROR et ERROR.

Ce niveau d’erreur n’a de sens que dans les builds vérifiées de Microsoft Windows. Les builds vérifiées étaient disponibles sur les versions antérieures de Windows avant Windows 10, version 1803. La valeur par défaut est 1.

-C
Active la sortie détaillée du débogueur.

-Version
Imprime la chaîne de version du débogueur.

-Vf
Active les paramètres ApplicationVerifier par défaut.

-vf :<opts>
Active les paramètres ApplicationVerifier donnés.

-W
Spécifie de déboguer des applications 16 bits dans un VDM distinct.

-wakePID
Entraîne la fin du mode veille pour le débogueur en mode utilisateur dont l’ID de processus est spécifié par PID. Cette commande doit être émise sur l’ordinateur cible pendant le mode veille. Pour plus d’informations, consultez Contrôle du débogueur de User-Mode à partir du débogueur de noyau .

Le paramètre -wake ne doit pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas la base de données CDB.

-x{e|d|n|i} Exception
Contrôle le comportement du débogueur lorsque l’événement spécifié se produit. L’exception peut être un numéro d’exception ou un code d’événement. Vous pouvez spécifier cette option plusieurs fois pour contrôler différents événements. Pour plus d’informations et pour d’autres méthodes de contrôle de ces paramètres, consultez Contrôle des exceptions et des événements .

-X
Désactive l’interruption de la première chance sur les exceptions de violation d’accès. La deuxième occurrence d’une violation d’accès s’insère dans le débogueur. Il s’agit de la même chose que -xd av.

-ySymbolPath
Spécifie le chemin de recherche de symboles. Séparez plusieurs chemins d’accès par un point-virgule (;). Si le chemin contient des espaces, il doit être placé entre guillemets. Pour plus d’informations et pour connaître d’autres façons de modifier ce chemin d’accès, consultez Chemin du symbole.

-zDumpFile
Spécifie le nom d’un fichier de vidage sur incident à déboguer. Si le chemin d’accès et le nom de fichier contiennent des espaces, celui-ci doit être entouré de guillemets. Il est possible d’ouvrir plusieurs fichiers de vidage à la fois en incluant plusieurs options -z , chacune suivie d’une valeur DumpFile différente. Pour plus d’informations, consultez Analyse d’un fichier de vidage User-Mode.

-zpPageFile
Spécifie le nom d’un fichier de page modifié. Cela est utile si vous déboguez un fichier de vidage et que vous souhaitez utiliser la commande .pagein (page en mémoire). Vous ne pouvez pas utiliser -zp avec un fichier de page Windows standard. Seuls les fichiers de page spécialement modifiés peuvent être utilisés.

Exécutable
Spécifie la ligne de commande d’un processus exécutable. Cela permet de lancer un nouveau processus et de le déboguer. Il doit s’agir de l’élément final de la ligne de commande. Tout le texte après que le nom de l’exécutable est passé à l’exécutable en tant que chaîne d’argument.

-?
Affiche le texte d’aide de ligne de commande.

Lorsque vous démarrez le débogueur à partir de Démarrer | Exécutez ou à partir d’une fenêtre d’invite de commandes, spécifiez les arguments de l’application cible après le nom de fichier de l’application. Exemple :

cdb myexe arg1arg2