At 12:10 PM 8/9/01 -0500, Fishers wrote the following:

>Could someone please rephrase this error message in dummy language :)
>Terminating thread due to stack overflow problem.  A VxD recently installed
>consumed too much stack space.  Increase the setting of Min SPs in
>SYSTEM.INI or remove recently installed VxD. There are currently 3 SPs
>allocated.
>We have installed a new RW CD...is that a VxD????? After finally being able
>to reboot I ran Norton Utilities and so far it seems OK but should I be
>doing something else to prevent further crashes?Thanks,Lynda

An application (program) consists of a series of computer instructions. As
the CPU (Central Processing Unit) passes through (executes) these
instructions, it creates a thread of execution. A process is a collection of
one or more threads that owns resources, such as memory, open files,
devices, or connections to DLLs (dynamic link libraries).

When a thread is created, memory is allocated on the stack (a reserved area
of memory normally located above the program area) for the thread. When the
thread terminates the stack space is automatically freed. An application
that allocates segments as stack space for new threads but never gets a
chance to free enough stack space for a new thread may overflow the stack,
that is run out of memory.

Simple diagram
|---------|
|         |
| Program |
|         |
|---------|
| free    |
| memory  |
|---------|
| Stack   |
|---------|

Program grows upward in memory (or downward toward the free memory area in
the diagram)
Stack space is grows downward in memory (or upward toward the free memory
area in the diagram)

Generally speaking the program grows and shrinks as it allocates and
de-allocates memory. The program uses the free memory area for this growth.
The stack space is usually located above the free memory area. As you can
see, if the program grows large enough (consuming free memory) it can
overwrite the stack space and cause the program to fail (no free memory).
Likewise, if the stack requires more space, then the stack will overwrite
portions of memory (stack overflow) used by the program which causes the
program to fail.

Even if the program allocates a large block of contiguous memory, the stack
will still be allocated above the program area.

Think of the stack like one of those cafeteria dispensers where up pick up a
tray or plate -- every time a new plate is added to the stack, the stack is
"pushed" downward. Every time a plate or tray is removed from the stack, the
stack "pops" upward. In fact, the actual instructions in assembler language
are called push and pop.

--
Gerry Boyd
============= PCWorks Mailing List =================
Don't see your post? Check our posting guidelines &
make sure you've followed proper posting procedures,
http://pcworkers.com/rules.htm
Contact list owner <[EMAIL PROTECTED]>
Unsubscribing and other changes: http://pcworkers.com
=====================================================

Reply via email to