Solaris
如何使用 mdb 讀取變數值?
假設我用以下命令設置了一個參數,我以後怎麼讀回來?
mdb -kwe "spa_load_verify_metadata/W 0"
我正在嘗試閱讀手冊頁,但我只是暫時在這個作業系統中,不明白它在說什麼。
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 模組化調試器指南