次の方法で共有


IDebugControl3::OutputDisassemblyLines メソッド (dbgeng.h)

OutputDisassemblyLines メソッドは、いくつかのプロセッサ命令を逆アセンブルし、結果のアセンブリ命令を出力コールバックに送信します。

構文

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

パラメーター

[in] OutputControl

出力を受信するクライアントの出力コールバックを決定する出力コントロールを指定します。 使用可能な値については、「 DEBUG_OUTCTL_XXX」を参照してください。 出力の詳細については、「 入力と出力」を参照してください。

[in] PreviousLines

出力に含める Offset の命令の前の命令行数を指定します。 通常、各命令は 1 行で出力されます。 ただし、一部の命令では複数行の出力が必要な場合があります。これにより、 Offset の命令の前に出力される行数が PreviousLines より大きくなる可能性があります。

[in] TotalLines

出力に含める命令行の合計数を指定します。 通常、各命令は 1 行で出力されます。 ただし、一部の命令では複数行の出力が必要な場合があります。これにより、出力される行数が TotalLines を超える可能性があります。

[in] Offset

逆アセンブリする命令のターゲットのメモリ内の場所を指定します。 逆アセンブリ出力は、これらのプロセッサ命令の前に PreviousLines 行を開始します。

[in] Flags

このメソッドの動作に影響するビット フラグを指定します。 次の表に、設定できるビットの一覧を示します。

Bit-Flag 設定時の効果
DEBUG_DISASM_EFFECTIVE_ADDRESS 現在のレジスタ情報から各命令の有効アドレスを計算し、出力します。
DEBUG_DISASM_MATCHING_SYMBOLS 命令のアドレスに完全に一致するシンボルがある場合は、シンボルを出力します。
DEBUG_DISASM_SOURCE_LINE_NUMBER 出力に各命令のソース行番号を含めます。
DEBUG_DISASM_SOURCE_FILE_NAME 出力にソース ファイル名を含めます。

[out, optional] OffsetLine

Offset の命令を含む出力の行番号を受け取 りますOffsetLineNULL の場合、この情報は返されません。

[out, optional] StartOffset

出力に含まれる最初の命令のターゲットのメモリ内の場所を受け取ります。 StartOffsetNULL の場合、この情報は返されません。

[out, optional] EndOffset

最後に逆アセンブルされた命令に続く命令のターゲットのメモリ内のロケイトンを受け取ります。

[out, optional] LineOffsets

Offset の命令から始まる出力に含まれる命令のターゲットのメモリ内の場所を受け取 りますLineOffsets は、 TotalLines 要素を含む配列です。

Offset は、この命令の前に命令を逆アセンブルするエラーがない限り、この配列内の最初のエントリの値です。 この場合、最初のエントリにはDEBUG_ANY_IDが含まれており、 Offset は配列の 2 番目のエントリ (インデックス 1) に配置されます。

命令の出力が複数行にまたがる場合、命令の最初の行に対応する配列内の要素には命令のアドレスが含まれます。

LineOffsetsNULL の場合、この情報は返されません。

戻り値

このメソッドは、エラー値を返すこともできます。 詳細については、「 戻り値 」を参照してください。

リターン コード 説明
S_OK
メソッドは正常に実行されました。

注釈

アセンブリ言語は、ターゲット システムの有効なプロセッサの種類によって異なります。 アセンブリ言語の詳細については、プロセッサのドキュメントを参照してください。

デバッガー アプリケーションでのアセンブリの使用の概要については、「 アセンブリ モードでのデバッグ」を参照してください。 デバッガー エンジン API でアセンブリを使用する方法の詳細については、「 アセンブリと逆アセンブルの手順」を参照してください。

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h を含む)

こちらもご覧ください

逆アセンブル

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (逆アセンブル)