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