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;