aboutsummaryrefslogtreecommitdiff
FAIL(1)                     General Commands Manual                    FAIL(1)

NAME
     fail – crash in various possible ways

SYNOPSIS
     fail [-123DORSabcdikrst]

DESCRIPTION
     fail crashes in various possible ways to help you debug how other
     software reacts to this.

     In addition to the crashes below, fail will also cause a segmentation
     fault when its binary is loaded using dlopen(3) or LD_PRELOAD.

     The options are as follows:

     -1      Return with exit status -1.

     -2      Return with exit status 2.

     -3      Return with exit status 111.

     -D      Create a process that is in uninterruptible sleep (state D) and
             print its pid.  (This uses vfork(2) and pause(2).)

     -O      Allocate memory in an infinite loop, to trigger an out of memory
             situation.  A dot is printed after each 16MB allocation.
             Warning: this may lock up your machine and/or result in killing
             other processes, too.  Use with caution.

     -R      Trigger an infinite recursion that uses alloca(3) heavily (to
             test GCC's -fstack-clash-protection).

     -S      Smash the stack using strcpy(3), to test GCC's -fstack-protector.

     -a      Call abort(3).

     -b      Trigger SIGBUS by accessing mmap(2) memory beyond the end of a
             file.

     -c      Violate a seccomp(2) strict mode restriction.

     -d      Divide by zero.

     -i      Execute an illegal instruction.

     -k      Raise SIGKILL.

     -r      Trigger an infinite recursion that uses less than a page of stack
             per level.

     -s      Trigger a segmentation fault by writing to a null pointer.

     -t      Trigger GCC's __builtin_trap().

EXIT STATUS
     The fail utility never returns 0, because failure is inevitable.

SEE ALSO
     false(1), seccomp(2), abort(3)

AUTHORS
     Leah Neukirchen <leah@vuxu.org>

LICENSE
     fail is in the public domain.

     To the extent possible under law, the creator of this work has waived all
     copyright and related or neighboring rights to this work.

     http://creativecommons.org/publicdomain/zero/1.0/

Void Linux                     December 19, 2019                    Void Linux