text: 
  // Similar to Cachegrind, check if instrumentation works in the presence
  // of a client request. Uses a Callgrind request to check this.
  
  #include "../callgrind.h"
  
  int some_work(int sum)
  {
     int i;
  
     for(i=0;i<10;i++) sum += i; /* some dummy work */
  
     return sum;
  }
  
  int some_callgrind_clreqs()
  {
     int sum = some_work(0);
  
     CALLGRIND_ZERO_STATS;
  
     sum += some_work(sum);
  
     CALLGRIND_DUMP_STATS;
  
     sum += some_work(sum);
  
     CALLGRIND_DUMP_STATS_AT("Please dump here");
  
     return some_work(sum);
  }
  
  int more_callgrind_clreqs()
  {
     int sum = some_callgrind_clreqs();
  
     CALLGRIND_TOGGLE_COLLECT;
  
     sum += some_callgrind_clreqs();
  
     CALLGRIND_TOGGLE_COLLECT;
  
     return sum;
  }
  
     
  int main(void)
  {
     more_callgrind_clreqs();
  
     CALLGRIND_STOP_INSTRUMENTATION;
  
     more_callgrind_clreqs();
  
     CALLGRIND_START_INSTRUMENTATION;
  
     more_callgrind_clreqs();
  
     CALLGRIND_STOP_INSTRUMENTATION;
  
     more_callgrind_clreqs();
  
     CALLGRIND_START_INSTRUMENTATION;
  
     return RUNNING_ON_VALGRIND;
  }
  
  