如何使用mdb读取变量值?

路易·瓦威鲁(Louis Waweru)

假设我使用以下命令设置了参数,以后如何读回呢?

mdb -kwe "spa_load_verify_metadata/W 0"

我正在尝试阅读手册页,但是我只是暂时在此OS中,并且不了解它在说什么。

The search modifiers are:
       l   Search for the specified 2-byte value.
       L   Search for the specified 4-byte value.
       M   Search for the specified 8-byte value.

我通常希望该值位于/sys/modules/zfs/parameters/spa_load_verify_metadata我可以cat得到的值所在的位置,但/sys甚至不存在。

我尝试使用查找变量find,但该变量不在文件系统中。我不明白这些值在哪里的概念...

我实际上只是想读取我知道存在其他参数的值

斯科特·麦格伦

在Linux上,导出内核参数的自然方法是/ sys或/ proc中的虚拟文件。在Solaris及其衍生版本上,调试器mdb可用于读取和写入值。

# mdb -ke "spa_load_verify_metadata::print"
0x1 (B_TRUE)

或者像我以前那样:

# echo "spa_load_verify_metadata::print" | mdb -k
0x1 (B_TRUE)

您可以使用调试器找到有关该符号的更多信息:

# mdb -k
> spa_load_verify_metadata::nm 
Value              Size               Type  Bind  Other Shndx    Name
0xfffffffffbfc11f0|0x0000000000000004|OBJT |GLOB |0x0  |6       |spa_load_verify_metadata

可以在这里找到更多信息:《Oracle Solaris Modular Debugger Guide》

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章