stringtranslate.com

Нарушение правил хранения

В вычислительной технике нарушением хранилища называется аппаратная или программная ошибка , которая возникает, когда задача пытается получить доступ к области компьютерного хранилища , к которой ей не разрешен доступ.

Виды нарушения правил хранения

Нарушение хранилища может, например, состоять из чтения, записи или освобождения хранилища, не принадлежащего задаче. Распространенный тип нарушения хранилища известен как переполнение буфера стека , когда программа пытается превысить пределы, установленные для ее стека вызовов . Это также может относиться к попытке изменения памяти, «принадлежащей» другому потоку, где есть неполная (или отсутствующая) защита памяти.

Избежание нарушений правил хранения

Нарушения хранения могут возникать в транзакционных системах, таких как CICS, в ситуациях, когда возможна запись в хранилище, не принадлежащее транзакции; такие нарушения можно сократить, включив такие функции, как защита хранилища и изоляция транзакций .

Выявление нарушений правил хранения

Нарушения хранения могут быть труднообнаружимы, поскольку программа часто может работать в течение некоторого времени после нарушения, прежде чем произойдет сбой. Например, указатель на освобожденную область памяти может быть сохранен и позже повторно использован, что приведет к ошибке. В результате усилия сосредоточены на обнаружении нарушений по мере их возникновения, а не позже, когда проблема будет обнаружена.

В таких системах, как CICS, нарушения хранения иногда обнаруживаются ( ядром CICS ) с помощью «сигнатур», которые можно протестировать, чтобы увидеть, были ли они наложены.

Альтернативная библиотека времени выполнения может использоваться для лучшего обнаружения нарушений хранилища, но за счет дополнительных накладных расходов. [1] Некоторые языки программирования используют проверку границ программного обеспечения для предотвращения таких случаев.

Некоторые программы отладки программ также обнаруживают нарушения во время тестирования.

Распространенные причины

Примеры программного обеспечения, обнаруживающего нарушения хранения

Смотрите также

Ссылки

  1. ^ "Debug Malloc Library". Dmalloc - Debug Malloc Library . Получено 2017-04-26 .

Внешние ссылки