次の方法で共有


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 の命令を含む出力の行番号受け取ります。 OffsetLine が NULL 場合、この情報は返されません。

[out, optional] StartOffset

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

[out, optional] EndOffset

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

[out, optional] LineOffsets

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

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

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

LineOffsets が NULL 場合、この情報は返されません。

戻り値

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

リターン コード 形容
S_OK
メソッドが成功しました。

備考

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dbgeng.h (Dbgeng.h を含む)

関連項目

逆アセンブル

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (組み立て)