IDebugControl3::OutputDisassemblyLines-Methode (dbgeng.h)

Die OutputDisassemblyLines-Methode zerlegt mehrere Prozessoranweisungen und sendet die resultierenden Assemblyanweisungen an die Ausgaberückrufe.

Syntax

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

Parameter

[in] OutputControl

Gibt das Ausgabesteuerelement an, das bestimmt, welche Ausgaberückrufe des Clients die Ausgabe empfangen. Mögliche Werte finden Sie unter DEBUG_OUTCTL_XXX. Weitere Informationen zur Ausgabe finden Sie unter Eingabe und Ausgabe.

[in] PreviousLines

Gibt die Anzahl der Zeilen von Anweisungen vor der Anweisung bei Offset an, die in die Ausgabe aufgenommen werden soll. In der Regel wird jede Anweisung in einer einzelnen Zeile ausgegeben. Einige Anweisungen können jedoch mehrere Ausgabezeilen in Anspruch nehmen. Dies kann dazu führen, dass die Anzahl der Zeilen, die vor der Anweisung bei Offset ausgegeben werden, größer als PreviousLines ist.

[in] TotalLines

Gibt die Gesamtanzahl der Zeilen von Anweisungen an, die in die Ausgabe eingeschlossen werden sollen. In der Regel wird jede Anweisung in einer einzelnen Zeile ausgegeben. Einige Anweisungen können jedoch mehrere Ausgabezeilen in Anspruch nehmen. Dies kann dazu führen, dass die Anzahl der ausgegebenen Zeilen größer als Die Gesamtlinien ist.

[in] Offset

Gibt den Speicherort der Anweisungen zum Disassemblieren im Speicher des Ziels an. Die Disassemblierungsausgabe startet PreviousLines-Zeilen vor diesen Prozessoranweisungen.

[in] Flags

Gibt die Bitflags an, die das Verhalten dieser Methode beeinflussen. In der folgenden Tabelle sind die Bits aufgeführt, die festgelegt werden können.

Bit-Flag Effekt beim Festlegen
DEBUG_DISASM_EFFECTIVE_ADDRESS Berechnen Sie die effektive Adresse jeder Anweisung aus den aktuellen Registerinformationen, und geben Sie sie aus.
DEBUG_DISASM_MATCHING_SYMBOLS Wenn die Adresse einer Anweisung eine exakte Symbol-Übereinstimmung aufweist, geben Sie das Symbol aus.
DEBUG_DISASM_SOURCE_LINE_NUMBER Fügen Sie die Quellzeilennummer jeder Anweisung in die Ausgabe ein.
DEBUG_DISASM_SOURCE_FILE_NAME Fügen Sie den Namen der Quelldatei in die Ausgabe ein.

[out, optional] OffsetLine

Empfängt die Zeilennummer in der Ausgabe, die die Anweisung bei Offset enthält. Wenn OffsetLineNULL ist, werden diese Informationen nicht zurückgegeben.

[out, optional] StartOffset

Empfängt den Speicherort im Speicher des Ziels der ersten Anweisung, die in der Ausgabe enthalten ist. Wenn StartOffsetNULL ist, werden diese Informationen nicht zurückgegeben.

[out, optional] EndOffset

Empfängt den Locaiton im Speicher des Ziels der Anweisung, die der letzten disassemblierten Anweisung folgt.

[out, optional] LineOffsets

Empfängt die Speicherorte im Speicher des Ziels der Anweisungen, die in der Ausgabe enthalten sind, beginnend mit der Anweisung unter Offset. LineOffsets ist ein Array, das TotalLines-Elemente enthält.

Offset ist der Wert des ersten Eintrags in diesem Array, es sei denn, es ist ein Fehler beim Disassemblieren der Anweisungen vor dieser Anweisung aufgetreten. In diesem Fall enthält der erste Eintrag DEBUG_ANY_ID und Offset wird im zweiten Eintrag im Array (Index 1) platziert.

Wenn die Ausgabe für eine Anweisung mehrere Zeilen umfasst, enthält das Element im Array, das der ersten Zeile der Anweisung entspricht, die Adresse der Anweisung.

Wenn LineOffsetsNULL ist, werden diese Informationen nicht zurückgegeben.

Rückgabewert

Diese Methode kann auch Fehlerwerte zurückgeben. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Die Assemblysprache hängt vom effektiven Prozessortyp des Zielsystems ab. Informationen zur Assemblysprache finden Sie in der Prozessordokumentation.

Eine Übersicht über die Verwendung der Assembly in Debuggeranwendungen finden Sie unter Debuggen im Assemblymodus. Weitere Informationen zur Verwendung der Assembly mit der Debugger-Engine-API finden Sie unter Anweisungen zum Zusammenbauen und Disassemblieren.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (einschließlich Dbgeng.h)

Weitere Informationen

Disassemble

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (Unassemble)