Metodo IDebugControl::OutputDisassemblyLines (dbgeng.h)

Il metodo OutputDisassemblyLines disassembla diverse istruzioni del processore e invia le istruzioni di assembly risultanti ai callback di output.

Sintassi

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

Parametri

[in] OutputControl

Specifica il controllo di output che determina i callback di output del client che ricevono l'output. Per i valori possibili, vedere DEBUG_OUTCTL_XXX. Per altre informazioni sull'output, vedere Input e Output.

[in] PreviousLines

Specifica il numero di righe di istruzioni prima dell'istruzione in Offset da includere nell'output. In genere, ogni istruzione viene restituita in una singola riga. Tuttavia, alcune istruzioni possono richiedere diverse righe di output; ciò può causare il numero di righe di output prima che l'istruzione in Offset sia maggiore di PreviousLines.

[in] TotalLines

Specifica il numero totale di righe di istruzioni da includere nell'output. In genere, ogni istruzione viene restituita in una singola riga. Tuttavia, alcune istruzioni possono richiedere diverse righe di output; in questo modo il numero di righe di output deve essere maggiore di TotalLines.

[in] Offset

Specifica la posizione nella memoria della destinazione delle istruzioni da smontare. L'output di disassembly inizierà le righe PreviousLines prima di queste istruzioni del processore.

[in] Flags

Specifica i flag di bit che influiscono sul comportamento di questo metodo. Nella tabella seguente sono elencati i bit che possono essere impostati.

Bit-Flag Effetto quando impostato
DEBUG_DISASM_EFFECTIVE_ADDRESS Calcolare l'indirizzo effettivo di ogni istruzione dalle informazioni di registro correnti e generarne l'output.
DEBUG_DISASM_MATCHING_SYMBOLS Se l'indirizzo di un'istruzione ha una corrispondenza esatta dei simboli, restituire il simbolo.
DEBUG_DISASM_SOURCE_LINE_NUMBER Includere il numero di riga di origine di ogni istruzione nell'output.
DEBUG_DISASM_SOURCE_FILE_NAME Includere il nome del file di origine nell'output.

[out, optional] OffsetLine

Riceve il numero di riga nell'output contenente l'istruzione in Offset. Se OffsetLine è NULL, queste informazioni non vengono restituite.

[out, optional] StartOffset

Riceve la posizione nella memoria della destinazione della prima istruzione inclusa nell'output. Se StartOffset è NULL, queste informazioni non vengono restituite.

[out, optional] EndOffset

Riceve il locaiton nella memoria della destinazione dell'istruzione che segue l'ultima istruzione smontata.

[out, optional] LineOffsets

Riceve le posizioni nella memoria della destinazione delle istruzioni incluse nell'output a partire dall'istruzione in Offset. LineOffsets è una matrice che contiene elementi TotalLines .

Offset è il valore della prima voce in questa matrice, a meno che non si sia verificato un errore durante il disassembling delle istruzioni prima di questa istruzione. In questo caso, la prima voce conterrà DEBUG_ANY_ID e Offset verrà posizionata nella seconda voce della matrice (indice 1).

Se l'output di un'istruzione si estende su più righe, l'elemento nella matrice che corrisponde alla prima riga dell'istruzione conterrà l'indirizzo dell'istruzione.

Se LineOffsets è NULL, queste informazioni non vengono restituite.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

Il linguaggio dell'assembly dipende dal tipo di processore effettivo del sistema di destinazione. Per informazioni sul linguaggio dell'assembly, vedere la documentazione del processore.

Per una panoramica dell'uso dell'assembly nelle applicazioni debugger, vedere Debug in modalità assembly. Per altre informazioni sull'uso dell'assembly con l'API del motore di debugger, vedere Assembling and Disassembling Instructions (Istruzioni di assemblaggio e smontaggio).

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (includere Dbgeng.h)

Vedi anche

Smontare

Idebugcontrol

IDebugControl2

IDebugControl3

OutputDisassembly

u (Unassemble)