bionic (1) crashme.1.gz

Provided by: crashme_2.8.5-1build1_amd64 bug

NAME

       crashme - test operating environment software robustness

SYNOPSIS

       crashme [NBYTES] [SRAND] [NTRYS] [NSUB] [VERBOSE]

DESCRIPTION

       crashme  is  a  very  simple program that tests the operating environment's robustness by invoking random
       data as if it were a procedure.  The standard signals are caught and handled with a setjmp back to a loop
       which will try again to produce a fault by executing random data. Some people call this stress testing.

   COMMAND LINE OPTIONS
       [NBYTES]
               The  [NBYTES]  should  be  an integer, specifying the size of the random data string in bytes. If
               given negative then the bytes are printed instead of being executed. If given  with  an  explicit
               plus  sign then the storage for the bytes is freshly malloc'ed each time. This can have an effect
               on machines with separate I and D cache mechanisms. The argument can also have a dot in it,  X.Y,
               in  which  case  Y  is a increment for a pointer into the random data. The buffer is recalculated
               only when the pointer gets near the end of the data.

               The are two magic values for [NBYTES] : A value of 81920 avoids malloc and returns a  pointer  to
               static data. This makes the operation of crashme more repeatable on architectures where malloc is
               designed to return unpredictable locations.  A  value  of  1025  avoids  a  call  that  sets  the
               protection of the data to READ+WRITE+EXEC.

       [SRAND] The [SRAND] is an input seed to the random number generator, passed to srand.

       [NTRIES]
               The [NTRIES] is how many times to loop before exiting normally from the program.

       [NSUB]  The  [NSUB]  is  optional, the number of vfork subprocesses running all at once.  If negative run
               one after another. If given as a time hrs:mns:scs (hours, minutes, seconds) then  one  subprocess
               will  be  run to completion, followed by another, until the time limit has been reached.  If this
               argument is given as the empty string or . then it is ignored.

               When in sequential-subprocess mode there is a 30 second time limit on each subprocess. This is to
               allow  the  instruction-set-space  random  walk  to continue when a process bashes itself into an
               infinite loop.  For example, the ntrys can be bashed to a very large number with nbytes bashed to
               zero. (10 second limit on Windows NT).

               The SRAND argument is incremented by one for each subprocess.

       [VERBOSE]
               The [VERBOSE] arg is optional. 0 is the least verbose, 5 the most.

   ENVIRONMENT VARIABLES
       CRASHLOG
               The  CRASHLOG  is the name of the file which the parent process opens in write mode and all child
               processes open in append mode. There is frequent flushing of the file  but  no  locking,  so  the
               output  may be interleaved. If the operating system crashes then this file might provide a short-
               cut to a more resent random number seed sequence to allow for quicker finding of the special case
               that caused the crash.

       CRASHPRNG
               The  CRASHPRNG  can  be  set  to  RAND to use the system-provided rand function, or MT to use the
               Mersenne twister (default) as coded by Takuji Nishimura and Makoto Matsumoto, or VNSQ to use  the
               author's kludge interpretation of Von Neumann's middle-square method.

EXAMPLE

       This is a suggested test, to run it for a least an hour.

       crashme +2000 666 100 1:00:00

FILES

       crashme.c

DIAGNOSTICS

       When  a  signal  is  caught  the  number  and nature of the signal is indicated.  Setting the environment
       variable CRASHLOG will cause each subprocess to record the arguments it was given.

BUGS

       Not all signals are caught, and the state of the user program/process  environment  can  be  sufficiently
       damaged such that the program terminates before going through all [NTRIES] operations.

       If the architecture uses some kind of procedure descriptor but no special code has been not been added to
       castaway() in crashme.c then the stress test will not be as potent as it would otherwise be.

       Beware: This program can crash your computer if the operating system or hardware of same is  buggy.  User
       data may be lost.

AUTHOR

       George       J       Carrette.      GJC@alum.mit.edu      http://people.delphiforums.com/gjc/crashme.html
       http://crashme.codeplex.com/

VERSION

       2.8.5 6-AUG-2014

                                                                                                      CRASHME(1)