Use a first-class programming API to implement your own debugger
commands and analysis tools without having to recompile or modify the debugger
itself: In MDB, debugging support is implemented as a set of loadable modules
(shared libraries that the debugger can dlopen(3DL)), each of which provides a set of commands
that extends the capabilities of the debugger itself. The debugger in turn
provides an API of core services, such as the ability to read and write memory
and access symbol table information. MDB provides a framework for developers
to implement debugging support for their own drivers and modules; these modules
can then be made available for everyone to use.

Learn to use MDB if you are already familiar with the legacy
debugging tools adb(1) and crash(1M):
MDB provides backward compatibility with these existing debugging solutions.
The MDB language itself is designed as a superset of the adb language; all
existing adb macros and commands work within MDB so developers who use adb
can immediately use MDB without knowing any MDB-specific commands. MDB also
provides commands that surpass the functionality available from the crash
utility.