Может ли нарушение доступа быть замаскированной ошибкой нехватки памяти?

Это зависит от языка, но должен быть модификатор, который вы можете добавить к шаблону регулярного выражения. В PHP это:

/(.*)<FooBar>/s

. S в конце заставляет точку соответствовать всем символам, включая символы новой строки.

3
задан Dominique 16 January 2019 в 09:27
поделиться

2 ответа

Действительно возможно, что нарушение доступа на самом деле является ошибкой нехватки памяти (или другим видом ошибки, связанной с памятью), как упомянуто в комментариях Шеффа и Питера.

В данном конкретном случае большой размер дампа (± 33 ГБ) является признаком того, что приложение (вместе с другими приложениями) может потреблять слишком много памяти.

0
ответ дан Dominique 16 January 2019 в 09:27
поделиться

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

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

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

0
ответ дан David Schwartz 16 January 2019 в 09:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: