Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

crashme(1) [debian man page]

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 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. 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 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 termi- nates 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@world.std.com VERSION
2.4 20-MAY-1994 LOCAL CRASHME(1)

Check Out this Related Man Page

RANDOM(3)						     Linux Programmer's Manual							 RANDOM(3)

NAME
random, srandom, initstate, setstate - random number generator. SYNOPSIS
#include <stdlib.h> long int random(void); void srandom(unsigned int seed); char *initstate(unsigned int seed, char *state, size_t n); char *setstate(char *state); DESCRIPTION
The random() function uses a non-linear additive feedback random number generator employing a default table of size 31 long integers to return successive pseudo-random numbers in the range from 0 to RAND_MAX. The period of this random number generator is very large, approx- imately 16*((2**31)-1). The srandom() function sets its argument as the seed for a new sequence of pseudo-random integers to be returned by random(). These sequences are repeatable by calling srandom() with the same seed value. If no seed value is provided, the random() function is automati- cally seeded with a value of 1. The initstate() function allows a state array state to be initialized for use by random(). The size of the state array n is used by init- state() to decide how sophisticated a random number generator it should use -- the larger the state array, the better the random numbers will be. seed is the seed for the initialization, which specifies a starting point for the random number sequence, and provides for restarting at the same point. The setstate() function changes the state array used by the random() function. The state array state is used for random number generation until the next call to initstate() or setstate(). state must first have been initialized using initstate() or be the result of a previous call of setstate(). RETURN VALUE
The random() function returns a value between 0 and RAND_MAX. The srandom() function returns no value. The initstate() and setstate() functions return a pointer to the previous state array, or NULL on error. ERRORS
EINVAL A state array of less than 8 bytes was specified to initstate(). NOTES
Current "optimal" values for the size of the state array n are 8, 32, 64, 128, and 256 bytes; other amounts will be rounded down to the nearest known amount. Using less than 8 bytes will cause an error. CONFORMING TO
BSD 4.3 SEE ALSO
rand(3), srand(3) GNU
2000-08-20 RANDOM(3)
Man Page