prof 132 src/gauche/prof.h if (vm->prof->currentCount == SCM_PROF_COUNTER_IN_BUFFER) { \ prof 135 src/gauche/prof.h vm->prof->counts[vm->prof->currentCount++].func = obj; \ prof 433 src/gauche/vm.h ScmVMProfiler *prof; prof 96 src/prof.c if (vm->prof == NULL) return; /* for safety */ prof 97 src/prof.c if (vm->prof->samplerFd < 0 || vm->prof->currentSample == 0) return; prof 99 src/prof.c nsamples = vm->prof->currentSample; prof 100 src/prof.c r = write(vm->prof->samplerFd, vm->prof->samples, prof 103 src/prof.c vm->prof->errorOccurred++; prof 105 src/prof.c vm->prof->currentSample = 0; prof 116 src/prof.c if (vm->prof == NULL) return; prof 117 src/prof.c if (vm->prof->state != SCM_PROFILER_RUNNING) return; prof 119 src/prof.c if (vm->prof->currentSample >= SCM_PROF_SAMPLES_IN_BUFFER) { prof 125 src/prof.c i = vm->prof->currentSample++; prof 131 src/prof.c vm->prof->samples[i].func = vm->val0; prof 132 src/prof.c vm->prof->samples[i].pc = NULL; prof 134 src/prof.c vm->prof->samples[i].func = SCM_OBJ(vm->base); prof 135 src/prof.c vm->prof->samples[i].pc = vm->pc; prof 138 src/prof.c vm->prof->samples[i].func = SCM_FALSE; prof 139 src/prof.c vm->prof->samples[i].pc = NULL; prof 141 src/prof.c vm->prof->totalSamples++; prof 145 src/prof.c void collect_samples(ScmVMProfiler *prof) prof 148 src/prof.c for (i=0; i<prof->currentSample; i++) { prof 149 src/prof.c ScmHashEntry *e = Scm_HashTableGet(prof->statHash, prof 150 src/prof.c prof->samples[i].func); prof 154 src/prof.c prof->samples[i].func, prof->samples[i].func); prof 176 src/prof.c if (vm->prof == NULL) return; /* for safety */ prof 177 src/prof.c if (vm->prof->currentCount == 0) return; prof 184 src/prof.c ncounts = vm->prof->currentCount; prof 189 src/prof.c func = vm->prof->counts[i].func; prof 197 src/prof.c e = Scm_HashTableAdd(vm->prof->statHash, prof 198 src/prof.c vm->prof->counts[i].func, prof 208 src/prof.c vm->prof->currentCount = 0; prof 223 src/prof.c if (!vm->prof) { prof 224 src/prof.c vm->prof = SCM_NEW(ScmVMProfiler); prof 225 src/prof.c vm->prof->state = SCM_PROFILER_INACTIVE; prof 226 src/prof.c vm->prof->samplerFd = Scm_Mkstemp(templat); prof 227 src/prof.c vm->prof->currentSample = 0; prof 228 src/prof.c vm->prof->totalSamples = 0; prof 229 src/prof.c vm->prof->errorOccurred = 0; prof 230 src/prof.c vm->prof->currentCount = 0; prof 231 src/prof.c vm->prof->statHash = prof 234 src/prof.c } else if (vm->prof->samplerFd < 0) { prof 235 src/prof.c vm->prof->samplerFd = Scm_Mkstemp(templat); prof 239 src/prof.c if (vm->prof->state == SCM_PROFILER_RUNNING) return; prof 240 src/prof.c vm->prof->state = SCM_PROFILER_RUNNING; prof 257 src/prof.c if (vm->prof == NULL) return 0; prof 258 src/prof.c if (vm->prof->state != SCM_PROFILER_RUNNING) return 0; prof 260 src/prof.c vm->prof->state = SCM_PROFILER_PAUSING; prof 262 src/prof.c return vm->prof->totalSamples; prof 269 src/prof.c if (vm->prof == NULL) return; prof 270 src/prof.c if (vm->prof->state == SCM_PROFILER_INACTIVE) return; prof 271 src/prof.c if (vm->prof->state == SCM_PROFILER_RUNNING) Scm_ProfilerStop(); prof 273 src/prof.c if (vm->prof->samplerFd >= 0) { prof 274 src/prof.c close(vm->prof->samplerFd); prof 275 src/prof.c vm->prof->samplerFd = -1; prof 277 src/prof.c vm->prof->totalSamples = 0; prof 278 src/prof.c vm->prof->currentSample = 0; prof 279 src/prof.c vm->prof->errorOccurred = 0; prof 280 src/prof.c vm->prof->currentCount = 0; prof 281 src/prof.c vm->prof->statHash = prof 283 src/prof.c vm->prof->state = SCM_PROFILER_INACTIVE; prof 294 src/prof.c if (vm->prof == NULL) return SCM_FALSE; prof 295 src/prof.c if (vm->prof->state == SCM_PROFILER_INACTIVE) return SCM_FALSE; prof 296 src/prof.c if (vm->prof->state == SCM_PROFILER_RUNNING) Scm_ProfilerStop(); prof 298 src/prof.c if (vm->prof->errorOccurred > 0) { prof 305 src/prof.c collect_samples(vm->prof); prof 308 src/prof.c SCM_SYSCALL(off, lseek(vm->prof->samplerFd, 0, SEEK_SET)); prof 314 src/prof.c Scm_MakePortWithFd(SCM_FALSE, SCM_PORT_INPUT, vm->prof->samplerFd, prof 318 src/prof.c r = read(vm->prof->samplerFd, vm->prof->samples, prof 321 src/prof.c vm->prof->currentSample = r / sizeof(ScmProfSample[1]); prof 322 src/prof.c collect_samples(vm->prof); prof 324 src/prof.c vm->prof->currentSample = 0; prof 325 src/prof.c if (ftruncate(vm->prof->samplerFd, 0) < 0) { prof 329 src/prof.c return SCM_OBJ(vm->prof->statHash); prof 216 src/vm.c v->prof = NULL;