方法 1: 使用符号名称

此方法演示访问全局数据的最简单方法。 当使用 KDB 内核调试器时,这是访问全局数据的主要方法。

可以按名称直接访问 KDB 内核调试器中的全局变量。 例如, dw 子命令可用于显示 demokext_j 变量的值。 如果 demokext_j 变量是数组,那么可以通过添加相应的偏移量来查看特定值 (例如,dw demokext_j+20)。 通过向变量的基地址添加适当的偏移量来完成对结构的各个元素的访问。

注: 缺省提示为 KDB(0)>

要使用符号名称来查看和修改全局变量,请执行以下操作:

  1. 使用以下命令在 民主 /demokext_j 变量的地址处显示一个单词:
    dw demokext_j

    由于刚刚装入内核扩展,因此此变量的值应该为 99 ,并且 KDB 内核调试器应显示该值。 所显示的数据应该类似于以下内容:

    demokext_j+000000: 00000063 01304040 01304754 00000000  ...c.0@@.0GT....
  2. 通过输入以下内容来关闭符号名称转换:
    ns
  3. 要显示 民主 /demokext_j 变量的地址处的单词,请输入以下命令:
    dw demokext_j

    在关闭符号名称转换的情况下,显示的数据应该类似于以下内容:

    01304744: 00000063 01304040 01304754 00000000  ...c.0@@.0GT....
  4. 通过输入以下内容来开启符号名称转换:
    ns
  5. 通过输入以下内容来修改 民主 /demokext_j 变量的地址处的单词:
    mw demokext_j

    KDB 内核调试器显示该单词的当前值,并等待用户输入更改该值。 所显示的数据应该类似于以下内容:

    01304744:  00000063  =

    输入新值并按 Enter 键。 在输入新值后,将显示下一个内存字以进行可能的修改。 要结束内存修改,请输入句点 (.) 并按 Enter 键。 输入第一个地址的值 64 (100 位小数) ,输入句点并按 Enter 键以结束修改。