CRASHME(1)                  General Commands Manual                 CRASHME(1)



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
               seperate 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.


       [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 run‐
               ning all at once.  If negative run one after another. If  given
               as  a  time hrs:mns:scs (hours, minutes, seconds) then one sub‐
               process 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.


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  indi‐
       cated.   Setting the environment variable CRASHLOG will cause each sub‐
       process to record the arguments it was given.

BUGS
       Not all signals are caught, and the state of the  user  program/process
       enviroment 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  spe‐
       cial  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.delphifo‐
       rums.com/gjc/crashme.html http://crashme.codeplex.com/

VERSION
       2.7 4-APR-2014



                                                                    CRASHME(1)
