WDEB386 の使用に関するヒント

文書翻訳 文書翻訳
文書番号: 72379 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

WDEB386 デバッガーでは、Windows ソフトウェア開発キット (SDK) を提供は貴重機能の多くは、ただし、またはさまざまな欠点。 この資料でいくつかの点を WDEB386 ことができますを行うことはできませんし、使用上のいくつかのヒントについて説明します。

詳細

WDEB386 を使用する理由

WDEB386 デバッガーが、最初の開発および Windows の拡張モード層をデバッグするためのマイクロソフト内部ツールとして書き込まれました。 そのため、多くのマルチタスキング、プロテクト モードのシステムのデバッグに必要な高度な機能が、保持されます。 同じ時に、このデバッグ環境の低レベルの性質は扱いにくいと多くの状況で混乱します。 ただし、このデバッガーが便利なので、または、次のような問題の診断に、まったくでも必要な多くの状況があります。

  • CVW がトレースされないを低レベルのコードによってトレース
  • 仮想/線形または物理メモリを表示します。
  • GDT などの 386 のプロセッサ データの詳細を表示する LDT、IDT、およびすべての PMODE の登録します。
  • ハードウェア割り込みハンドラーのトレース
  • -常駐型プログラム (TSR)、または MS-DOS デバイスのドライバーをトレースします。
  • バーチャル マシン (VM) の状態を表示します。
  • すべての割り込みと拡張モードでの例外を監視します。
  • 開発およびデバッグ エンハンス モード用の仮想デバイス (VxD)
これは、網羅はただし、WDEB386 デバッガーが使用する通常の状況のいくつかを説明する機能する必要があります。

起動時にデバッガーを分割します。

1 つのコマンド ライン オプションを「Microsoft Windows ソフトウェア開発キット ツール」マニュアルの第 9 章に記載されていないは/B オプションです。 WDEB386 コマンド ラインで/B を指定するようにデバッガーを Windows の起動時に実行を停止します。 このオプションは、デバッガーが実行の非常に最初の命令の実行を停止することを保証されません。 実際には、デバッガー停止しませんまで実行 Windows が VxD を初期化する直前に読み込まれた後です。

全般、デバッガーの分割

WDEB386 は、実行中、現在の命令ストリームの実行できる、Ctrl キーを押しながら Alt キーを押しながらシステムの RQ キーの組み合わせ停止されます。 これは、キーボード割り込みの正確な位置に実行が停止しない、バーチャル マシン マネージャー (VMM) の場所で実行が停止します。 .VM コマンド (下記を参照してください) を使用して、中断されたバーチャル マシンのレジスタの内容を検査できます。

また、ブレークポイント、コードに直接アセンブル割り込み指示と BP コマンドで設定できます。 INT 1 または INT 3 命令を使用できます。 違いは、INT 1 は、「予期しないトレース割り込み」メッセージを生成および命令の INT 1 後で終了しているです。 このメッセージはエラー状態を示しませんおり、無視してもかまいません。 INT 3、INT で直接中断をメッセージを生成しません。 ブレークポイントの命令にヒットした後、削除できます完全に"Z"コマンドを使って。 このコマンドは、INT 機械語を NOPs (いいえ操作) に置き換えます。

また、必要なハードウェアが利用場合、マスク不可能割り込み (NMI)、デバッガーを中断する使用できます。 つまり、通常、外部"STOP"ボタンを開発用コンピューターのスロットにインストールされたデバッグ カードに接続を持ちます。 一部のコンピューターの前面パネル ボタン NMI 行コンピューター バス上に接続する機能があります。 いずれにしても、NMI は割り込みを無効になっていると「ハング」がコンピューターに分割することの利点です。

仮想デバイス ドライバー (VxD) を開発するプログラマ、Debug_Out マクロをターミナルのデバッグに ASCII 文字列を送信とデバッガーへの解除は、INT 1、実行を組み合わせて使用できます。

標準モードで WDEB386 を使用してください。

WDEB386 デバッガーは提供主エンハンス モードのデバッグ、ただし、これでも使えます 386 プロセッサでの標準モードで。 一般に、WDEB386 のデバッガー標準モードでの操作は、拡張モードの場合と同じ多数の機能が Windows 3. 0 では特に、使用できない点を除いて。

たとえば、"/b"起動時に分割するオプションはのみ Windows 3. 0 の拡張モードで使用できます。 Windows 3. 1 標準モードでことは。 「ドット」コマンド (コマンドは、ピリオドを付けます) の多くは拡張モードの提供され、標準モードでは利用できません。

プロセッサの状態を決定します。

コントロールがデバッガーに与えられて、使用するプロンプト文字は、プロセッサのプロテクト モードの状態を提供します。 次に示しますとプロンプト文字が表示され、それぞれの意味:
    Character  Meaning
    ---------  -------

       >       The processor is in real mode
       #       The processor is in protected mode
       -       The processor is in virtual 8086 mode
				
、モードのプロセッサがどのようなコードが実行されて適切な表示になります。 たとえば、プロンプトが場合、「-」(ハイフン)、現在の命令ストリームがどこか MS-DOS、BIOS、または可能性のある、TSR または MS-DOS デバイス ドライバー。 これは Windows の拡張モード層 MS-DOS または BIOS の関数を実行する V86 モードに、プロセッサを切り替える必要があるためです。 またに「#」(シャープ記号)、プロンプト場合、--これは、Windows ベースのアプリケーション、DLL、または、エンハンス モード レイヤーも--、プロテクト モード コードの実行します。

「何が実行されて把握」最も重要な側面は、の 1 つ WIN386.EXE のいくつかの認識が拡張モードで Windows で WDEB386 を使用します。 このモジュールは、VMM (バーチャル マシン管理者) とすべて VxD (仮想デバイス) から成ります。 これらのコンポーネントは「拡張モード レイヤー」として「リング 0 個のコードは、」参照まとめて多くの場合、またはだけ"WIN386:" [Windows 3. 0 および 3. 1、および Windows ワークグループ、バージョン 3. 0、3. 1、および 3. 11 を場合デバッガー プロンプトは、「#」され、CS レジスタの値が 0028h は意味 WIN386 で、コンピューターが停止します。

WIN386 で停止は可能性があります。 または望ましいできない可能性があります。 たとえば、WDEB386 の WIN386 で停止する能力が VxD 開発者を対象となる、VxD を通じてシングル ステップをできます。 ただし、アプリケーションまたはデバイス ドライバーのプログラマが、「保護モード認識」のため、WDEB386 を使用してありますありません WIN386 が何に役立つ。 いずれの場合も、現在の実行ストリームに関連付けられたシステム コンポーネントを認識は WDEB386 を効果的に使用、重要な手順です。

線コマンドの使用

おそらく WDEB386 の使い方についての最も興味深い (と混乱を招く) の部分に関するの「ドット」コマンドをコマンドのピリオドが付いているです。 混乱の原因の 1 つは、WIN386.EXE のデバッグ バージョンがインストールされて、ほとんどのドット コマンドが利用できないことです。 たとえば、Windows の拡張モードで実行中に次のメッセージが表示されます。
Win386 が読み込まれず、バージョン、または応答していないをデバッグしません。
ほとんどの場合、WIN386.EXE の製品版がインストールすることを表します。 WIN386、単語に対するクエリのデバッグ バージョンをインストールの詳細については。
prod(winddk) および wdeb386
また、この WDEB386 を Windows が標準モードのときに使用する場合このメッセージが常に表示されます。

ドット ダンプ コマンド

概念的には、ドット コマンドは「外部」コマンドは、またはデータ構造と、Windows 環境に固有の操作を操作するコマンドです。 たとえば、D (ダンプ) コマンドをデバッガーから予測されるとおりにメモリ ロケーションを表示するが、HEAPWALK アプリケーションとほとんど同じ方法で Windows グローバル ヒープ情報を表示する".DG"コマンドをします。

ほとんどの.Dx コマンド、デバッグ バージョンの WIN386.EXE を必要としないされ、標準モードで利用できるようもなります。 残りのコマンドをこの資料の「現象」記載のは両方の WIN386.EXE もデバッグ バージョンを要求しモード操作を拡張します。 すべてが正しくインストールされると、". しますか?"help コマンド ドット コマンドのオンライン、クイック リファレンスを提供する必要があります。

1 つの重要行われる必要がありますは、"K"と".DS"コマンドの違いです。 Windows ベースのアプリケーションまたはダイナミック リンク ライブラリ (DLL) のコードで、デバッガーが停止した場合に限り、"K"コマンドは Windows スタックをウォークします。 ただし場合は、デバッガーは WIN386 のコードによってトレースが、"K"コマンドは、便利な出力を生成しません。 このような理由から、WIN386 スタックを表示する、".DS"コマンドが指定されています。 これは「何が実行されてを知ること」の重要性の別のデモ述べたこの資料にします。

ドット VM コマンド

WDEB386 はもともと Windows の拡張モード層をデバッグする設計されたもの。 したがってが存在がする WIN386 の途中で、デバッガーが停止した場合。 たとえば、Ctrl キーを押しながら Alt キーを押しながらシステム RQ を使用して、実行が停止、コンピューターは停止されませんすぐに実行されていた命令が WIN386 のコードでブレークポイントではなく。 したがって、一般的なレジスタの操作を行いますされて通常何も入力、ドライバーやアプリケーションをデバッグしようとして開発者に使用されるできません。

ただし、運用、現在のバーチャル マシンの状態は.Vx コマンドを使用して表示できます。 たとえば、".VM"は、ステータスのフラグを表示、内容、現在の命令、および、現在 VM のスタックの一部を登録します。 ".VL"を入力、バーチャル マシンのすべての一覧、システムになります。 これらのコマンドを使用をアプリケーションの概要を取得できます WIN386 の状態にではなくとして、DLL、MS-DOS、または BIOS の実行状態。

ドット メモリ コマンド

.Mx コマンドは、メモリの状態に関する高度な情報を表示します。 さらに読みやすい形式での内部の WIN386 情報を印刷機能の多くと。 すぐに役立ちます 2 コマンドは".ML"と".MP"には。 これらのコマンド変換と逆に、物理的な線形からアドレスを変換します。

ドット トレース コマンド

割り込みのトレース情報を維持するため、".T"と".S"コマンド。 トレースのエントリは、VM のブロック アドレス、および中断された命令のアドレス、どのような割り込みが行わ説明します。 これらのコマンドは、即時の現象が得られない問題 (バグ) の追跡で非常に役立ちます。

ドット デバイス コマンド

WIN386 と WDEB386 は、個々 の VxD 独自の動作状態に関する情報を表示するの機能を提供します。 一般に、ユーザー要求できますこの VxD から情報を「名」は、VxD の名前を WDEB386 プロンプトで .name を入力してデバッグします。 たとえば、仮想 DMA デバイスの状態に関する情報を生成 .VDMAD を入力します。

ドット デバイス コマンドを発行、VxD を"Debug_Query"メッセージの送信 VMM になります。 、このメッセージに応答を行うには、VxD は必要ありません、して実際には多く VxD はデバッグ出力を生成されません。 通常、VxD によってこの方法で生成される出力が記載されていないと、デバッグ対象の VxD の手段としてのみ提供されています。 VxD 開発者、仮想デバイスの状態を定義する重要なデータ構造を表示するこのメカニズムを利用することがあります。

ドット コマンドの概要

ドット コマンド セクション 9. 6 (9-48 のページ) の「Microsoft Windows ソフトウェア開発キット ツール」のマニュアルにまとめます。 オンラインのクイック リファレンス画面は、". しますか?"コマンド。

注: をドット コマンド数 SDK ツールのマニュアルに記載されていません。 たとえば、ドット デバイス コマンドの形式は説明が特定の仮想デバイスによって生成される実際の出力が与えられていません。 この理由を数多くあります。

  • 通常、ドット コマンドによって生成される出力は、WDEB386 デバッガーが WIN386 のコンポーネントではなくいない生成されます。 これらのコンポーネントは更新し、デバッガーよりもさらに動的に更新されるされ、これらのコンポーネントによって生成される情報を変更する可能性がためです。
  • 出力自体には、VxD に関する非常に具体的な情報は、通常はありません、一般的なデバッグの状況で役立ちます。

プロパティ

文書番号: 72379 - 最終更新日: 2004年7月22日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.0
  • Microsoft Windows Device Development Kit (DDK) for Windows 3.1
キーワード:?
kbmt KB72379 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:72379
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com