ACPI调试
Debug ACPI related issues
要理解WinDBG扩展命令的原理应该先理解WinDBG软件的架构,下图是以模块为单位所画出的架构示意图。最上层是四个EXE模块,它们提供了不同形式的用户接口,简称UI层。中间是调试引擎模块,它是WinDBG调试器的核心模块,大多数调试器的工作逻辑都包含在这个模块中。调试引擎下面是几个支撑模块。内核态的部分是操作系统提供的调试支持。
因此以调试引擎为中心,向上看是调试器与用户的接口,向下看便是与系统的接口。调试器作为一种相对独立的软件产品,保持其核心代码的稳定性和广泛的适用性是很重要的。像WinDBG这样的调试器,它要支持很多种版本的内核和应用程序,因此,保持这两个接口的稳定性是很重要的。向下的接口基本上是靠API的稳定性来保证的。
更多...
ACPI是现代计算机系统中BIOS与操作系统间的桥梁。ACPI不仅定义了很多电源和休眠有关的标准,它还定义了如何通过FADT、XSDT、RSDT以及ASL语言来实现与操作系统的交互。
有些系统问题,比如无法进入睡眠状态,无法唤醒(自动重启,或死机)等,是与ACPI直接有关的。但如何定位出错的具体原因一直是一个比较困难的课题。很多时候不得不使用排除及试探等间接方法来解决,效率很低。本文介绍一种直接跟踪ASL源代码的直接方法。
1, 将被调试机器上的ACPI.SYS换成Checked
更多...