PROFIL(2)

명칭
profil - 프로세스의 프로파일을 제어한다

프로그램 라이브러리
libc

서식
<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 의 경우, 프로파일은 무효가 됩니다.

반환값

관련 파일
/usr/lib/gcrt0.o
    프로 파일링용의 C 런타임 스타트 업 파일
gmon.out
    프로파일 출력 파일의 종래의 이름

에러
다음의 에러가 보고될 가능성이 있습니다.

[EFAULT]
    버퍼 samples 에 무효인 주소가 들어가 있습니다.

관련 항목
gprof(1)

역사
profil() 함수는 AT&T UNIX 그리고 등장했습니다.

버그
이 routine의 이름은 profile() 에 해야 합니다.

samples 인수는 사실은 벡터 unsigned short 의 벡터일 필요가 있습니다.

gmon.out 파일의 형식은 기술되고 있지 않습니다.