Méthode IDebugControl ::OutputDisassemblyLines (dbgeng.h)
La méthode OutputDisassemblyLines désassemble plusieurs instructions du processeur et envoie les instructions d’assembly obtenues aux rappels de sortie.
Syntaxe
HRESULT OutputDisassemblyLines(
[in] ULONG OutputControl,
[in] ULONG PreviousLines,
[in] ULONG TotalLines,
[in] ULONG64 Offset,
[in] ULONG Flags,
[out, optional] PULONG OffsetLine,
[out, optional] PULONG64 StartOffset,
[out, optional] PULONG64 EndOffset,
[out, optional] PULONG64 LineOffsets
);
Paramètres
[in] OutputControl
Spécifie le contrôle de sortie qui détermine les rappels de sortie du client qui reçoivent la sortie. Pour connaître les valeurs possibles, consultez DEBUG_OUTCTL_XXX. Pour plus d’informations sur la sortie, consultez Entrée et Sortie.
[in] PreviousLines
Spécifie le nombre de lignes d’instructions avant l’instruction dans Offset à inclure dans la sortie. En règle générale, chaque instruction est générée sur une seule ligne. Toutefois, certaines instructions peuvent prendre plusieurs lignes de sortie ; Cela peut faire en sorte que le nombre de lignes sorties avant l’instruction dans Offset soit supérieur à PreviousLines.
[in] TotalLines
Spécifie le nombre total de lignes d’instructions à inclure dans la sortie. En règle générale, chaque instruction est générée sur une seule ligne. Toutefois, certaines instructions peuvent prendre plusieurs lignes de sortie ; Cela peut entraîner une sortie de ligne supérieure à TotalLines.
[in] Offset
Spécifie l’emplacement dans la mémoire de la cible des instructions à désassembler. La sortie de désassemblement démarre les lignes PreviousLines avant ces instructions du processeur.
[in] Flags
Spécifie les indicateurs de bits qui affectent le comportement de cette méthode. Le tableau suivant répertorie les bits qui peuvent être définis.
Bit-Flag | Effet lors de la définition |
---|---|
DEBUG_DISASM_EFFECTIVE_ADDRESS | Calculez l’adresse effective de chaque instruction à partir des informations de registre actuelles et extrayez-les. |
DEBUG_DISASM_MATCHING_SYMBOLS | Si l’adresse d’une instruction a une correspondance de symbole exacte, sortez le symbole. |
DEBUG_DISASM_SOURCE_LINE_NUMBER | Incluez le numéro de ligne source de chaque instruction dans la sortie. |
DEBUG_DISASM_SOURCE_FILE_NAME | Incluez le nom du fichier source dans la sortie. |
[out, optional] OffsetLine
Reçoit le numéro de ligne dans la sortie qui contient l’instruction dans Offset. Si OffsetLine a la valeur NULL, ces informations ne sont pas retournées.
[out, optional] StartOffset
Reçoit l’emplacement dans la mémoire de la cible de la première instruction incluse dans la sortie. Si StartOffset a la valeur NULL, ces informations ne sont pas retournées.
[out, optional] EndOffset
Reçoit le locaiton dans la mémoire de la cible de l’instruction qui suit la dernière instruction désassemblé.
[out, optional] LineOffsets
Reçoit les emplacements dans la mémoire de la cible des instructions incluses dans la sortie à partir de l’instruction sur Décalage. LineOffsets est un tableau qui contient des éléments TotalLines .
Offset est la valeur de la première entrée dans ce tableau, sauf si une erreur s’est produite lors du désassemblement des instructions avant cette instruction. Dans ce cas, la première entrée contient DEBUG_ANY_ID et Offset est placé dans la deuxième entrée du tableau (index 1).
Si la sortie d’une instruction s’étend sur plusieurs lignes, l’élément du tableau qui correspond à la première ligne de l’instruction contient l’adresse de l’instruction.
Si LineOffsets a la valeur NULL, ces informations ne sont pas retournées.
Valeur retournée
Cette méthode peut également retourner des valeurs d’erreur. Pour plus d’informations, consultez Valeurs de retour.
Code de retour | Description |
---|---|
|
La méthode a réussi. |
Remarques
La langue de l’assembly dépend du type de processeur effectif du système cible. Pour plus d’informations sur le langage d’assembly, consultez la documentation du processeur.
Pour obtenir une vue d’ensemble de l’utilisation de l’assembly dans les applications de débogueur, consultez Débogage en mode Assembly. Pour plus d’informations sur l’utilisation de l’assembly avec l’API du moteur de débogueur, consultez Instructions d’assemblage et de désassemblement.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dbgeng.h (inclure Dbgeng.h) |