Blame manual/probes.texi

Packit Service 82fcde
@node Internal Probes
Packit Service 82fcde
@c @node Internal Probes, Tunables, Threads, Top
Packit Service 82fcde
@c %MENU% Probes to monitor libc internal behavior
Packit Service 82fcde
@chapter Internal probes
Packit Service 82fcde
Packit Service 82fcde
In order to aid in debugging and monitoring internal behavior,
Packit Service 82fcde
@theglibc{} exposes nearly-zero-overhead SystemTap probes marked with
Packit Service 82fcde
the @code{libc} provider.
Packit Service 82fcde
Packit Service 82fcde
These probes are not part of the @glibcadj{} stable ABI, and they are
Packit Service 82fcde
subject to change or removal across releases.  Our only promise with
Packit Service 82fcde
regard to them is that, if we find a need to remove or modify the
Packit Service 82fcde
arguments of a probe, the modified probe will have a different name, so
Packit Service 82fcde
that program monitors relying on the old probe will not get unexpected
Packit Service 82fcde
arguments.
Packit Service 82fcde
Packit Service 82fcde
@menu
Packit Service 82fcde
* Memory Allocation Probes::  Probes in the memory allocation subsystem
Packit Service 82fcde
* Mathematical Function Probes::  Probes in mathematical functions
Packit Service 82fcde
* Non-local Goto Probes::  Probes in setjmp and longjmp
Packit Service 82fcde
@end menu
Packit Service 82fcde
Packit Service 82fcde
@node Memory Allocation Probes
Packit Service 82fcde
@section Memory Allocation Probes
Packit Service 82fcde
Packit Service 82fcde
These probes are designed to signal relatively unusual situations within
Packit Service 82fcde
the virtual memory subsystem of @theglibc{}.
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_sbrk_more (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered after the main arena is extended by calling
Packit Service 82fcde
@code{sbrk}.  Argument @var{$arg1} is the additional size requested to
Packit Service 82fcde
@code{sbrk}, and @var{$arg2} is the pointer that marks the end of the
Packit Service 82fcde
@code{sbrk} area, returned in response to the request.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_sbrk_less (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered after the size of the main arena is decreased by
Packit Service 82fcde
calling @code{sbrk}.  Argument @var{$arg1} is the size released by
Packit Service 82fcde
@code{sbrk} (the positive value, rather than the negative value passed
Packit Service 82fcde
to @code{sbrk}), and @var{$arg2} is the pointer that marks the end of
Packit Service 82fcde
the @code{sbrk} area, returned in response to the request.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_heap_new (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered after a new heap is @code{mmap}ed.  Argument
Packit Service 82fcde
@var{$arg1} is a pointer to the base of the memory area, where the
Packit Service 82fcde
@code{heap_info} data structure is held, and @var{$arg2} is the size of
Packit Service 82fcde
the heap.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_heap_free (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered @emph{before} (unlike the other sbrk and heap
Packit Service 82fcde
probes) a heap is completely removed via @code{munmap}.  Argument
Packit Service 82fcde
@var{$arg1} is a pointer to the heap, and @var{$arg2} is the size of the
Packit Service 82fcde
heap.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_heap_more (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered after a trailing portion of an @code{mmap}ed
Packit Service 82fcde
heap is extended.  Argument @var{$arg1} is a pointer to the heap, and
Packit Service 82fcde
@var{$arg2} is the new size of the heap.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_heap_less (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered after a trailing portion of an @code{mmap}ed
Packit Service 82fcde
heap is released.  Argument @var{$arg1} is a pointer to the heap, and
Packit Service 82fcde
@var{$arg2} is the new size of the heap.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_malloc_retry (size_t @var{$arg1})
Packit Service 82fcde
@deftpx Probe memory_realloc_retry (size_t @var{$arg1}, void *@var{$arg2})
Packit Service 82fcde
@deftpx Probe memory_memalign_retry (size_t @var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
@deftpx Probe memory_calloc_retry (size_t @var{$arg1})
Packit Service 82fcde
These probes are triggered when the corresponding functions fail to
Packit Service 82fcde
obtain the requested amount of memory from the arena in use, before they
Packit Service 82fcde
call @code{arena_get_retry} to select an alternate arena in which to
Packit Service 82fcde
retry the allocation.  Argument @var{$arg1} is the amount of memory
Packit Service 82fcde
requested by the user; in the @code{calloc} case, that is the total size
Packit Service 82fcde
computed from both function arguments.  In the @code{realloc} case,
Packit Service 82fcde
@var{$arg2} is the pointer to the memory area being resized.  In the
Packit Service 82fcde
@code{memalign} case, @var{$arg2} is the alignment to be used for the
Packit Service 82fcde
request, which may be stricter than the value passed to the
Packit Service 82fcde
@code{memalign} function.  A @code{memalign} probe is also used by functions
Packit Service 82fcde
@code{posix_memalign, valloc} and @code{pvalloc}.
Packit Service 82fcde
Packit Service 82fcde
Note that the argument order does @emph{not} match that of the
Packit Service 82fcde
corresponding two-argument functions, so that in all of these probes the
Packit Service 82fcde
user-requested allocation size is in @var{$arg1}.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_arena_retry (size_t @var{$arg1}, void *@var{$arg2})
Packit Service 82fcde
This probe is triggered within @code{arena_get_retry} (the function
Packit Service 82fcde
called to select the alternate arena in which to retry an allocation
Packit Service 82fcde
that failed on the first attempt), before the selection of an alternate
Packit Service 82fcde
arena.  This probe is redundant, but much easier to use when it's not
Packit Service 82fcde
important to determine which of the various memory allocation functions
Packit Service 82fcde
is failing to allocate on the first try.  Argument @var{$arg1} is the
Packit Service 82fcde
same as in the function-specific probes, except for extra room for
Packit Service 82fcde
padding introduced by functions that have to ensure stricter alignment.
Packit Service 82fcde
Argument @var{$arg2} is the arena in which allocation failed.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_arena_new (void *@var{$arg1}, size_t @var{$arg2})
Packit Service 82fcde
This probe is triggered when @code{malloc} allocates and initializes an
Packit Service 82fcde
additional arena (not the main arena), but before the arena is assigned
Packit Service 82fcde
to the running thread or inserted into the internal linked list of
Packit Service 82fcde
arenas.  The arena's @code{malloc_state} internal data structure is
Packit Service 82fcde
located at @var{$arg1}, within a newly-allocated heap big enough to hold
Packit Service 82fcde
at least @var{$arg2} bytes.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_arena_reuse (void *@var{$arg1}, void *@var{$arg2})
Packit Service 82fcde
This probe is triggered when @code{malloc} has just selected an existing
Packit Service 82fcde
arena to reuse, and (temporarily) reserved it for exclusive use.
Packit Service 82fcde
Argument @var{$arg1} is a pointer to the newly-selected arena, and
Packit Service 82fcde
@var{$arg2} is a pointer to the arena previously used by that thread.
Packit Service 82fcde
Packit Service 82fcde
This occurs within
Packit Service 82fcde
@code{reused_arena}, right after the mutex mentioned in probe
Packit Service 82fcde
@code{memory_arena_reuse_wait} is acquired; argument @var{$arg1} will
Packit Service 82fcde
point to the same arena.  In this configuration, this will usually only
Packit Service 82fcde
occur once per thread.  The exception is when a thread first selected
Packit Service 82fcde
the main arena, but a subsequent allocation from it fails: then, and
Packit Service 82fcde
only then, may we switch to another arena to retry that allocation, and
Packit Service 82fcde
for further allocations within that thread.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_arena_reuse_wait (void *@var{$arg1}, void *@var{$arg2}, void *@var{$arg3})
Packit Service 82fcde
This probe is triggered when @code{malloc} is about to wait for an arena
Packit Service 82fcde
to become available for reuse.  Argument @var{$arg1} holds a pointer to
Packit Service 82fcde
the mutex the thread is going to wait on, @var{$arg2} is a pointer to a
Packit Service 82fcde
newly-chosen arena to be reused, and @var{$arg3} is a pointer to the
Packit Service 82fcde
arena previously used by that thread.
Packit Service 82fcde
Packit Service 82fcde
This occurs within
Packit Service 82fcde
@code{reused_arena}, when a thread first tries to allocate memory or
Packit Service 82fcde
needs a retry after a failure to allocate from the main arena, there
Packit Service 82fcde
isn't any free arena, the maximum number of arenas has been reached, and
Packit Service 82fcde
an existing arena was chosen for reuse, but its mutex could not be
Packit Service 82fcde
immediately acquired.  The mutex in @var{$arg1} is the mutex of the
Packit Service 82fcde
selected arena.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_arena_reuse_free_list (void *@var{$arg1})
Packit Service 82fcde
This probe is triggered when @code{malloc} has chosen an arena that is
Packit Service 82fcde
in the free list for use by a thread, within the @code{get_free_list}
Packit Service 82fcde
function.  The argument @var{$arg1} holds a pointer to the selected arena.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered when function @code{mallopt} is called to change
Packit Service 82fcde
@code{malloc} internal configuration parameters, before any change to
Packit Service 82fcde
the parameters is made.  The arguments @var{$arg1} and @var{$arg2} are
Packit Service 82fcde
the ones passed to the @code{mallopt} function.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_mxfast (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_MXFAST}, and the requested
Packit Service 82fcde
value is in an acceptable range.  Argument @var{$arg1} is the requested
Packit Service 82fcde
value, and @var{$arg2} is the previous value of this @code{malloc}
Packit Service 82fcde
parameter.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_trim_threshold (int @var{$arg1}, int @var{$arg2}, int @var{$arg3})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_TRIM_THRESHOLD}.  Argument
Packit Service 82fcde
@var{$arg1} is the requested value, @var{$arg2} is the previous value of
Packit Service 82fcde
this @code{malloc} parameter, and @var{$arg3} is nonzero if dynamic
Packit Service 82fcde
threshold adjustment was already disabled.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_top_pad (int @var{$arg1}, int @var{$arg2}, int @var{$arg3})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_TOP_PAD}.  Argument
Packit Service 82fcde
@var{$arg1} is the requested value, @var{$arg2} is the previous value of
Packit Service 82fcde
this @code{malloc} parameter, and @var{$arg3} is nonzero if dynamic
Packit Service 82fcde
threshold adjustment was already disabled.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_mmap_threshold (int @var{$arg1}, int @var{$arg2}, int @var{$arg3})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_MMAP_THRESHOLD}, and the
Packit Service 82fcde
requested value is in an acceptable range.  Argument @var{$arg1} is the
Packit Service 82fcde
requested value, @var{$arg2} is the previous value of this @code{malloc}
Packit Service 82fcde
parameter, and @var{$arg3} is nonzero if dynamic threshold adjustment
Packit Service 82fcde
was already disabled.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_mmap_max (int @var{$arg1}, int @var{$arg2}, int @var{$arg3})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_MMAP_MAX}.  Argument
Packit Service 82fcde
@var{$arg1} is the requested value, @var{$arg2} is the previous value of
Packit Service 82fcde
this @code{malloc} parameter, and @var{$arg3} is nonzero if dynamic
Packit Service 82fcde
threshold adjustment was already disabled.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_perturb (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_PERTURB}.  Argument
Packit Service 82fcde
@var{$arg1} is the requested value, and @var{$arg2} is the previous
Packit Service 82fcde
value of this @code{malloc} parameter.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_arena_test (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_ARENA_TEST}, and the
Packit Service 82fcde
requested value is in an acceptable range.  Argument @var{$arg1} is the
Packit Service 82fcde
requested value, and @var{$arg2} is the previous value of this
Packit Service 82fcde
@code{malloc} parameter.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_arena_max (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered shortly after the @code{memory_mallopt} probe,
Packit Service 82fcde
when the parameter to be changed is @code{M_ARENA_MAX}, and the
Packit Service 82fcde
requested value is in an acceptable range.  Argument @var{$arg1} is the
Packit Service 82fcde
requested value, and @var{$arg2} is the previous value of this
Packit Service 82fcde
@code{malloc} parameter.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_mallopt_free_dyn_thresholds (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered when function @code{free} decides to adjust the
Packit Service 82fcde
dynamic brk/mmap thresholds.  Argument @var{$arg1} and @var{$arg2} are
Packit Service 82fcde
the adjusted mmap and trim thresholds, respectively.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_tunable_tcache_max_bytes (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{glibc.malloc.tcache_max}
Packit Service 82fcde
tunable is set.  Argument @var{$arg1} is the requested value, and
Packit Service 82fcde
@var{$arg2} is the previous value of this tunable.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_tunable_tcache_count (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{glibc.malloc.tcache_count}
Packit Service 82fcde
tunable is set.  Argument @var{$arg1} is the requested value, and
Packit Service 82fcde
@var{$arg2} is the previous value of this tunable.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe memory_tunable_tcache_unsorted_limit (int @var{$arg1}, int @var{$arg2})
Packit Service 82fcde
This probe is triggered when the
Packit Service 82fcde
@code{glibc.malloc.tcache_unsorted_limit} tunable is set.  Argument
Packit Service 82fcde
@var{$arg1} is the requested value, and @var{$arg2} is the previous
Packit Service 82fcde
value of this tunable.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@node Mathematical Function Probes
Packit Service 82fcde
@section Mathematical Function Probes
Packit Service 82fcde
Packit Service 82fcde
Some mathematical functions fall back to multiple precision arithmetic for
Packit Service 82fcde
some inputs to get last bit precision for their return values.  This multiple
Packit Service 82fcde
precision fallback is much slower than the default algorithms and may have a
Packit Service 82fcde
significant impact on application performance.  The systemtap probe markers
Packit Service 82fcde
described in this section may help you determine if your application calls
Packit Service 82fcde
mathematical functions with inputs that may result in multiple-precision
Packit Service 82fcde
arithmetic.
Packit Service 82fcde
Packit Service 82fcde
Unless explicitly mentioned otherwise, a precision of 1 implies 24 bits of
Packit Service 82fcde
precision in the mantissa of the multiple precision number.  Hence, a precision
Packit Service 82fcde
level of 32 implies 768 bits of precision in the mantissa.
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowatan2 (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4})
Packit Service 82fcde
This probe is triggered when the @code{atan2} function is called with
Packit Service 82fcde
an input that results in multiple precision computation.  Argument
Packit Service 82fcde
@var{$arg1} is the precision with which computation succeeded.
Packit Service 82fcde
Arguments @var{$arg2} and @var{$arg3} are inputs to the @code{atan2}
Packit Service 82fcde
function and @var{$arg4} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowatan2_inexact (int @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4})
Packit Service 82fcde
This probe is triggered when the @code{atan} function is called with
Packit Service 82fcde
an input that results in multiple precision computation and none of
Packit Service 82fcde
the multiple precision computations result in an accurate result.
Packit Service 82fcde
Argument @var{$arg1} is the maximum precision with which computations
Packit Service 82fcde
were performed.  Arguments @var{$arg2} and @var{$arg3} are inputs to
Packit Service 82fcde
the @code{atan2} function and @var{$arg4} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowatan (int @var{$arg1}, double @var{$arg2}, double @var{$arg3})
Packit Service 82fcde
This probe is triggered when the @code{atan} function is called with
Packit Service 82fcde
an input that results in multiple precision computation.  Argument
Packit Service 82fcde
@var{$arg1} is the precision with which computation succeeded.
Packit Service 82fcde
Argument @var{$arg2} is the input to the @code{atan} function and
Packit Service 82fcde
@var{$arg3} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowatan_inexact (int @var{$arg1}, double @var{$arg2}, double @var{$arg3})
Packit Service 82fcde
This probe is triggered when the @code{atan} function is called with
Packit Service 82fcde
an input that results in multiple precision computation and none of
Packit Service 82fcde
the multiple precision computations result in an accurate result.
Packit Service 82fcde
Argument @var{$arg1} is the maximum precision with which computations
Packit Service 82fcde
were performed.  Argument @var{$arg2} is the input to the @code{atan}
Packit Service 82fcde
function and @var{$arg3} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowtan (double @var{$arg1}, double @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{tan} function is called with an
Packit Service 82fcde
input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function and @var{$arg2}
Packit Service 82fcde
is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowasin (double @var{$arg1}, double @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{asin} function is called with
Packit Service 82fcde
an input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function and @var{$arg2}
Packit Service 82fcde
is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowacos (double @var{$arg1}, double @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{acos} function is called with
Packit Service 82fcde
an input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function and @var{$arg2}
Packit Service 82fcde
is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowsin (double @var{$arg1}, double @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{sin} function is called with an
Packit Service 82fcde
input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function and @var{$arg2}
Packit Service 82fcde
is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowcos (double @var{$arg1}, double @var{$arg2})
Packit Service 82fcde
This probe is triggered when the @code{cos} function is called with an
Packit Service 82fcde
input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function and @var{$arg2}
Packit Service 82fcde
is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowsin_dx (double @var{$arg1}, double @var{$arg2}, double @var{$arg3})
Packit Service 82fcde
This probe is triggered when the @code{sin} function is called with an
Packit Service 82fcde
input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function, @var{$arg2} is
Packit Service 82fcde
the error bound of @var{$arg1} and @var{$arg3} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe slowcos_dx (double @var{$arg1}, double @var{$arg2}, double @var{$arg3})
Packit Service 82fcde
This probe is triggered when the @code{cos} function is called with an
Packit Service 82fcde
input that results in multiple precision computation with precision
Packit Service 82fcde
32.  Argument @var{$arg1} is the input to the function, @var{$arg2} is
Packit Service 82fcde
the error bound of @var{$arg1} and @var{$arg3} is the computed result.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@node Non-local Goto Probes
Packit Service 82fcde
@section Non-local Goto Probes
Packit Service 82fcde
Packit Service 82fcde
These probes are used to signal calls to @code{setjmp}, @code{sigsetjmp},
Packit Service 82fcde
@code{longjmp} or @code{siglongjmp}.
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe setjmp (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
Packit Service 82fcde
This probe is triggered whenever @code{setjmp} or @code{sigsetjmp} is
Packit Service 82fcde
called.  Argument @var{$arg1} is a pointer to the @code{jmp_buf}
Packit Service 82fcde
passed as the first argument of @code{setjmp} or @code{sigsetjmp},
Packit Service 82fcde
@var{$arg2} is the second argument of @code{sigsetjmp} or zero if this
Packit Service 82fcde
is a call to @code{setjmp} and @var{$arg3} is a pointer to the return
Packit Service 82fcde
address that will be stored in the @code{jmp_buf}.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe longjmp (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
Packit Service 82fcde
This probe is triggered whenever @code{longjmp} or @code{siglongjmp}
Packit Service 82fcde
is called.  Argument @var{$arg1} is a pointer to the @code{jmp_buf}
Packit Service 82fcde
passed as the first argument of @code{longjmp} or @code{siglongjmp},
Packit Service 82fcde
@var{$arg2} is the return value passed as the second argument of
Packit Service 82fcde
@code{longjmp} or @code{siglongjmp} and @var{$arg3} is a pointer to
Packit Service 82fcde
the return address @code{longjmp} or @code{siglongjmp} will return to.
Packit Service 82fcde
Packit Service 82fcde
The @code{longjmp} probe is triggered at a point where the registers
Packit Service 82fcde
have not yet been restored to the values in the @code{jmp_buf} and
Packit Service 82fcde
unwinding will show a call stack including the caller of
Packit Service 82fcde
@code{longjmp} or @code{siglongjmp}.
Packit Service 82fcde
@end deftp
Packit Service 82fcde
Packit Service 82fcde
@deftp Probe longjmp_target (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
Packit Service 82fcde
This probe is triggered under the same conditions and with the same
Packit Service 82fcde
arguments as the @code{longjmp} probe.
Packit Service 82fcde
Packit Service 82fcde
The @code{longjmp_target} probe is triggered at a point where the
Packit Service 82fcde
registers have been restored to the values in the @code{jmp_buf} and
Packit Service 82fcde
unwinding will show a call stack including the caller of @code{setjmp}
Packit Service 82fcde
or @code{sigsetjmp}.
Packit Service 82fcde
@end deftp