abort2(2) abort process with diagnostics


Lb libc


In stdlib.h Ft void Fn abort2 const char *why int nargs void **args


The Fn abort2 system call causes the process to be killed and the specified diagnostic message (with arguments) to be delivered by the kernel to the syslogd(8) daemon.

The Fa why argument points to a NUL- terminated string specifying a reason of the program's termination (maximum 128 characters long). The Fa args array contains pointers which will be logged numerically (with the kernel's `%p' printf(9) format). The Fa nargs argument specifies the number of pointers in Fa args (maximum 16).

The Fn abort2 system call is intended for use in situations where continuation of a process is impossible or for other definitive reasons is unwanted, and normal diagnostic channels cannot be trusted to deliver the message.


The Fn abort2 function never returns.

The process is killed with SIGABRT unless the arguments to Fn abort2 are invalid, in which case SIGKILL is used.


#include <stdlib.h>
if (weight_kg > max_load) {
        void *ptrs[3];
        ptrs[0] = (void *)(intptr_t)weight_kg;
        ptrs[1] = (void *)(intptr_t)max_load;
        ptrs[2] = haystack;
        abort2("Camel overloaded", 3, ptrs);


The Fn abort2 system call first appeared in Fx 7.0 .


An -nosplit The Fn abort2 system call was designed by An Poul-Henning Kamp Aq [email protected] . It was implemented by An Wojciech A. Koszek Aq [email protected] .