デバッグ(コマンド)

DEBUG.COM (MS-DOS <= 2.0)、DEBUG.EXE (MS-DOS >= 3.x)
原作者ティム・パターソン
開発者マイクロソフトIBMデジタルリサーチノベルカルデラ
書かれたMS-DOS : x86アセンブリ言語
オペレーティング·システムDOSOS/2Windows
タイプデバッガ
ライセンスMS-DOS v2.0、FreeDOS: MIT OS/2、Windows:独自ソフトウェア
Webサイトデバッグ

行指向デバッガは、 DOSOS/2Windows(16ビット/32ビット版のみ[ 1 ] )などのオペレーティングシステムDEBUG.EXEの外部コマンドです。

DEBUG は、アセンブラ逆アセンブラ、または16 進ダンププログラムとして動作し、ユーザーは対話的にメモリの内容(アセンブリ言語16 進数、またはASCII 形式)を調べ、変更を加え、COMEXE 、その他のファイル形式を選択して実行することができます。また、特定のディスクセクターI/O ポートメモリアドレスにアクセスするためのサブコマンドもいくつか備えています。

概要

DEBUG.COMIBM PC DOS 1.0の (その他のコマンドとともに) 。
Microsoft Windows 95のDEBUG.EXEコマンド

伝統的に、すべてのコンピュータオペレーティングシステムには、プログラムが正しく動作しているかどうかを確認するためのメンテナンス機能が搭載されています。DEBUGはもともと、86-DOSでこの目的のためにティム・パターソンによって作成されました。パターソンが1980年代初頭にマイクロソフトで働き始めたとき、彼はこのプログラムを携えて来ました。DEBUGはDOS 1.00の一部であり、 MS-DOS / PC DOSおよび特定のバージョンのMicrosoft Windowsに含まれています。当初はDEBUGという名前でしたが、MS-DOS 3.2でDEBUGに改名されました。[ 2 ]DEBUG.COMDEBUG.EXE

Windows XP以降のバージョンでは、 MS-DOSとの互換性を維持するためDEBUGMS-DOSサブシステムが組み込まれています。16ビットDOSコマンドは64ビット版のWindowsでは利用できません。[ 3 ]

MS-DOS/PC DOS DEBUG にはいくつかの制限があります。

拡張 DEBUG パッケージには、 Novell DOS 7OpenDOS 7.01DR-DOS 7.02以降に含まれる DEBUG コマンドが含まれます。これは、以前のバージョンのDR DOSに付属していたDigital Researchの旧Symbolic Instruction Debugger SID/SID86 [ 4 ]の再実装です。[ 5 ] [ 6 ] [ 7 ]これは、MS-DOS/PC DOS の DEBUG コマンドライン構文と完全な互換性がありますが、 Pentiumまでの 16 ビットおよび 32 ビットのオペコードのサポート、多数の追加コマンドとサブモードを持つ拡張モード (/X)、ユーザー定義マクロによる大幅に拡張されたコマンドライン構文、名前付きレジスタ、ロードされたシンボルテーブル、数学演算、基数変換によるシンボリック デバッグ機能、コメント付き逆アセンブラなど、多くの機能強化が行われています。[ 8 ] [ 7 ]いくつかのバージョンでは、DPMSを利用して「ステルスモード」の保護モードデバッガとしても機能しました。[ 9 ]

DEBUGのFreeDOS版はPaul Vojtaによって開発され、MITライセンスの下でライセンスされています。[ 10 ]

32ビットDPMIプログラムをサポートする32ビットクローン「DEBUGX」バージョンも存在する。[ 11 ] HX DOSエクステンダーの作者であるAndreas "Japheth" Grechは、拡張DEBUGバージョン0.98から1.25を開発し、元PC DOS開発者のVernon C. Brooksはバージョン1.26から1.32を追加した。[ 12 ]

構文

DEBUG [[ドライブ:][パス] ファイル名 [パラメータ]]

DEBUGをパラメータなしで起動すると、DEBUGプロンプトに「-」が表示されます。ユーザーは、1文字または2文字のサブコマンドのいずれかを入力できます。「A」はアセンブラモードに入り、「D」は16進ダンプを実行し、「T」はトレースを実行し、「U」はメモリ内のプログラムを逆アセンブルします。[ 13 ] DEBUGは、以下の構文を使用して「DEBUGスクリプト」インタープリタ として使用することもできます。

DEBUG < ファイル名 

スクリプトファイルにはDEBUGサブコマンドとアセンブリ言語命令が含まれている場合があります。[ 14 ]この方法は、バッチファイルからバイナリファイルを作成または編集するために使用できます。[ 2 ]

デバッグサブコマンド

以下は、コマンド経由で MS-DOS 6.22 の DEBUG.EXE から使用できる DEBUG コマンドの一覧です?

組み立てA [アドレス] C範囲アドレスを比較する ダンプD [範囲] Eアドレスを入力 [リスト] F範囲リストを埋める go G [=アドレス] [アドレス] 16進数H値1値2 入力Iポート ロードL [アドレス] [ドライブ] [最初のセクター] [番号] M範囲アドレスを移動 名前 N [パス名] [引数リスト] 出力Oポートバイト 続行 P [=アドレス] [番号] Qを終了 レジスターR [レジスター] 検索S範囲リスト トレースT [=アドレス] [値] アンアセンブルU [範囲] 書き込み W [アドレス] [ドライブ] [最初のセクター] [番号] 拡張メモリ XA を割り当てる [#pages] 拡張メモリの割り当てを解除する XD [ハンドル] 拡張メモリページをマップする XM [Lpage] [Ppage] [handle] 拡張メモリステータスXSを表示 

Rコマンドは現在のレジスタの状態と値を表示します。

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2A63 ES=2A63 SS=2A63 CS=2A63 IP=0100 NV UP EI PL NZ NA PO NC 2A63:0100 0F DB 0F 

Dは現在のメモリをダンプし、16進数とASCII値の両方を表示します。

2A63:0100 0F 00 B9 8A FF F3 AE 47-61 03 1F 8B C3 48 12 B1 ......ガ....H.. 2A63:0110 04 8B C6 F7 0A 0A D0 D3-48 DA 2B D0 34 00 52 2A ........H.+.4.R\* 2A63:0120 00 DB D2 D3 E0 03 F0 8E-DA 8B C7 16 C2 B6 01 16 ... 2A63:0130 C0 16 F8 8E C2 AC 8A D0-00 00 4E AD 8B C8 46 8A ..........N...F. 2A63:0140 C2 24 FE 3C B0 75 05 AC-F3 AA A0 0A EB 06 3C B2 .$.<.u....<. 2A63:0150 75 6D 6D 13 A8 01 50 14-74 B1 BE 32 01 8D 8B 1E うーん...Pt.2.... 2A63:0160 8E FC 12 A8 33 D2 29 E3-13 8B C2 03 C3 69 02 00 ....3.)......i.. 2A63:0170 0B F8 83 FF FF 74 11 26-01 1D E2 F3 81 00 94 FA .....t.&..... 

そしてU nassembleは同じメモリの逆アセンブリの試みを表示します

2A63:0100 0F DB 0F 2A63:0101 00B98AFF ADD [BX+DI+FF8A]、BH 2A63:0105 F3 レップズ 2A63:0106 AE SCASB 2A63:0107 47 INC DI 2A63:0108 61 DB 61 2A63:0109 031F BXを追加、[BX] 2A63:010B 8BC3 ムーブ AX、BX 2A63:010D 12月48日 AX 2A63:010E 12B1048B ADC DH、[BX+DI+8B04] 2A63:0112 C6F70A ムーブ BH、0A 2A63:0115 0AD0 または DL、AL 2A63:0117 D348DA RORワードポインタ [BX+SI-26],CL 2A63:011A 2BD0 サブ DX、AX 2A63:011C 3400 排他的論理和 AL,00 2A63:011E 52 プッシュDX 2A63:011F 2A00 サブAL、[BX+SI] 

デバッグ以外の目的で使用する

DEBUGユーティリティは、DOSのみがインストールされている環境でバイナリファイルを編集するのに役立ちます。また、ディスクセクターの編集にも使用でき、ブートセクターウイルスを除去する方法の一つです。

可用性

DEBUGコマンドの技術文書はMS-DOS 3.3のリリースで削除されましたが、 EXE2BINとは異なり、このコマンドは標準の配布に保持されました。[ 15 ]

その他のオペレーティングシステム

オペレーティングシステムIntel ISIS-II [ 16 ]およびiRMX 86[ 17 ] DEC TOPS-10 [ 18 ]およびTOPS-20[ 19 ] THEOS/OASIS[ 20 ] Zilog Z80-RIO[ 21 ] Stratus OpenVOS[ 22 ] PC-MOS[ 23 ]およびAROS [ 24 ]もコマンドを提供していますDEBUG

参照

参考文献

  1. ^ Microsoft Macro Assembler Referenceによると、インライン アセンブリは x64 ではサポートされていません。
  2. ^ a b Sedory, Daniel B. 「A Guide to DEBUG」 . 2014年11月29日閲覧
  3. ^ MS-DOSサブシステムコマンド
  4. ^ SID-86 User's Guide for CP/M-86 (2 ed.). Digital Research . August 1982 [March 1982]. SID86UG.WS4. 2019年10月20日時点のオリジナルよりアーカイブ。 2020年2月6日閲覧[1] (注: エマニュエル・ロッシュによるマニュアルの再入力版で、Q、SR、Zコマンドが追加されています。このマニュアルはCP/M-86版用ですが、DR DOS版も同様です。)
  5. ^ギュンター[ドイツ語]生まれ(1993 年)。DOS 6 チューニング(ドイツ語) (第 1 版)。マルクト&テクニックISBN 3-87791-495-0(注: MS-DOS DEBUG.EXE およびDR DOS 5.0 / 6.0のSymbolic Instruction Debugger SID.EXEに関するページがいくつかあります。)
  6. ^ Paul, Matthias R. (1997-05-24) [1991]. DRDOSTIP.TXT — Tips und Tricks für DR DOS 3.41 - 5.0 (in German) (47 ed.). 2016年11月7日時点のオリジナルよりアーカイブ。 2016年11月7日閲覧{{cite book}}:|work=無視されます (ヘルプ) (注: DR-DOS DEBUG.EXE の前身である Symbolic Instruction Debugger ( DR DOS 3.41の SID86.EXE 、DR DOS 5.0/6.0 の SID.EXE) に関する情報がいくつかあります。)
  7. ^ a b Paul, Matthias R. (2002-01-09). "SID86" .ニュースグループcomp.os.cpm . 2018-04-08閲覧. […] DR-DOS 7.03 DEBUG は依然として古い SID86.EXE をベースにしているため、DEBUG 1.51 を実行し、デバッグプロンプトから ?? で拡張ヘルプシステムに入ることをお勧めします。これにより、構文と機能に関するヘルプが8画面表示されます。これらの機能の一部は、以前のバージョンでもサポートされていました。[…]
  8. ^ポール、マティアス R. (1997-07-30)。 「Kapitel II.5. Allgemeines: Undokumentierte Möglichkeiten von DEBUG」 [文書化されていない DEBUG の機能]。NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 157 (ドイツ語) (第 3 版)。2017-09-10 のオリジナルからアーカイブ2014 年 9 月 6 日に取得{{cite book}}:|work=無視されます (ヘルプ) (注: NWDOSTIP.TXT はNovell DOS 7およびOpenDOS 7.01に関する包括的な作業であり、多くの文書化されていない機能と内部の説明が含まれています。これは、2001 年まで維持され、当時多くのサイトで配布されていた、著者のさらに大規模な MPDOSTIP.ZIP コレクションの一部です。提供されているリンクは、HTML に変換された古いバージョンの NWDOSTIP.TXT ファイルを指しています。)
  9. ^ポール、マティアス R. (2001-04-09)。NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 183 (ドイツ語) (第 3 版)。{{cite book}}:|work=無視されました (ヘルプ)
  10. ^ 「FreeDOS 1.2 アップデートパッケージ - デバッグ (FreeDOS ベース)」 . Ibiblio.org. 2021年2月16日. 2022年9月8日閲覧
  11. ^ Vojta, Paul. 「DEBUG README」 . 2007年8月24日時点のオリジナルよりアーカイブ2007年6月25日閲覧。
  12. ^ Brooks, Vernon C. (2014年4月8日). 「Enhanced DEBUG for PC DOS and MS-DOS」 . PC DOS Retro . 2020年2月21日時点のオリジナルよりアーカイブ2014年5月8日閲覧。
  13. ^ 「Microsoft TechNet デバッグ記事」 。 2008年4月23日閲覧
  14. ^ Irvine, Kip R. (2010). 「デバッグの使用」. Intelベースコンピュータ用アセンブリ言語(PDF) (第6版). Prentice Hall . ISBN 978-0-13602212-1. 2014年3月18日閲覧
  15. ^ Dror, Asael (1988年1月12日). 「IBMに感謝します」. PC Magazine . p. 366.
  16. ^ ISIS II ユーザーズガイド
  17. ^ iRMX 86 リリース 6 の概要およびオペレータ リファレンス マニュアル
  18. ^ TOPS-10 オペレーティングシステムコマンドマニュアル(PDF) . Digital Equipment Corporation. 1980年8月. 2020年8月9日時点のオリジナル(PDF)からアーカイブ。 2019年2月17日閲覧
  19. ^ 「TOPS-20 コマンドマニュアル」(PDF)2020年8月9日時点のオリジナル(PDF)からアーカイブ。 2018年7月18日閲覧
  20. ^ THEOS/OASIS ユーザーズハンドブック
  21. ^ 「Z80-RIOオペレーティングシステムユーザーズマニュアル」(PDF) 。 2022年1月28日時点のオリジナル(PDF)からアーカイブ。 2019年5月4日閲覧
  22. ^ 「OpenVOS コマンド リファレンス マニュアル」(PDF)
  23. ^ PC-MOS ユーザーガイド
  24. ^ 「AROS研究用オペレーティングシステム」 。 2019年7月2日時点のオリジナルよりアーカイブ2025年8月9日閲覧。