Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Кто подскажет, что это за ошибка? Access violation at address ...

NikolasDD Ученик (102), закрыт 1 год назад
Программирую на Delphi. Подключил библиотеку для распознавания текста Tesseract. Она может загрузить 4 потока для процесса распознавания текста.

Запускаю свою программу. Она начинает постоянно принимать и распознавать текст с изображений. Через какое-то время (иногда 1 минут, иногда через - 1 час) программа крашется с ошибкой неверного адреса в памяти: Access violation at address 00A91830 in module 'DD.exe'. Read of address 0847200C

Начал дебажить, дебаг показывает только такую картину. Даже не код, где могла возникнуть ошибка =(

Поискал в интернете, говорят что это инструкции ассемблера:
>>
Инструкция XOR обнуляет регистр EDX для того, чтобы после деления целая часть результата оказалась в регистре EAX, а дробная, если таковая окажется - в регистре EDX
<<

Я так понимаю, что какие-то потоки в программе не правильно работают с оперативной памятью?
Лучший ответ
del Просветленный (20614) 5 лет назад
Read of address 0847200C - край адресного пространства
За 128 гигабайт запросил оперативки а система ответила а фиг тебе на те эксепшен.

Да такое бывает.
Удивительно но в языках без сборщика мусора объекты (ресурсы) нужно не только получать (создавать/запрашивать) но и потом возвращать их системе а не просто выходить из функции.

А в целом ошибки с утечками ресурсов проще отлавливать с помощью профилировщика т. к. обычно проблема в одном месте а падает приложение совсем в другом.
NikolasDDУченик (102) 5 лет назад
Что интересно, программа работает циклично на протяжении часа-двух. Циклы по 1 сек. На мощных ПК - проблем нет. На слабых - ошибка вылетает через 10 мин - 1 час. Оперативку программа расходует на протяжении долгого времени 48-50мб и не растёт.
Остальные ответы
Профессор Оракул (98754) 5 лет назад
Попробуй менеджер памяти перевести в многопоточный режим принудительно.
NikolasDDУченик (102) 5 лет назад
Спасибо! А как это сделать, я с дебагом почти не работал?
Профессор Оракул (98754) IsMultiThreaded :=true;
Jurijus Zaksas Искусственный Интеллект (471490) 5 лет назад
Просто кто-то почему-то лезет не в свою память. Гадать, кто и почему, по скомпилированной библиотеке - приблизительно как гадать о корове по фаршу.
Похожие вопросы