stringtranslate.com

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

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

Виды нарушений хранения

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

Предотвращение нарушений при хранении

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

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ "Отладка библиотеки Malloc" . Dmalloc — библиотека отладки Malloc . Проверено 26 апреля 2017 г.

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