オンライン・デバッグ・ツール(ODT )は、 Digital Equipment Corporation(DEC)のハードウェア向けに開発された複数のデバッガ・プログラム群です。OS /8、RT-11、RSX-11、RSTS/Eなどの様々なオペレーティングシステムはODTを実装しており、 LSI-11ファミリのプロセッサ(11/03、11/23/24、11/53、11/73、11/ 83 /84を含む)のファームウェアコンソールもODTを実装しています。
デバッガは、8進アドレスとデータを使用してメモリへのアクセスを許可します。ソフトウェア システム内で、デバッガはプロセスのアドレス空間にアクセスします。DEC の PDP-11 プロセッサ ラインは、オペレーティング システムの観点からは仮想メモリを実装していませんが、代わりに固定アドレス空間で動作します。このアドレス空間は、アクティブ ページ レジスタ (APR) を使用して、プログラムのアドレス空間の統一されたビューにマップされます。APR は、プログラムの RAM を 4K 16 ビット ワードずつ、最大 32K までマップできます。言い換えると、APR は、それぞれ 4K に制限された RAM の 8 つのセグメントをマップできます。この構造のため、APR は最大 32K 16 ビット ワードを RAM にマップできます。RSTS/E の場合、これは通常、ランタイム システム (RTS) がアドレス空間の上位部分にマップされ、ユーザー プログラムがアドレス空間の下位部分に常駐することを意味します。RTS は、ユーザー プログラムに代わってオペレーティング システムへのアクセスをサポートするコードを提供します。 RTS 自体は、その非静的データをユーザー プログラムのアドレス空間に格納します。これは、RTS が通常読み取り専用であるためです。オペレーティング システムは RTS のコピーを 1 つ読み込み、これがその RTS を必要とするユーザー プログラムにマッピングされます。APR は、RTS をプログラムのアドレス空間の上位部分に 4 KiB 単位でマッピングするように設定されています。そのため、BASIC Plus RTS (Basic+ プログラミング言語) は通常 16 KiB を自身にマッピングし、ユーザー プログラムは下位 16 KiB に 4 KiB 単位でマッピングされます。RT11 RTS は 4 KiB を占有するため、RT11 ベースの Peripheral Interchange Program (PIP) などのユーザー プログラムは最大 28 KiB まで拡張できます。
ODT は、バイナリのソースを再コンパイルすることなく、RTS などのバイナリ モジュールを「パッチ」するために使用できます。
ファームウェア コンソールの実装は物理メモリにアクセスします。
ODT は非シンボリック デバッガーであり、UnixシステムのAdvanced Debugger (adb)と同様の機能を実装します。
コンソールODT
コンソールODT [1]は、以前のプロセッサの多くに使用されていた「ライトとスイッチ」のコンソールを置き換えます。
コンソール ODT へのアクセスは、電源投入時 (適切な電源投入モードを選択)、カーネル モードでの HALT 命令の実行、またはフロント パネルの停止スイッチまたはボタンの使用によって行われます。
例
@1000/ xxxxxx 112737<LF> 001002 xxxxxx 101<LF> 001004 xxxxxx 177566<LF> 001006 xxxxxx 137<LF> 001010 xxxxxx 1000<CR> >R7/xxxxxx 1000<CR> >RS/340
これによりプログラムが保存されます
MOVB 'A' , @ #177566 ; 'A' をコンソール送信レジスタに移動JMP @ #1000 ; 開始位置に戻る
PC [プログラム カウンター] へのデポジットは、PC をプログラムの開始に設定し、PSW [プログラム ステータス ワード] へのデポジットは割り込みをロックします。
これにより、コンソールに「A」のストリームが書き込まれます。送信機の準備状況のチェックが行われないため、大量の文字化けした文字列が表示される可能性が高くなります。
RSX-11M-Plus ODT
RSX-11M-Plus ODT [2]は本質的に他のすべてのODT実装のスーパーセットです。
ODT は、タスク ビルダー /DA スイッチを使用してタスクにリンクされたコードとして実装されます。
TKB HELLO/DA、HELLO/CR=HELLO
ODT で構築されたタスクが実行されると、エントリ時に ODT が呼び出されます。
ランハロー ODT:TT0 _
アンダースコアは標準の ODT プロンプトです。
ODT デバッガー内のアドレスは、コンソール ODT で使用される物理アドレスではなく、ODT が動作しているモードの 16 ビット アドレスです。
OS/8 オクタルデバッグテクニック
PDP -8のOS/8オペレーティングシステムのODTコマンド[3]は、 Octal Debugging Techniqueツールを呼び出します。
後続の PDP-11 ODT プログラムと同様に、非シンボリックであり、メモリを調べたり変更したり、ブレークポイントを設定したりすることもできます。
参照
- 動的デバッグ手法(DDT)
- エグゼクティブ デバッグ テクニック (XDT)
参考文献
- ^ p192-202 PDP-11プロセッサハンドブック:pdp11/04/24/34a/44/70、デジタル、1981
- ^ IAS/RSX-11 ODTリファレンスマニュアル、注文番号AA-M507A-TC、Digital、1982
- ^ リファレンスマニュアル DEC-D8-COCO-D、ODT-8、1967年12月「DEC-D8-COCO-D ODT.pdf」(PDF) . BitSavers.org .