IDebugControl::OutputDisassemblyLines-Methode (dbgeng.h)

Die OutputDisassemblyLines-Methode disassembliert 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 unter Offset 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 annehmen; Dies kann dazu führen, dass die Anzahl der Zeilen, die vor der Anweisung unter Offset ausgegeben werden, größer als PreviousLines ist.

[in] TotalLines

Gibt die Gesamtanzahl 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 annehmen; Dies kann dazu führen, dass die Anzahl der ausgegebenen Zeilen größer als TotalLines 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 sich auf das Verhalten dieser Methode auswirken. 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 genaue 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, beim Disassemblieren der Anweisungen vor dieser Anweisung ist ein Fehler 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 von 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 (dbgeng.h einschließen)

Weitere Informationen

Disassemble

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (Nichtassemble)