This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] manual/probes.texi: Add documentation of setjmp/longjmp probes


On Tue, Jan 28, 2014 at 02:33:34PM +0000, Will Newton wrote:
> +These probes can be used to notify the debugger of a call to @code{setjmp},
> +@code{sigsetjmp} or @code{longjmp}.
> +

Suggest: These probes are used to signal calls to setjmp, sigsetjmp or
longjmp.

i.e., avoid mentioning that they're for the debugger, since their
usage is not limited to gdb.  Likewise for the gdb mention in the last
line.

> +@deftp Probe setjmp (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
> +This probe is hit whenever @code{setjmp} or @code{sigsetjmp} is called.
> +Argument @var{$arg1} is a pointer to the @code{jmp_buf} passed as the first
> +argument of @code{setjmp} or @code{sigsetjmp}, @var{$arg2} is the second
> +argument of @code{sigsetjmp} or zero if this is a call to @code{setjmp}
> +and @var{$arg3} is a pointer to the return address that will be stored
> +in the @code{jmp_buf}.
> +@end deftp
> +
> +@deftp Probe longjmp (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
> +This probe is hit whenever @code{longjmp} is called. Argument @var{$arg1}
> +is a pointer to the @code{jmp_buf} passed as the first argument of
> +@code{longjmp}, @var{$arg2} is the return value passed as the second
> +argument of @code{longjmp} and @var{$arg3} is a pointer to the return
> +address @code{longjmp} will return to.
> +@end deftp
> +
> +@deftp Probe longjmp_target (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3})
> +This probe is hit whenever @code{longjmp} is called. Argument @var{$arg1}
> +is a pointer to the @code{jmp_buf} passed as the first argument of
> +@code{longjmp}, @var{$arg2} is the return value passed as the second
> +argument of @code{longjmp} and @var{$arg3} is a pointer to the return
> +address @code{longjmp} will return to.
> +
> +This probe is implemented on some architectures. It is not clear how it
> +differs from the @code{longjmp} probe and it is not used by gdb.
> +@end deftp

The AFAIU, the longjmp probe marks the entry point of the longjmp
call, while longjmp_target is hit after unwinding and just before
jumping to the target.  One might want separate notifications of
having hit longjmp and then having successfully unwound and jumped to
the target.

Siddhesh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]