mdbを使用して変数値を読み取るには?

mdbを使用して変数値を読み取るには?

次のコマンドを使用してパラメータを設定したとします。後でどのように読むことができますか?

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変数を試しましたfindが、ファイルシステムにはありません。この値がどこにあるかという概念を理解していません...

実際、私はただ他のパラメータが存在することを知っています。

ベストアンサー1

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 モジュラーデバッガガイド

おすすめ記事