Форум: "Прочее";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
ВнизОшибка 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 вся ветка
Форум: "Прочее";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c