Что означает статус Intel IPP -9 (ippStsMemAllocErr)?

 
Предыдущий Следующий
ippStsDivByZeroErr ippStsNullPtrErr

ippStsMemAllocErr

Что означает ippStsMemAllocErr

ippStsMemAllocErr означает: Объёма памяти, выделенного для операции, недостаточно. Для ippStsMemAllocErr статус указывает на недоступную память, нулевой указатель, недостаточный буфер либо нарушение требований выравнивания.

Для ippStsMemAllocErr проверять нужно не только адрес, но и размер доступной области, время жизни объекта, alignment и соответствие буфера конкретному варианту функции. Указатель может быть ненулевым, но уже освобождённым или слишком коротким.

При разборе ippStsMemAllocErr исходная техническая страница отдельно связывает статус с ippStsNoMemErr. Для ippStsMemAllocErr сохраните эти значения вместе с точной функцией и версией Intel IPP, чтобы не потерять специфичный для вызова контекст.

Что проверить

  • При диагностике ippStsMemAllocErr запишите все pointer arguments, вычисленные размеры, stride и результат функций выделения памяти.
  • При диагностике ippStsMemAllocErr проверьте переполнение при умножении размеров и добавлении padding до выделения буфера.
  • При диагностике ippStsMemAllocErr сопоставьте alignment с требованиями типа данных и используемой реализации; не исправляйте смещение простым округлением без увеличения области.
  • При диагностике ippStsMemAllocErr проверьте владение и время жизни буферов, особенно при асинхронной работе и совместном использовании несколькими потоками.

Для ippStsMemAllocErr исправление подтверждается запуском под инструментом поиска ошибок памяти и отрицательным тестом с недостаточным или нулевым буфером, который завершается контролируемым статусом.

Документация для ippStsMemAllocErr


Нужно найти другой код? Найти другой код состояния или ошибки.