Вниз
Скачать: CL | DM;

Ошибка c памятью   Найти похожие ветки 

 
Pavia ©   (2011-12-24 11:36) [0]

Странные дела. Есть мой код. Выдают ошибку error out of memory.
Менеджер памяти стандартный для Delphi 7.
ОС -Ubuntu +Wine
В диспетчере задач. Память не превышает 40 мегабайт.
В цикле создаются и уничтожаются объекты код проверенный(раньше работало).
Ошибка появляется при добавлении в цикл определённой функции. Функция моя.
Выход указателя за приделы массива, отсутствует проверил.

Где и как искать ошибку?


 
Игорь Шевченко ©   (2011-12-24 12:13) [1]

Учесть, что под wine глобальные переменные могут не инициализироваться нулем.

можно использовать memproof, отладчик, протоколирование в файл, например.

Ты б курсы какие что ли прошел. С памятью ошибка.


 
sniknik ©   (2011-12-24 13:41) [2]

> код проверенный(раньше работало).
"раньше работало" это вообще не показатель... если оно у тебя "заточено" под одно окружение/одно поведение, то пока это не сменится могут годы пройти, пока оно все работает и работает.

(к примеру случай был, настроили клиенты в ОС-и разделитель дробей # вместо точки/запятой. так все учетные программы "попадали", а ведь раньше работало...)


 
Pavia ©   (2011-12-24 14:54) [3]

Ошибку отловил.  Да была небольшая утечка.Но она никак не могла повлиять. Видимо ещё в wine virtualAlloc не работает с size=0; Если я правильно понял memproof.
На данный момент исправил ошибку с утечкой исключение пропало.

А вот по поводу протоколирование в файл. Что почитать посоветуете? Какие инструменты?


 
Владислав ©   (2011-12-24 14:57) [4]

Была подобная проблема в безобидном коде в программе.
Выяснилось, что out of memory происходит по причине фрагментации памяти. В какой-то момент при обработке большого текста менеджер памяти просто не находил большой (ну как большой... несколько мегабайт) непрерывный "кусок" свободной памяти. Программа как раз была написана на D7. Диспетчер задач также показывал незначительное потребление памяти. Вылечили прикручиванием FastMM.


 
Pavia ©   (2011-12-24 15:02) [5]


> Выяснилось, что out of memory происходит по причине фрагментации
> памяти.

Вполне может быть у меня было тоже самое.


 
miek   (2011-12-26 16:04) [6]

Прогони программу под виндой с Application Verifier. Подобные ошибки выявляет очень хорошо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.004 c
15-1324455263
OW
2011-12-21 12:14
2012.04.29
Посоветуйте. Нужна утилитка COM <-> TCP


15-1324712185
Pavia
2011-12-24 11:36
2012.04.29
Ошибка c памятью


2-1325420142
elizaveta1541
2012-01-01 16:15
2012.04.29
Использование кнопки Закрытия на главной форме


2-1325437970
Каныбек
2012-01-01 21:12
2012.04.29
Возведение в квадрат и извлечение квадратного корня


2-1325795081
oksana
2012-01-06 00:24
2012.04.29
График функцит




   Наверх