知識ベース

MacsBug

MacsBugは、クラシックMac OS(Macintoshオペレーティングシステム)用の低レベル(アセンブリ言語/マシンレベル)デバッガーです。 MacsBugのはの頭字語であるM otorola A dvanced C omputer S ystemsデバグ GER、 マッキントッシュデバッガとは対照的に(モトローラ68000マイクロプロセッサはMACSSの頭字語で刻印されています)。元のバージョンは、モトローラが68000システムの一般的なデバッガとして開発したもので、プロジェクトの開発の初期段階でプログラマーツールとしてMacに移植されました。

MacsBugは、Macintoshの「Programmer's Key」を押すか、後に知られるように「Interrupt Key」を押すか、「Command-Power」を押すと呼び出されます。 MacsBugは、プロセッサレジスタの制御だけでなく、データの分解、検索、表示のための多くのコマンドを提供します。 MacsBugはMac OSではデフォルトでインストールされませんが、Macintosh Plus以降のすべてのMacintoshにはMicroBugと呼ばれるROM内のデバッガが含まれています。

偶然MacsBugに出くわしたユーザーは、 Gを入力してReturnキーを押すだけでMacsBugから脱出できます。ただし、MacsBugはデフォルトではインストールされないため、システム拡張が必要な​​ため、一般的なユーザー環境には含まれていません。ただし、非常に基本的なエラー回復を提供するために、エンドユーザーによってインストールされることがありました。従来のMac OSにはメモリ保護が欠けていたため、アプリケーションクラッシュによってシステム全体がフリーズする「ハードクラッシュ」は珍しくありませんでした。応答しないシステムの代わりにMacsBugをインストールすると、ユーザーはMacsBugにダンプされ、そこでESを入力してシェルに戻る(クラッシュしたアプリケーションを強制終了してFinderに戻る)か、 RBを再起動してシステムを再起動できます。このような復旧作業は、多くの場合成功しませんでしたが、唯一の代替手段はハードリセットです。

Mac OSバージョン7.5以降では、起動時にMacsBugの存在が示されます。ユーザーがテキストDebuggerがインストールされているのを見ると存在します(代わりに、デバッガー用に予約されたメモリ領域にロードされた別のソフトウェアが存在することを示す場合があります)。

MacsBugは元々、Motorola 68000シリーズのプロセッサ専用でした。 Appleが1994年にPower Macintoshを発表したとき、PowerPC命令セットとアーキテクチャをサポートする更新されたMacsBugがそれに続きました。

MacsBugの最後のバージョンは、2000年9月14日にリリースされた6.6.3でした。この最終バージョンは、Power Mac G4(ユニプロセッサおよびマルチプロセッサ)、Powerを含む、2000年の7月から9月にリリースされたすべてのマシンで動作しますMac G4 Cube、iMacファミリー(Ruby、Indigo、Sage、Graphite、Snow)、およびiBookファミリー(Indigo、Key Lime、Graphite)。

6.6.3では、MPタスクのデバッグのサポートが改善され、PCI I / O空間で使用された場合のメモリ設定コマンドのいくつかの重大なバグが修正されました。 Mac OS Xで実行している場合、Classicで使用することもできます。MacOS Xでは、「⌘-⏏」(またはイジェクトキーのないシステムでは「⌘-F12」)を押して起動します。

Mac OS Xでは、プログラマは使い慣れたMacsBugコマンドをgdbで使用できます。このgdbプラグインは、ディレクトリ/ usr / libexec / gdb / plugins / MacsBug /にあるOS X Developer Toolsに含まれています。

MacsBugに代わるサードパーティの代替品には、Darin Adler Extended User Area&Trap Disciplineに付属するICOM SimulationsのTMON(文書化されたすべてのMac APIパラメーターを検証できるようにする)と完全にシンボリックなJasikデバッガーがありました。複雑で非標準のユーザーインターフェイスが原因です。