Previous: Exception handling routines, Up: Libgcc [Contents][Index]
This function clears the instruction cache between beg and end.
When using -fsplit-stack, this call may be used to iterate over the stack segments. It may be called like this:
  void *next_segment = NULL;
  void *next_sp = NULL;
  void *initial_sp = NULL;
  void *stack;
  size_t stack_size;
  while ((stack = __splitstack_find (next_segment, next_sp,
                                     &stack_size, &next_segment,
                                     &next_sp, &initial_sp))
         != NULL)
    {
      /* Stack segment starts at stack and is
         stack_size bytes long.  */
    }
There is no way to iterate over the stack segments of a different
thread.  However, what is permitted is for one thread to call this
with the segment_arg and sp arguments NULL, to pass
next_segment, next_sp, and initial_sp to a different
thread, and then to suspend one way or another.  A different thread
may run the subsequent __splitstack_find iterations.  Of
course, this will only work if the first thread is suspended while the
second thread is calling __splitstack_find.  If not, the second
thread could be looking at the stack while it is changing, and
anything could happen.
Internal variables used by the -fsplit-stack implementation.