2005-12-23 12:27:42 +00:00
|
|
|
.\" Copyright (c) 2005 Wojciech A. Koszek <dunstan@FreeBSD.czest.pl>
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
2006-09-30 10:24:00 +00:00
|
|
|
.\"
|
2005-12-23 12:27:42 +00:00
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
2006-09-30 10:24:00 +00:00
|
|
|
.\"
|
2005-12-23 12:27:42 +00:00
|
|
|
.\" $FreeBSD$
|
2006-09-30 10:24:00 +00:00
|
|
|
.\"
|
|
|
|
.Dd September 30, 2006
|
|
|
|
.Dt ABORT2 2
|
2005-12-23 12:27:42 +00:00
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm abort2
|
2006-09-30 10:24:00 +00:00
|
|
|
.Nd "abort process with diagnostics"
|
2005-12-23 12:27:42 +00:00
|
|
|
.Sh LIBRARY
|
|
|
|
.Lb libc
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.In stdlib.h
|
|
|
|
.Ft void
|
2006-09-30 10:24:00 +00:00
|
|
|
.Fn abort2 "const char *why" "int nargs" "void **args"
|
2005-12-23 12:27:42 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Fn abort2
|
2006-09-30 10:24:00 +00:00
|
|
|
system call causes the process to be killed and the specified diagnostic
|
|
|
|
message (with arguments) to be delivered by the kernel to the
|
2005-12-23 12:27:42 +00:00
|
|
|
.Xr syslogd 8
|
|
|
|
daemon.
|
|
|
|
.Pp
|
2006-09-30 10:24:00 +00:00
|
|
|
The
|
2005-12-23 12:27:42 +00:00
|
|
|
.Fa why
|
2006-09-30 10:24:00 +00:00
|
|
|
argument points to a
|
|
|
|
.Dv NUL- Ns
|
|
|
|
terminated string specifying a reason of the program's termination
|
|
|
|
(maximum 128 characters long).
|
|
|
|
The
|
2005-12-23 12:27:42 +00:00
|
|
|
.Fa args
|
2006-09-30 10:24:00 +00:00
|
|
|
array contains pointers which will be logged numerically
|
|
|
|
(with the kernel's
|
|
|
|
.Ql %p
|
2005-12-23 12:27:42 +00:00
|
|
|
.Xr printf 9
|
|
|
|
format).
|
2006-09-30 10:24:00 +00:00
|
|
|
The
|
2005-12-23 12:27:42 +00:00
|
|
|
.Fa nargs
|
2006-09-30 10:24:00 +00:00
|
|
|
argument specifies the number of pointers in
|
|
|
|
.Fa args
|
|
|
|
(maximum 16).
|
2005-12-23 12:27:42 +00:00
|
|
|
.Pp
|
2006-09-30 10:24:00 +00:00
|
|
|
The
|
2005-12-23 12:27:42 +00:00
|
|
|
.Fn abort2
|
2006-09-30 10:24:00 +00:00
|
|
|
system call
|
|
|
|
is intended for use in situations where continuation of a process
|
|
|
|
is impossible or for other definitive reasons is unwanted, and normal
|
2005-12-23 12:27:42 +00:00
|
|
|
diagnostic channels cannot be trusted to deliver the message.
|
2006-09-30 10:24:00 +00:00
|
|
|
.Sh RETURN VALUES
|
|
|
|
The
|
|
|
|
.Fn abort2
|
|
|
|
function
|
|
|
|
never returns.
|
|
|
|
.Pp
|
|
|
|
The process is killed with
|
|
|
|
.Dv SIGABRT
|
|
|
|
unless the arguments to
|
|
|
|
.Fn abort2
|
|
|
|
are invalid, in which case
|
|
|
|
.Dv SIGKILL
|
|
|
|
is used.
|
2005-12-23 12:27:42 +00:00
|
|
|
.Sh EXAMPLES
|
|
|
|
.Bd -literal -compact
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
if (weight_kg > max_load) {
|
|
|
|
void *ptrs[3];
|
|
|
|
|
2006-09-30 10:24:00 +00:00
|
|
|
ptrs[0] = (void *)(intptr_t)weight_kg;
|
|
|
|
ptrs[1] = (void *)(intptr_t)max_load;
|
2005-12-23 12:27:42 +00:00
|
|
|
ptrs[2] = haystack;
|
|
|
|
abort2("Camel overloaded", 3, ptrs);
|
|
|
|
}
|
|
|
|
.Ed
|
|
|
|
.Sh SEE ALSO
|
2006-09-30 10:24:00 +00:00
|
|
|
.Xr abort 3 ,
|
|
|
|
.Xr exit 3
|
2005-12-23 12:27:42 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Fn abort2
|
2006-09-30 10:24:00 +00:00
|
|
|
system call first appeared in
|
2005-12-23 12:27:42 +00:00
|
|
|
.Fx 7.0 .
|
|
|
|
.Sh AUTHORS
|
2006-09-30 10:24:00 +00:00
|
|
|
.An -nosplit
|
|
|
|
The
|
|
|
|
.Fn abort2
|
|
|
|
system call was designed by
|
2014-06-23 08:25:03 +00:00
|
|
|
.An Poul-Henning Kamp Aq Mt phk@FreeBSD.org .
|
2006-09-30 10:24:00 +00:00
|
|
|
It was implemented by
|
2014-06-23 08:25:03 +00:00
|
|
|
.An Wojciech A. Koszek Aq Mt dunstan@freebsd.czest.pl .
|