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
S_OK
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)

Voir aussi

Désassembler

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (Unassemble)