tail head cat sleep
QR code linking to this page

manページ  — PROFIL

名称

profil – プロセスのプロファイルを制御する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <unistd.h>

int
profil(char *samples, size_t size, vm_offset_t offset, int scale);

解説

profil() システムコールは、現在のプロセスのカウンタプロファイルを有効化または 無効化します。 プロファイルが有効な場合、プロファイルクロックチックごとに、カーネルは samples バッファ内の適切なカウントを更新します。 プロファイルクロックの周波数は、 プロファイル出力ファイル内のヘッダ内に記録されます。

バッファ samples には size バイトが含まれており、一連の 16 ビットの塊に分割されます。 各塊は、プロファイルが有効時にプロファイルクロックチックが発生したときに、 プログラムカウンタがプロセス内の特別なアドレス範囲内にあった回数を カウントします。 指定のプログラムカウンタアドレスについて、対応する塊の数が 次の関係によって与えられます。

[(pc - offset) / 2] * scale / 65536

offset 引数は、カーネルがプログラムカウンタサンプルを 取る最も低いアドレスです。 scale 引数の範囲は 1 から 65536 であり、 塊の広がりを変更するのに使用できます。 スケール 65536 は、各塊をアドレス範囲の 2 バイトに割り当てます。 スケール 32768 は 4 バイト、16384 は 8 バイト、後は同様です。 中間の値はおおよそ中間の範囲を与えます。 scale 値が 0 の場合、プロファイルは無効になります。

戻り値

The profil function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

関連ファイル

/usr/lib/gcrt0.o
  プロファイリング用の C ランタイムスタートアップファイル
gmon.out プロファイル出力ファイルの従来の名前

エラー

次のエラーが報告される可能性があります:
[EFAULT]
  バッファ samples に無効なアドレスが入っています。

関連項目

gprof(1)

歴史

profil() 関数は AT&T v7 で登場しました。

バグ

このルーチンの名前は profile() にすべきです。

samples 引数は本当はベクトル unsigned short のベクトルである必要があります。

gmon.out ファイルの形式は記述されていません。


PROFIL (2) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Never write it in C if you can do it in `awk';
Never do it in `awk' if `sed' can handle it;
Never use `sed' when `tr' can do the job;
Never invoke `tr' when `cat' is sufficient;
Avoid using `cat' whenever possible.
— Taylor's Laws of Programming