Storage violation
In computing a storage violation is a hardware fault that occurs when a task attempts to access an area of computer storage which it is not permitted to access.
Contents
Types of storage violation
Storage violation can, for instance, consist of reading from, writing to, or freeing storage not owned by the task. A common type of storage violation is known as a stack buffer overflow where a program attempts to exceed the limits set for its call stack.
Avoidance of storage violations
Storage violations can occur in transaction systems such as CICS in circumstances where it is possible to write to storage not owned by the transaction; such violations can be reduced by enabling features such as storage protection and transaction isolation.
Detection of storage violations
In systems such as CICS, storage violations are sometimes detected (by the CICS kernel) by the use of "signatures", which can be tested to see if they have been overlaid.
Some programming languages use software bounds checking to prevent these occurrences.
Some program debugging software will also detect violations during testing.
Common causes
- A runaway subscript leading to illegal use of reference modification during run time.
- Linkage layout mismatch between called and the calling elements.
Examples of software detecting storage violations
- IBM OLIVER (CICS interactive test/debug) from APT UK, later Compuware which used an Instruction set simulator
- Intertest originally from Online Software International, later Computer Associates
See also
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
Lua error in package.lua at line 80: module 'strict' not found.
CICS problem determination Guide
<templatestyles src="Asbox/styles.css"></templatestyles>