|
|
|
Original StackAttack
If you are running many programs that patch system functions (such as
commodities and hacks) it might happen that sometimes your machine
crashes without real "motivation". This is often caused by a too low
stack of many programs (because of the patched routines increasing the
stack usage of the corresponding system function).
StackAttack tries to kill these GURUs by patching CreateProc(), CreateNewProc(),
RunCommand() and SystemTagList(). It alters the stack passed to
these routines depending on what parameters you supply to StackAttack.
StackAttack allows you to set a minimum stack size a new process (program)
shall have and also by how much bytes you want to increase the stack further
StackAttack1 is ©Copyright 1997-2001 by Georg Steger. All rights reserved!
StackAttack2
Some time ago I decided to write a new version of StackAttack to address
some of the issues I found in the old one - namely that if you wanted to
change the amount of stack used, you had to apply *another* patch, using
up memory, and making new program start slightly slower... Not to mention
needing more stack on every program to deal with the fact it was another
patch ;-)
This version is different. It puts the patch in memory, with a named port,
so if you ever want to change the stack used it will change the value used
by the patch already in there. As a side effect it is also a *little* bit
smaller ;-)
The patch in memory is about 430 bytes long, it will check if there's
enough free stack to call the patch function (which is only an extra 20
or so bytes anyway - but better safe than sorry ;-)
| Installation |
1. Copy StackAttack or StackAttack_020 to C:
2. In S:startup-sequence, directly after the SetPatch line, add "StackAttack" (minus quotes)
3. In S:startup-sequence, directly before the LoadWb line, add "StackAttack AUTO" (minus quotes)
4. Type "StackAttack AUTO" into a CLI
5. That's it, no need to reboot or anything ;-)
|
| Arguments |
StackAttack MINSTACK=MIN/N,ADDSTACK=ADD/N,AUTOSTACK=AUTO/S,NOTCLI/S,SHOW/S:
MINSTACK=MIN/N - This is the workhorse, just set the minimum Stack you wish programs to use.
ADDSTACK=ADD/N - This is only there for compatability with the old version, unless you really have less than a single meg ram, don't use it!
AUTOSTACK=AUTO/S - This works out how much stack you should have - default is 8k, >16megs=16k, >32megs=32k, >64megs=64k, >128megs=128k
NOTCLI/S - Normally StackAttack will also change the CLI stack (like the C:Stack command) - this stops that happening.
SHOW/S - Shows the current stack set in the patch.
|
|