


CRASHME(1C)          Communication Commands           CRASHME(1C)



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  han-
     dled  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  exit-
             ing normally from the program.

     [NSUB]  The [NSUB] is optional, the  number  of  vfork  sub-
             processes  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  con-
             tinue  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).



SunOS 5.5              Last change: LOCAL                       1






CRASHME(1C)          Communication Commands           CRASHME(1C)



             The SRAND argument is incremented by  one  for  each
             subprocess.


     [VERBOSE]
             The [VERBOSE] arg is optional. 0 is the  least  ver-
             bose, 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  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  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  operat-
     ing  system  or  hardware of same is buggy. User data may be
     lost.

AUTHOR
     George J Carrette. GJC@world.std.com

VERSION
     2.4 20-MAY-1994











SunOS 5.5              Last change: LOCAL                       2



