Options de ligne de commande CDB
Les utilisateurs de la première fois de CDB ou NTSD 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 elle a été appelée. Comme la commande start peut également être utilisée pour créer une nouvelle fenêtre de console, les deux constructions suivantes donneront 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 .- donc cdb -o -d -G -g winmine peut être écrite en tant que cdb -odGg winmine.
Si l’option -remote ou -server est utilisée, elle doit apparaître avant toute autre option sur 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 transmis au programme exécutable comme ses propres paramètres de ligne de commande.
Paramètres
-serveur ServerTransport
Crée un serveur de débogage accessible par d’autres débogueurs. Pour obtenir une explication des valeurs ServerTransport possibles, 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.
-lointain ClientTransport
Crée un client de débogage et se connecte à un serveur de débogage 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.
-premote SmartClientTransport
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.
-deux
Si l’application cible est une application console, cette option l’entraîne 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 d’exécution du serveur client (CSRSS). Pour plus d’informations, consultez Débogage de CSRSS.
-un Extension
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 le « a », et l’extension .dll ne doit pas être incluse. Pour plus d’informations et d’autres méthodes de définition de 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 se décompose dans la cible dès que la session commence. Cela est particulièrement utile lors de la connexion à un serveur de débogage qui peut ne pas être actuellement rompu dans la cible.
-c " command "
Spécifie la commande de débogueur initiale à 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 des 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 des fichiers de script.
-cimp
Dirige CDB/NTSD pour 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 d’autres façons de modifier ce nombre, consultez Utilisation des commandes du 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 -- use -ddefer à la place.) Pour plus d’informations, consultez Contrôle du débogueur en mode utilisateur à partir du débogueur du noyau . Cette option ne peut pas être utilisée conjointement avec l’option -ddefer ou l’option -noio .
Notez que si vous utilisez WinDbg comme débogueur de noyau, de nombreuses 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ésassembler ou la fenêtre Pile des appels, et vous ne pouvez pas parcourir le code source. Cela est dû au fait que WinDbg agit uniquement en tant que visionneuse pour le débogueur (NTSD ou CDB) s’exécutant 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 en mode utilisateur à partir du débogueur du noyau . Cette option ne peut pas être utilisée conjointement avec l’option -d ou l’option -noio .
-e Événement
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 programmation.
-ee {masm|c++}
Définit l’évaluateur d’expression par défaut. Si masm est spécifié, la syntaxe d’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 d’expression MASM est utilisée comme valeur par défaut. Pour plus d’informations, consultez Évaluation des expressions .
-failinc
Provoque l’ignorer des symboles interrogeables. 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 les modules dont les images ne peuvent pas être mappées. Pour plus d’informations et pour d’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 le démarrage ou l’attachement de CDB, sauf si un autre point d’arrêt a été défini. Pour plus d’informations, consultez le point d’arrêt initial.
-G
Ignore le point d’arrêt final lors de 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 sortie de CDB immédiatement 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.
-disque dur
Spécifie que le tas de débogage ne doit pas être utilisé. Pour plus d’informations, consultez Débogage d’un processus en mode utilisateur à l’aide de CDB .
-Je ImagePath
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 postmortem. Pour plus d’informations, consultez Activation du débogage postmortem.
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.
-iaec KeyString
Installe CDB en tant que débogueur postmortem. Le contenu de KeyString est 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 postmortem.
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.
-isd
Active l’indicateur CREATE_IGNORE_SYSTEM_DEFAULT pour toutes les créations de processus.
-Ui KeyString
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 (Basculer la prise en charge des lignes sources) doit être utilisée avant que le débogage source ne 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 en mode utilisateur à l’aide de CDB.
-noio
Empêche le serveur de débogage d’être utilisé pour l’entrée ou la sortie. L’entrée est acceptée uniquement à partir du client de débogage (ainsi que toute commande initiale ou script de commande spécifié par l’option de ligne de commande -c ).
Toutes les sorties sont dirigées 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 durera tant que le débogueur est en cours d’exécution, même si une nouvelle session de débogage est commencée. Pour plus d’informations et pour 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 normalement. Pour obtenir d’autres méthodes de contrôle, consultez Débogage d’un processus en mode utilisateur à l’aide de CDB.
-p PID
Spécifie l’ID de processus décimal à déboguer. Il est utilisé pour déboguer un processus déjà en cours d’exécution. Pour plus d’informations, consultez Débogage d’un processus en mode utilisateur à l’aide de CDB.
-Pb
Empêche le débogueur de demander un arrêt initial 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.
-
Provoque 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à déboguée. Pour plus d’informations, voir Re-attachement à l’application cible.
-Pn Nom
Spécifie le nom du processus à déboguer. (Ce nom doit être unique.) Il est utilisé pour déboguer un processus déjà en cours d’exécution.
-Pr
Provoque le démarrage du débogueur du processus cible en cours d’exécution lors de son attachement. Cela peut être utile si l’application est déjà suspendue et que vous souhaitez reprendre l’exécution.
-Psn ServiceName
Spécifie le nom d’un service contenu dans le processus à déboguer. Il est utilisé pour déboguer un processus déjà en cours d’exécution.
-Pt Secondes
Spécifie le délai d’arrêt, 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 nonvasive. Pour plus d’informations, consultez Débogage nonvasif (mode utilisateur).
-pvr
Fonctionne comme -pv , sauf que le processus cible n’est pas suspendu.
-QR Serveur
Répertorie tous les serveurs de débogage s’exécutant sur le serveur réseau spécifié. La barre oblique inverse (\) précédente est facultative. Pour plus d’informations, consultez La 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.
-r BreakErrorLevel
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 |
NONE |
Ne sautez pas sur les erreurs. |
1 |
ERROR |
Arrêtez les événements de débogage au niveau ERREUR. |
2 |
MINORERROR |
Arrêtez les événements de débogage au niveau MINORERROR et ERROR. |
3 |
AVERTISSEMENT |
Arrêtez les événements de débogage au niveau AVERTISSEMENT, MINORERROR et ERROR. |
Ce niveau d’erreur a uniquement une signification 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 anciennes versions de Windows, avant la version 1803 de Windows 10.
-robp
Cela permet à CDB de définir un point d’arrêt sur une page de 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 différés. 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 des boîtes de dialogue d’erreur d’accès aux fichiers pendant le chargement des symboles. 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 les symboles questionnables. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_EXACT_SYMBOLS.
-sflags 0x Nombre
Définit toutes les options du gestionnaire de symboles à la fois. Le nombre doit être un nombre hexadécimal précédé de 0x : un nombre décimal sans 0x est autorisé, 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 remplace tous les gestionnaires de symboles par défaut. Pour plus d’informations, consultez Définition des options de symbole.
-sicv
Provoque l’ignorer du gestionnaire de symboles. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_IGNORE_CVREC.
-Péchés
Le débogueur ignore le chemin d’accès aux symboles et les variables d’environnement de chemin d’accès d’image exécutables. Pour plus d’informations, consultez SYMOPT_IGNORE_NT_SYMPATH.
-snc
Provoque 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.
-srcpath SourcePath
Spécifie le chemin de recherche du fichier source. Séparez plusieurs chemins d’accès avec un point-virgule (;). Si le chemin contient des espaces, il doit être placé entre guillemets. Pour plus d’informations et pour d’autres façons de modifier ce chemin d’accès, consultez Chemin d’accès source.
-souper
Provoque la recherche du gestionnaire de symboles dans la table de symboles publiques pendant chaque recherche de symboles. Pour plus d’informations et pour d’autres méthodes de contrôle, consultez SYMOPT_AUTO_PUBLICS.
-t PrintErrorLevel
Spécifie le niveau d’erreur qui entraîne 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 |
NONE |
N’affichez aucune erreur. |
1 |
ERROR |
Afficher les événements de débogage au niveau erreur. |
2 |
MINORERROR |
Afficher les événements de débogage au niveau MINORERROR et ERROR. |
3 |
AVERTISSEMENT |
Afficher les événements de débogage au niveau AVERTISSEMENT, MINORERROR et ERROR. |
Ce niveau d’erreur a uniquement une signification dans les builds vérifiées de Microsoft Windows. Les versions compilées avec des vérifications étaient disponibles sur des versions plus anciennes de Windows avant Windows 10, version 1803. La valeur par défaut est 1.
-v
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: <Opte>
Active les paramètres ApplicationVerifier donnés.
-w
Spécifie de déboguer des applications 16 bits dans un VDM distinct.
-réveiller PID
Provoque 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. Veuillez consulter la section Contrôler le débogueur en mode utilisateur depuis le débogueur noyau pour plus de détails.
Le paramètre -wake ne doit pas être utilisé avec d’autres paramètres. Cette commande ne démarre pas réellement 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. Consultez Contrôle des exceptions et des événements pour plus d’informations et pour d’autres méthodes de contrôle de ces paramètres.
-x
Désactive l’arrêt de première chance sur les exceptions de violation d’accès. La deuxième occurrence d’une violation d’accès se décompose dans le débogueur. Il s’agit de la même chose que -xd av.
-y SymbolPath
Spécifie le chemin de recherche de symboles. Séparez plusieurs chemins d’accès avec un point-virgule (;). Si le chemin contient des espaces, il doit être placé entre guillemets. Pour plus d’informations et pour d’autres façons de modifier ce chemin, consultez Chemin d’accès aux symboles.
-z DumpFile
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, cela 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 en mode utilisateur.
-zp PageFile
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 modifiés spécialement peuvent être utilisés.
exécutable
Spécifie la ligne de commande d’un processus exécutable. Il est utilisé pour lancer un nouveau processus et le déboguer. Il doit s’agir de l’élément final sur la ligne de commande. Tout le texte après 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 Start | Exécutez ou à partir d’une fenêtre d’invite de commandes, spécifiez des arguments pour l’application cible après le nom de fichier de l’application. Exemple :
cdb myexe arg1arg2