このセクションでは、デバイスドライバに適用可能な 2 つのデバッガについて説明します。両デバッガの詳細については、Oracle Solaris Modular Debugger Guide を参照してください。
kmdb(1) カーネルデバッガは、ブレークポイント、ウォッチポイント、シングルステップ実行などの典型的な実行時デバッガ機能を提供します。 kmdb デバッガは、以前のリリースで使用可能だった kadb を置き換えるものです。kmdb では新しい機能のほかに、kadb で以前に使用可能だったコマンドも使用されています。kadb はブート時にしかロードできませんでしたが、kmdb はいつでもロードできます。kmdb デバッガは、実行制御機能を備えているため、ライブでの対話式デバッグに適しています。
mdb(1) モジュラーデバッガは、リアルタイムデバッガとしては kmdb よりも制限がありますが、mdb には事後デバッグ用の豊富な機能が備わっています。
デバッガ kmdb と mdb は基本的に同じユーザーインタフェースを共有しています。したがって、両ツールの同じコマンドでは、多くのデバッグ手法が適用可能となっています。どちらのデバッガもマクロ、dcmd、および dmod をサポートしています。dcmd (「ディーコマンド」と発音) は、現在のターゲットプログラムのすべてのプロパティーにアクセス可能なデバッガ内のルーチンです。dcmd は実行時に動的にロードできます。デバッガモジュールの短縮形である dmod は dcmd をパッケージ化したものであり、標準以外の動作を提供するためにロードできます。
mdb と kmdb はどちらも、adb や kadb といった旧バージョンのデバッガと下位互換性を保っています。mdb デバッガは、kmdb で使用可能なすべてのマクロを実行できるだけでなく、adb 向けの旧バージョンの任意のユーザー定義マクロも実行できます。標準マクロセットの検索場所については、『Oracle Solaris モジューラデバッガ』を参照してください。