Partager via


.reload (Recharger le module)

La commande .reload supprime toutes les informations de symbole pour le module spécifié et recharge ces symboles si nécessaire. Dans certains cas, cette commande recharge ou décharge également le module lui-même.

.reload [Options] [Module[=Address[,Size[,Timestamp]]]] 
.reload -?

Paramètres

Options L'une des options suivantes :

/d
Rechargez tous les modules dans la liste des modules du débogueur. (Lorsque vous omettez tous les paramètres, il s'agit de la situation par défaut pendant le débogage en mode utilisateur.)

/f
Force le débogueur à charger immédiatement les symboles. Ce paramètre remplace le paramètre de chargement différé des symboles. Pour plus d'informations, consultez la section Notes qui suit.

/i
Ignore une incompatibilité dans les versions de fichiers .pdb. (Si vous n’incluez pas ce paramètre, le débogueur ne charge pas les fichiers de symboles incompatibles.) Lorsque vous utilisez /i, /f est également utilisé, même si vous ne le spécifiez pas explicitement.

/l
Répertorie les modules mais ne recharge pas leurs symboles. (En mode noyau, ce paramètre génère une sortie qui ressemble à la commande lm.)

/n
Recharge uniquement les symboles de noyau. Ce paramètre ne recharge aucun symbole d'utilisateur. (Vous ne pouvez utiliser cette option que pendant le débogage en mode noyau.)

/o
Force le remplacement des fichiers mis en cache dans le magasin en aval d’un serveur de symboles. Lorsque vous utilisez cet indicateur, vous devez également inclure /f. Par défaut, les fichiers de magasin en aval ne sont jamais remplacés.

Le serveur de symboles utilise des noms de fichiers distincts pour les symboles de chaque build différente d’un binaire, vous n’avez donc pas besoin d’utiliser cette option, sauf si vous pensez que votre magasin en aval est endommagé.

/s
Recharge tous les modules de la liste d’images de module du système. (Lorsque vous omettez tous les paramètres, il s'agit de la situation par défaut pendant le débogage en mode noyau.)

Si vous chargez un module système individuel par nom pendant que vous effectuez un débogage en mode utilisateur, vous devez inclure /s.

/u
Décharge le module spécifié et tous ses symboles. Le débogueur décharge tout module chargé dont le nom correspond à Module, quel que soit le chemin complet. Les noms d’images sont également recherchés. Pour plus d'informations, consultez la note dans la section suivante.

/unl
Recharge les symboles en fonction des informations d’image dans la liste des modules déchargés.

/user
Recharge uniquement les symboles d'utilisateur. (Vous ne pouvez utiliser cette option que pendant le débogage en mode noyau.)

/v
Active le mode détaillé.

/w
Traite le Module comme une chaîne littérale. Ce traitement empêche le débogueur de développer des caractères génériques.

Module
Spécifie le nom d’une image sur le système cible pour laquelle des symboles doivent être rechargés sur l’ordinateur hôte. Module doit inclure le nom et l’extension de nom de fichier du fichier. Sauf si vous utilisez l’option /w, Module peut contenir une variété de caractères et de spécificateurs génériques. Pour plus d’informations sur la syntaxe, consultez la section syntaxe des caractères génériques de chaîne. Si vous omettez Module, le comportement de la commande .reload dépend des options que vous utilisez.

Adresse
Spécifie l’adresse de base du module. En règle générale, cette adresse n'est nécessaire que si l'en-tête de l'image a été corrompu ou s'il est mis en mémoire virtuelle.

Taille
Spécifie la taille de l’image du module. Dans de nombreux cas, le débogueur connaît la taille correcte du module. Lorsque ce n'est pas le cas, vous devez spécifier Taille. Vous pouvez indiquer la taille réelle du module ou une valeur plus élevée, mais pas une valeur moins élevée. En règle générale, cette taille n'est nécessaire que si l’en-tête de l'image a été corrompu ou s'il est mis en mémoire virtuelle.

Horodatage
Spécifie l'horodatage de l’image du module. Dans de nombreux cas, le débogueur connaît l'horodatage correct du module. Lorsque le débogueur ne connaît pas les horodatages, vous devez spécifier Horodatage. En règle générale, cet horodatage n'est nécessaire que si l’en-tête de l'image a été corrompu ou s'il est mis en mémoire virtuelle.

Remarque Il ne doit pas y avoir d'espace entre les paramètres Adresse, Taille et Horodatage.

- ?
Affiche un court texte d’aide pour cette commande.

Environnement

Élément Description
Modes Mode utilisateur, mode noyau
Targets Live, vidage de la mémoire
Platforms Tous

Informations supplémentaires

Pour plus d’informations sur le chargement différé des symboles, consultez Chargement différé des symboles. Pour plus d’informations sur les autres options de symbole, consultez Définition des options de symbole.

Notes

La commande .reload n’entraîne pas la lecture des informations de symbole. Au lieu de cela, cette commande permet au débogueur de savoir que les fichiers de symboles peuvent avoir changé ou qu’un nouveau module doit être ajouté à la liste des modules. Cette commande permet au débogueur de réviser sa liste de modules et de supprimer ses informations de symbole pour les modules spécifiés. Les informations de symbole réelles ne sont pas lues à partir des fichiers .pdb individuels tant qu'elles ne sont pas nécessaires. (Ce type de chargement est appelé chargement différé des symboles or chargement différé des symboles.)

Vous pouvez forcer le chargement des symboles à effectuer à l’aide de l’option /f ou en publiant une commande ld (Charger les symboles).

La commande .reload est utile si le système cesse de répondre (c’est-à-dire se bloque), ce qui peut entraîner la perte de symboles pour l’ordinateur cible en cours de débogage. Cette commande peut également être utile si vous avez mis à jour l’arborescence des symboles.

Si l’en-tête d’image n’est pas correct pour une raison quelconque, par exemple si le module est déchargé ou mis en mémoire virtuelle, vous pouvez charger correctement des symboles à l’aide de l’argument /unl, ou en spécifiant Address (Adresse) et Size (Taille).

La commande .reload /u effectue une recherche large. Le débogueur tente d’abord de faire correspondre Module avec un nom de module exact, quel que soit le chemin d’accès. Si le débogueur ne trouve pas cette correspondance, Module est traité comme le nom de l’image chargée. Par exemple, si la HAL qui réside en mémoire a le nom de module de halacpi.dll, les deux commandes suivantes déchargent ses symboles.

kd> .reload /u halacpi.dll

kd> .reload /u hal

Si vous effectuez un débogage en mode utilisateur et que vous souhaitez charger un module qui ne figure pas dans la liste des modules de l’application cible, vous devez inclure l’option /s, comme l’illustre l’exemple suivant.

0:000> .reload /u ntdll.dll
Unloaded ntdll.dll

0:000> .reload /s /f ntdll.dll