gunl

导航

 

2011年8月14日

摘要: 使用 mdb 模块调试程序mdb(1) 模块调试程序可以应用于以下文件类型:实时操作系统组件操作系统崩溃转储用户进程用户进程核心转储对象文件mdb 调试程序可为分析内核问题提供复杂的调试支持。本节概述 mdb 功能。有关 mdb 的完整讨论,请参阅《Solaris 模块调试器指南》。尽管 mdb 可用来改变实时内核状态,但 mdb 缺少 kmdb 提供的内核执行控制。因此,kmdb 是进行运行时调试的首选调试程序,而 mdb 调试程序更多用于静态情况。注 – mdb 的提示符为 >。模块调试程序入门mdb 为实现调试程序模块提供了大量编程 API,从而使驱动程序开发者可以实现自定义调试支 阅读全文
posted @ 2011-08-14 16:18 gunl 阅读(839) 评论(0) 推荐(0) 编辑
 
摘要: http://www.filibeto.org/sun/lib/solaris10-docs/E19253-01/819-7057/eupvn/index.html使用 kmdb 内核调试程序kmdb 调试程序是可提供以下功能的交互式内核调试程序:控制内核执行检查内核状态实时修改代码本节假定您已熟悉 kmdb 调试程序。本节重点介绍在设备驱动程序设计中非常有用的 kmdb 功能。要详细了解如何使用 kmdb,请参阅kmdb(1) 手册页和《Solaris 模块调试器指南》。如果您熟悉 kadb,请参阅 kadb(1M) 手册页以了解 kadb 与 kmdb 的主要差别。可以任意装入和卸载 km 阅读全文
posted @ 2011-08-14 16:17 gunl 阅读(4477) 评论(0) 推荐(0) 编辑
 
摘要: http://download.oracle.com/docs/cd/E19253-01/819-7057/euxdg/index.html使用 kmdb 和 mdb 执行的有用调试任务本节提供了有用的调试任务示例。除非特别说明,否则本节中的任务均可使用 mdb 或 kmdb 来执行。本节假定您已了解 kmdb 和 mdb 的基本使用知识。请注意,此处提供的信息取决于所使用系统的类型。这些示例是使用运行 64 位内核的 Sun Blade 100 工作站生成的。注意 –由于修改内核结构中的数据会导致无法恢复的数据损毁,因此务必要格外谨慎。请勿修改或依赖于不属于 Solaris DDI 结构中的 阅读全文
posted @ 2011-08-14 16:13 gunl 阅读(1245) 评论(0) 推荐(0) 编辑
 
摘要: 本文介绍使用kmdb和mdb调试Solaris内核的基本方法,kmdb和mdb是Solaris默认安装的内核模块调试器,可以用于调试和定位内核模块及驱动程序发生的错误。本文仅用于学习交流目的,错误再所难免,如果有勘误或疑问请与作者联系。关键词: mdb/kmdb/panic/hung/crashdump/dump/kernel debug/Solaris/OpenSolaris事后分析(Postmortem Debug)是目前主流的商业操作系统支持的特性之一,windows, Aix, Freebsd都支持CrashDump及事后分析,最近Linux也逐渐加入了Crashdump和分析工具的支 阅读全文
posted @ 2011-08-14 16:06 gunl 阅读(1794) 评论(0) 推荐(0) 编辑
 
摘要: 要将整数参数 maxusers 的值从 495 更改为 512,请执行以下操作:# mdb -kwLoading modules: [ unix krtld genunix ip logindmux ptm nfs ipc lofs ]> maxusers/Dmaxusers:maxusers: 495> maxusers/W 200maxusers: 0x1ef = 0x200> $q使用要更改的项的实际地址以及此参数将设置为的值来替换 maxusers。有关使用模块调试程序的更多信息,请参见《Solaris 模块调试程序指南》。使用 kmdb 或 mdb 调试程序时,不需 阅读全文
posted @ 2011-08-14 15:53 gunl 阅读(439) 评论(0) 推荐(0) 编辑
 
摘要: MDB分析Solaris内核死锁问题:一个实例本文通过一个实例,描述了如何使用MDB调试分析Solaris内核死锁的问题。死锁是多线程内核必须面对的问题。部分死锁可以通过精心设计来避免。但随着现在操作系统的复杂性和并发性不断增加,代码规模迅速膨胀, 我们难以避免引入一些具有潜在危险的代码。下面的例子就是我们在Solaris系统测试中,遇到的一个读写死锁导致的系统挂起,下面引用的代码都来自 www.opensolaris.org。内核提供的同步机制都可能导致死锁,比如互斥锁(mutex), 读写锁(rw lock)等。而我们这个例子遇到是读写锁引起的死锁。这个问题发生在x64平台系统测试过程中, 阅读全文
posted @ 2011-08-14 15:42 gunl 阅读(2946) 评论(0) 推荐(0) 编辑