Solaris 模块调试器指南

引导、装入和卸载

为便于启动内核调试,可以在控制从内核运行时链接程序 (krtld) 传递到内核之前,在引导过程的初期阶段装入 kmdb。可以使用 -k 引导标志、kmdb 引导文件或 kadb 引导文件(用于实现兼容性)在引导时装入 kmdb。如果在引导时装入 kmdb,则在系统随后重新引导之前,无法卸载调试器。 在引导的初期阶段,某些功能不会立即可用。 特别是,在内核模块子系统初始化之前,不会装入调试模块。 在内核完成处理器标识过程之前,不会启用处理器特定功能。

如果使用 -k 选项引导系统,则会在引导过程中自动装入 kmdb。 可以使用 -d 引导选项,在启动内核之前请求调试器断点。 此功能适用于缺省内核以及替代内核。例如,要使用 kmdb 引导 SPARC 系统并请求立即进入调试器,请键入以下任一命令:



ok boot -kd

ok boot kmdb -d

ok boot kadb -d

要以相同方式引导 x86 系统,请键入以下任一命令:



Select (b)oot or (i)nterpreter: b -kd

Select (b)oot or (i)nterpreter: b kmdb -d

Select (b)oot or (i)nterpreter: b kadb -d	

要使用 kmdb 引导 SPARC 系统并装入备用 64 位内核,请键入以下命令:



ok boot kernel.test/sparcv9/unix -k

要使用 kmdb 引导 x86 系统并装入备用 64 位内核,请键入以下命令:



Select (b)oot or (i)nterpreter: b kernel.test/amd64/unix -k

如果引导文件被设置为字符串 kmdbkadb,并且希望引导替代内核,请使用 -D 选项指定要引导的内核的名称。要以此方式引导 SPARC 系统,请键入以下命令:



ok boot kmdb -D kernel.test/sparcv9/unix

要以此方式引导 32 位 x86 系统,请键入以下命令:



Select (b) or (i)nterpreter: b kmdb -D kernel.test/unix

要以此方式引导 64 位 x86 系统,请键入以下命令:



Select (b) or (i)nterpreter: b kmdb -D kernel.test/amd64/unix

要调试已引导的系统,请使用 mdb -K 选项装入 kmdb 并停止内核执行。如果使用此方法装入调试器,则随后可以卸载它。通过为 ::quit dcmd 指定 -u 选项,可以在完成调试后卸载 kmdb。或者,可以使用命令 mdb -U 恢复操作系统的执行。