Limitations on Examining Process Core Files
MDB does not provide support for examining process core files that were generated
by a release of the Solaris operating system preceding Solaris 2.6. If a
core file from one operating system release is examined on a different operating
system release, the run-time link-editor debugging interface (librtld_db) may not
be able to initialize. In this case, symbol information for shared libraries will
not be available. Furthermore, since shared mappings are not present in
user core files, the text section and read-only data of shared libraries
may not match the data that was present in the process at
the time it dumped core. Core files from Solaris x86 systems may not
be examined on Solaris SPARC systems, and vice-versa.
Limitations on Examining Crash Dump Files
Crash dumps from Solaris 7 and earlier releases may only be examined with
the aid of the libkvm from the corresponding operating system release. If
a crash dump from one operating system release is examined using the
dmods from a different operating system release, changes in the kernel implementation may
prevent some dcmds or walkers from working properly. MDB will issue a warning
message if it detects this condition. Crash dumps from Solaris x86 systems may
not be examined on Solaris SPARC systems, and vice-versa.
Relationship Between 32-bit and 64-bit Debugger
MDB provides support for debugging both 32-bit and 64-bit programs. Once it has
examined the target and determined its data model, MDB will automatically re-execute the
mdb binary that has the same data model as the target, if
necessary. This approach simplifies the task of writing debugger modules, because the modules
that are loaded will use the same data model as the primary
target. Only the 64-bit debugger may be used to debug 64-bit target
programs. The 64-bit debugger can only be used on a system that is
running the 64-bit operating environment.
Limitations on Memory Available to kmdb
The memory available to kmdb is allocated when the debugger is loaded, and
cannot be expanded after that point in time. If debugger commands attempt to
allocate more memory than is available, they will not be able to execute.
The debugger will attempt to gracefully recover from low memory situations, but may
be forced to terminate the system under dire circumstances. System memory constraints are
especially acute on x86 platforms that use the 32–bit operating system kernel.
The mdb(1) man page provides a detailed description of built-in mdb features for
easy developer reference. The header file <sys/mdb_modapi.h> contains prototypes for the functions in the
MDB Module API, and the SUNWmdbdm package provides source code for an example
module in the directory /usr/demo/mdb.