编写设备驱动程序

修改内核变量

可以使用 kmdbmdb 来修改内核变量或其他内核状态。使用 mdb 修改内核状态时要格外谨慎,因为 mdb 在进行修改前不会停止内核。使用 kmdb 可以原子方式进行成组修改,因为 kmdb 会在允许用户访问之前停止内核。mdb 调试程序只能进行单个原子修改。

务必要使用正确的格式指示符来进行修改。格式可以为:

使用 ::sizeof dcmd 可以确定要修改的变量的大小。

以下示例使用值 0x80000000 覆写 moddebug 的值。


示例 22–24 使用调试程序修改内核变量


> moddebug/W 0x80000000
    moddebug:       0 = 0x80000000