Man Linux: Main Page and Category List


       crashme - test operating environment software robustness


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


       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.

               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.

               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.

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


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

       crashme +2000 666 100 1:00:00




       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.


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


       George J Carrette.


       2.4 20-MAY-1994