Options de symbole
Un certain nombre d’options sont disponibles pour contrôler la façon dont les symboles sont chargés et utilisés. Ces options peuvent être définies de différentes façons.
Le tableau suivant répertorie ces options de symbole :
Indicateur | Nom d’option | Valeur par défaut dans le débogueur | Valeur par défaut dans DBH |
---|---|---|---|
0x1 |
Activé |
Activé |
|
0x2 |
Activé |
Activé |
|
0x4 |
Activé |
Désactivé |
|
0x8 |
Désactivé |
Désactivé |
|
0x10 |
Désactivé dans KD et CDB Activé dans WinDbg |
Activé |
|
0x20 |
Activé |
Désactivé |
|
0x40 |
Désactivé |
Désactivé |
|
0x80 |
Désactivé |
Désactivé |
|
0x100 |
Désactivé |
Désactivé |
|
0x200 |
Activé |
Désactivé |
|
0x400 |
Off |
Il en va |
|
0x800 |
Off |
Il en va |
|
0x1000 |
Désactivé |
Désactivé |
|
0x2000 |
SYMOPT_INCLUDE_32BIT_MODULES |
Désactivé |
Désactivé |
0x4000 |
Désactivé |
Désactivé |
|
0x8000 |
Désactivé |
Désactivé |
|
0x10000 |
Activé |
Activé |
|
0x20000 |
Activé |
Désactivé |
|
0x40000 |
Désactivé |
Désactivé |
|
0x80000 |
Activé dans KD et CDB Désactivé dans WinDbg |
Désactivé |
|
0x80000000 |
Désactivé |
Désactivé |
Modification des paramètres de l’option de symbole
La commande .symopt (Définir les options de symbole) peut être utilisée pour modifier ou afficher les paramètres d’option de symbole. En outre, un certain nombre de paramètres de ligne de commande et de commandes sont disponibles pour modifier ces paramètres ; ceux-ci sont répertoriés dans les sections individuelles SYMOPT_XXX .
Vous pouvez également contrôler tous les paramètres à la fois avec l’option de ligne de commande-sflags. Cette option peut être suivie d’un nombre décimal ou d’un nombre hexadécimal précédé de 0x. Il est recommandé d’utiliser hexadécimal, car les indicateurs de symbole sont correctement alignés de cette façon. Soyez prudent lorsque vous utilisez cette méthode, car elle définit le champ de bits entier et remplace toutes les valeurs par défaut du gestionnaire de symboles. Par exemple, -sflags 0x401 non seulement active SYMOPT_EXACT_SYMBOLS et SYMOPT_CASE_INSENSITIVE, mais désactive également toutes les autres options qui sont normalement activées par défaut !
La valeur par défaut pour le nombre total de bits d’indicateur est 0x30237 dans WinDbg, 0xB0227 dans CDB et KD, et 0x10C13 dans l’outil DBH, lorsque ces programmes sont lancés sans aucune option de ligne de commande liée aux symboles.
SYMOPT_CASE_INSENSITIVE
Cette option de symbole empêche toutes les recherches de noms de symboles de respecter la casse.
Cette option est activée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x1 ou .symopt-0x1, respectivement.
Cette option est activée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +1 ou de symopt -1, respectivement.
SYMOPT_UNDNAME
Cette option de symbole entraîne la déséconomie des noms de symboles publics lorsqu’ils sont affichés, et les recherches de noms de symboles ignorent les décorations de symboles. Les noms de symboles privés ne sont jamais décorés, que cette option soit active ou non. Pour plus d’informations sur les décorations de noms de symboles, consultez Symboles publics et privés.
Cette option est activée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x2 ou .symopt-0x2, respectivement.
Cette option est activée par défaut dans DBH. Elle est désactivée si l’option de ligne de commande -d est utilisée. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +2 ou de symopt -2, respectivement.
SYMOPT_DEFERRED_LOADS
Cette option de symbole est appelée chargement de symbole différé ou chargement de symboles paresseux. Lorsqu’il est actif, les symboles ne sont pas réellement chargés lorsque les modules cibles sont chargés. Au lieu de cela, les symboles sont chargés par le débogueur en fonction des besoins. Pour plus d’informations, consultez Chargement différé de symboles .
Cette option est activée par défaut dans tous les débogueurs. Dans CDB et KD, l’option de ligne de commande -s désactive cette option. Il peut également être désactivé dans CDB à l’aide de la variable LazyLoad dans le fichier tools.ini . Une fois le débogueur en cours d’exécution, cette option peut être activée ou désactivée à l’aide de .symopt+0x4 ou .symopt-0x4, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +4 ou de symopt -4, respectivement.
SYMOPT_NO_CPP
Cette option de symbole désactive la traduction C++. Lorsque cette option de symbole est définie, :: est remplacé par __ dans tous les symboles.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -snc. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x8 ou .symopt-0x8, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +8 ou de symopt -8, respectivement.
SYMOPT_LOAD_LINES
Cette option de symbole permet de lire les informations de numéro de ligne à partir des fichiers sources. Cette option doit être activée pour que le débogage source fonctionne correctement.
Dans KD et CDB, cette option est désactivée par défaut ; dans WinDbg, cette option est activée par défaut. Dans CDB et KD, l’option de ligne de commande -lines active cette option. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x10 ou .symopt-0x10, respectivement. Il peut également être activé et désactivé à l’aide de la commande .lines (Toggle Source Line Support).
Cette option est activée par défaut dans DBH. Une fois dbH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +10 ou de symopt -10, respectivement.
SYMOPT_OMAP_FIND_NEAREST
Lorsque le code a été optimisé et qu’il n’existe aucun symbole à l’emplacement attendu, cette option entraîne l’utilisation du symbole le plus proche à la place.
Cette option est activée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x20 ou .symopt-0x20, respectivement.
Cette option est activée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +20 ou de symopt -20, respectivement.
SYMOPT_LOAD_ANYTHING
Cette option de symbole réduit la casse du gestionnaire de symboles lorsqu’il tente de faire correspondre des symboles.
Cette option est désactivée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x40 ou .symopt-0x40, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +40 ou de symopt -40, respectivement.
SYMOPT_IGNORE_CVREC
Cette option de symbole permet au gestionnaire de symboles d’ignorer l’enregistrement CV dans l’en-tête d’image chargé lors de la recherche de symboles.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -sicv. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x80 ou .symopt-0x80, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +80 ou de symopt -80, respectivement.
SYMOPT_NO_UNQUALIFIED_LOADS
Cette option de symbole désactive le chargement automatique des modules du gestionnaire de symboles. Lorsque cette option est définie et que le débogueur tente de faire correspondre un symbole, il recherche uniquement les modules qui ont déjà été chargés.
Cette option peut être utilisée comme défense contre la saisie incorrecte d’un nom de symbole. Normalement, un symbole mal typé entraîne l’arrêt du débogueur pendant qu’il recherche tous les fichiers de symboles déchargés. Lorsque cette option est active, un symbole mal typé est introuvable dans les modules chargés, puis la recherche se termine.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -snul. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x100 ou .symopt-0x100, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +100 ou de symopt -100, respectivement.
SYMOPT_FAIL_CRITICAL_ERRORS
Cette option de symbole entraîne la suppression des boîtes de dialogue d’erreur d’accès aux fichiers.
Si cette option est désactivée, les erreurs d’accès aux fichiers, telles que « lecteur non prêt », rencontrées lors du chargement des symboles, entraînent l’affichage des boîtes de dialogue. Si cette option est activée, ces zones sont supprimées et toutes les erreurs d’accès reçoivent une réponse « échec ».
Cette option est activée par défaut dans tous les débogueurs. Il peut être désactivé à l’aide de l’option de ligne de commande -sdce. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x200 ou .symopt-0x200, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +200 ou de symopt -200, respectivement.
SYMOPT_EXACT_SYMBOLS
Cette option de symbole oblige le débogueur à effectuer une évaluation stricte de tous les fichiers de symboles.
Lorsque cette option est activée, même la moindre différence entre les fichiers de symboles et les attentes du gestionnaire de symboles entraîne l’ignorer.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -ses. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x400 ou .symopt-0x400, respectivement.
L’option de ligne de commande -failinc active également SYMOPT_EXACT_SYMBOLS. En outre, si vous déboguez un minidump en mode utilisateur ou un minidump en mode noyau, -failinc empêche le débogueur de charger des modules dont les images ne peuvent pas être mappées.
Cette option est activée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +400 ou de symopt -400, respectivement.
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
Cette option de symbole permet à DbgHelp de lire les symboles stockés à une adresse absolue en mémoire. Cette option n’est pas nécessaire dans la grande majorité des cas.
Cette option est désactivée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x800 ou .symopt-0x800, respectivement.
Cette option est activée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +800 ou de symopt -800, respectivement.
SYMOPT_IGNORE_NT_SYMPATH
Cette option de symbole oblige le débogueur à ignorer les paramètres de la variable d’environnement pour le chemin du symbole et le chemin d’accès de l’image exécutable.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -sins. Toutefois, il ne peut pas être contrôlé par .symopt une fois que le débogueur est en cours d’exécution, car les variables d’environnement sont lues uniquement au démarrage.
Cette option est désactivée par défaut dans DBH et est ignorée par DBH dans tous les cas.
SYMOPT_PUBLICS_ONLY
Cette option de symbole permet à DbgHelp d’ignorer les données de symboles privés et de rechercher uniquement des informations sur les symboles dans la table de symboles publics. Cela émule le comportement de DbgHelp avant l’ajout de la prise en charge de ces types. consultez Symboles publics et privés.
Cette option est désactivée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x4000 ou .symopt-0x4000, respectivement.
Cette option est désactivée par défaut dans DBH. Elle est activée si l’option de ligne de commande -d est utilisée. Une fois dbH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +4000 ou de symopt -4000, respectivement.
SYMOPT_NO_PUBLICS
Cette option de symbole empêche DbgHelp de rechercher dans la table de symboles publics. Cela peut accélérer l’énumération des symboles et les recherches de symboles. Si vous vous souciez uniquement de la vitesse de recherche, l’option SYMOPT_AUTO_PUBLICS est généralement préférable à celle-ci. Pour plus d’informations sur la table de symboles publics, consultez Symboles publics et privés.
Cette option est désactivée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x8000 ou .symopt-0x8000, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +8000 ou de symopt -8000, respectivement.
SYMOPT_AUTO_PUBLICS
Cette option de symbole permet à DbgHelp de rechercher la table de symboles publics dans un fichier .pdb uniquement en dernier recours. Si des correspondances sont trouvées lors de la recherche dans les données de symbole privé, les symboles publics ne sont pas recherchés. Cela améliore la vitesse de recherche de symboles.
Cette option est activée par défaut dans tous les débogueurs. Il peut être désactivé à l’aide de l’option de ligne de commande -sup. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x10000 ou .symopt-0x10000, respectivement.
Cette option est activée par défaut dans DBH. Elle est désactivée si l’option de ligne de commande -d est utilisée. Une fois dbH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +10000 ou de symopt -10000, respectivement.
SYMOPT_NO_IMAGE_SEARCH
Cette option de symbole empêche DbgHelp de rechercher sur le disque une copie de l’image lorsque les symboles sont chargés.
Cette option est activée par défaut dans tous les débogueurs. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x20000 ou .symopt-0x20000, respectivement.
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +20000 ou de symopt -20000, respectivement.
SYMOPT_SECURE
(Mode noyau uniquement) Cette option de symbole indique si le mode sécurisé est actif.
Le mode sécurisé est désactivé par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -secure. Si le débogueur est en cours d’exécution, est en mode dormant et n’a pas établi de serveurs de débogage, le mode sécurisé peut être activé à l’aide de .symopt+0x40000 ou .secure (Activer le mode sécurisé).
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +40000 ou de symopt -40000, respectivement.
Le mode sécurisé ne peut jamais être désactivé une fois qu’il a été activé.
SYMOPT_NO_PROMPTS
Cette option de symbole supprime les boîtes de dialogue d’authentification du serveur proxy. Il se peut que SymSrv ne puisse pas accéder à un magasin de symboles sur Internet.
Pour plus d’informations, consultez Pare-feu et serveurs proxy.
Dans KD et CDB, cette option est activée par défaut ; dans WinDbg, cette option est désactivée par défaut. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x80000 ou .symopt-0x80000, respectivement, suivi de la commande .reload (recharger le module). Il peut également être activé et désactivé à l’aide des commandes d’extension !sym et!sym invite à l’extension, suivies de la commande .reload (recharger le module).
Cette option est désactivée par défaut dans DBH. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +80000 ou de symopt -80000, respectivement.
-SYMOPT_DEBUG
Cette option de symbole active le chargement de symboles bruyant. Cela indique au débogueur d’afficher des informations sur sa recherche de symboles.
Le nom de chaque fichier de symboles s’affiche au fur et à mesure qu’il est chargé. Si le débogueur ne peut pas charger un fichier de symboles, un message d’erreur s’affiche. Les messages d’erreur pour les fichiers .pdb s’affichent dans du texte. Les messages d’erreur pour les fichiers .dbg se présenteront sous la forme d’un code d’erreur ; ces codes sont expliqués dans le fichier winerror.h.
Si un fichier image est chargé uniquement pour récupérer des informations d’en-tête symboliques, celui-ci s’affiche également.
Cette option est désactivée par défaut dans tous les débogueurs. Il peut être activé à l’aide de l’option de ligne de commande -n. Une fois le débogueur en cours d’exécution, il peut être activé ou désactivé à l’aide de .symopt+0x80000000 ou .symopt-0x80000000, respectivement. Il peut également être activé et désactivé à l’aide des commandes d’extension !sym noisy et !sym quiet .
Note Cette option ne doit pas être confondue avec le chargement de source bruyant, qui est contrôlé par la commande .srcnoisy (Chargement de source bruyante).
Cette option est désactivée par défaut dans DBH. Il peut être activé à l’aide de l’option de ligne de commande -n. Une fois DBH en cours d’exécution, il peut être activé ou désactivé à l’aide de symopt +80000000 ou de symopt -800000000, respectivement. Il peut également être activé et désactivé à l’aide des commandes détaillées on et verbose off.