3.5. SystemTap でのアレイ演算
本セクションでは、SystemTap で使用される最も一般的なアレイ演算を説明しています。
3.5.1. 関連する値の割り当て
インデックス化された一意のペアに関連する値を設定するには、等号
=
を使います。
array_name[index_expression] = value
例3.11「基本的なアレイステートメント」 では、明示的な関連する値を一意の鍵に設定する非常に基本的な例を示しています。
index_expression
と value
の両方に、ハンドラー関数を使用することもできます。たとえば以下のように、アレイを使用して、タイムスタンプをプロセス名 (これを一意の鍵として使用) への関連する値として設定することができます。
例3.12 タイムスタンプをプロセス名に関連付ける
foo[tid()] = gettimeofday_s()
例3.12「タイムスタンプをプロセス名に関連付ける」 ではイベントがステートメントを呼び出すと、SystemTap は適切な
tid()
値 (つまり、スレッドの ID。これは一意の鍵として使用されます) を返します。同時に SystemTap は関数 gettimeofday_s()
を使用して、対応するタイムスタンプを関数 tid()
で定義されている一意の鍵への関連する値として設定します。これで、スレッド ID とタイムスタンプを含む鍵のペアで構成されるアレイが作成されます。
この例では、
tid()
がアレイ foo
ですでに定義されている値を返すと、この演算子はその値に関連付けられている元の値を破棄し、gettimeofday_s()
からの現行タイムスタンプで置き換えます。