Método IDebugControl2::OutputDisassemblyLines (dbgeng.h)
O método OutputDisassemblyLines desmonta várias instruções do processador e envia as instruções de assembly resultantes para os retornos de chamada de saída.
Sintaxe
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
);
Parâmetros
[in] OutputControl
Especifica o controle de saída que determina quais retornos de chamada de saída do cliente recebem a saída. Para obter valores possíveis, consulte DEBUG_OUTCTL_XXX. Para obter mais informações sobre a saída, consulte Entrada e Saída.
[in] PreviousLines
Especifica o número de linhas de instruções antes da instrução em Deslocamento para incluir na saída. Normalmente, cada instrução é saída em uma única linha. No entanto, algumas instruções podem assumir várias linhas de saída; isso pode fazer com que o número de linhas de saída antes da instrução em Deslocamento seja maior que PreviousLines.
[in] TotalLines
Especifica o número total de linhas de instruções a serem incluídas na saída. Normalmente, cada instrução é saída em uma única linha. No entanto, algumas instruções podem assumir várias linhas de saída; isso pode fazer com que o número de saídas de linhas seja maior que TotalLines.
[in] Offset
Especifica o local na memória do destino das instruções para desmontar. A saída de desmontagem iniciará as linhas PreviousLines antes dessas instruções do processador.
[in] Flags
Especifica os sinalizadores de bits que afetam o comportamento desse método. A tabela a seguir lista os bits que podem ser definidos.
Bit-Flag | Efeito quando definido |
---|---|
DEBUG_DISASM_EFFECTIVE_ADDRESS | Compute o endereço efetivo de cada instrução das informações de registro atuais e gere-as. |
DEBUG_DISASM_MATCHING_SYMBOLS | Se o endereço de uma instrução tiver uma correspondência de símbolo exata, gere o símbolo. |
DEBUG_DISASM_SOURCE_LINE_NUMBER | Inclua o número da linha de origem de cada instrução na saída. |
DEBUG_DISASM_SOURCE_FILE_NAME | Inclua o nome do arquivo de origem na saída. |
[out, optional] OffsetLine
Recebe o número de linha na saída que contém a instrução em Deslocamento. Se OffsetLine for NULL, essas informações não serão retornadas.
[out, optional] StartOffset
Recebe o local na memória do destino da primeira instrução incluída na saída. Se StartOffset for NULL, essas informações não serão retornadas.
[out, optional] EndOffset
Recebe o local na memória do destino da instrução que segue a última instrução desmontada.
[out, optional] LineOffsets
Recebe os locais na memória do destino das instruções incluídas na saída, começando com a instrução em Deslocamento. LineOffsets é uma matriz que contém elementos TotalLines .
Offset é o valor da primeira entrada nessa matriz, a menos que tenha havido um erro ao desmontar as instruções antes desta instrução. Nesse caso, a primeira entrada conterá DEBUG_ANY_ID e Offset será colocado na segunda entrada na matriz (índice um).
Se a saída de uma instrução abranger várias linhas, o elemento na matriz que corresponde à primeira linha da instrução conterá o endereço da instrução.
Se LineOffsets for NULL, essas informações não serão retornadas.
Retornar valor
Esse método também pode retornar valores de erro. Consulte Valores retornados para obter mais detalhes.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
Comentários
A linguagem de assembly depende do tipo de processador efetivo do sistema de destino. Para obter informações sobre o idioma do assembly, consulte a documentação do processador.
Para obter uma visão geral do uso do assembly em aplicativos de depurador, consulte Depuração no Modo de Assembly. Para obter mais informações sobre como usar o assembly com a API do mecanismo de depurador, consulte Instruções de montagem e desmontagem.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | dbgeng.h (inclua Dbgeng.h) |