Solaris 模块调试器指南

第 1 章 模块调试器概述

模块调试器 (Modular Debugger, MDB) 是用于 Solaris 的通用调试工具,其主要特性是可扩展性。 本书介绍如何使用 MDB 调试复杂的软件系统,尤其着重介绍了可用于调试 Solaris 内核以及关联的设备驱动程序和模块的工具。 本书还提供了 MDB 语言语法、调试器功能和 MDB 模块编程 API 的完整参考并对它们进行了讨论。

简介

调试是分析软件程序的执行过程和状态以便去除缺陷的过程。 传统的调试工具提供了执行控制功能,以便程序员可以在受控环境中重新执行程序,并显示程序数据的当前状态或以用于开发程序的源语言计算表达式。遗憾的是,这些方法通常不适合用于调试复杂的软件系统,例如:

MDB 是一种工具,它可为调试这些程序和方案提供完全可自定义环境,其中包括程序员用来实现其自己的调试命令以执行程序特定的分析的动态模块工具。每个 MDB 模块都可用于在几种不同的上下文(包括实时的和事后的)中检查程序。Solaris 操作系统包含一组 MDB 模块,旨在帮助程序员调试 Solaris 内核以及相关的设备驱动程序和内核模块。第三方开发者可能会发现,为监控程序或用户软件开发和提供自定义的调试模块是很有用的。

MDB 功能

MDB 可提供范围广泛的功能集合,用于分析 Solaris 内核和其他目标程序。您可以:

使用 MDB

在 Solaris 系统中,以共享通用功能的两个命令提供 MDB:mdbkmdb。可以使用 mdb 命令以交互方式或在脚本中调试实时用户进程、用户进程核心转储文件、内核崩溃转储、实时操作系统、目标文件和其他文件。在还需要控制和停止内核执行时,可以使用 kmdb 命令调试实时操作系统内核和设备驱动程序。要启动 mdb,请执行 mdb(1) 命令。要启动 kmdb,请引导系统(如 kmdb(1) 手册页中所述)或执行带 -K 选项的 mdb 命令。

未来的增强功能

MDB 为开发高级事后分析工具打下了稳定的基础。每个 Solaris 操作系统发行版都包括提供更复杂功能的附加 MDB 模块,用于调试内核和其他软件程序。可以使用 MDB 调试现有的软件程序,以及开发自定义的模块以提高调试自己的 Solaris 驱动程序和应用程序的能力。