Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.02.2010, 17:41
remember remember вне форума
Прохожий
 
Регистрация: 02.02.2010
Сообщения: 5
Репутация: 10
По умолчанию ...raised too many consecutive exceptions...

Имеется программное средство: 95 модулей. Код написан на Delphi 6. Построение диаграммы модулей позволило определить кучу перекрестных ссылок. Имеется порядка 200 глобальных переменных.
Цель: Вытащить расчетный модуль и скомпоновать его в библиотеку.
Модуль вытащен, библиотека скомпилирована, но при линковке с приложением на этапе загрузки библиотеки в память появляется сообщение "...raised too many consecutive exceptions..." и выбрасывает в отладчик ассемблера. Я так понимаю, что есть проблемы с выделением памяти под переменные.
Вопрос: Как отследить - где именно происходит обвал?
Ответить с цитированием
  #2  
Старый 02.02.2010, 19:25
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Попробуй FastMM
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 03.02.2010, 12:17
remember remember вне форума
Прохожий
 
Регистрация: 02.02.2010
Сообщения: 5
Репутация: 10
По умолчанию

Та же проблема. Может дело не в выделении памяти, но библиотека компилится и вылетает именно в момент загрузки в память. Пробежался по регистрам. По-видимому там цикл и в какой-то момент происходит ссылка на пустой адрес памяти
__________________
Пошла Машенька в лес по грибы да по ягоды, а вернулась ни с чем. А все потому, что надо ставить перед собой конкретные цели!
Ответить с цитированием
  #4  
Старый 03.02.2010, 12:39
remember remember вне форума
Прохожий
 
Регистрация: 02.02.2010
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо! Вроде разобрался с FastMM. Осталось разобраться в его логах
__________________
Пошла Машенька в лес по грибы да по ягоды, а вернулась ни с чем. А все потому, что надо ставить перед собой конкретные цели!
Ответить с цитированием
  #5  
Старый 25.09.2010, 13:33
blackswan blackswan вне форума
Прохожий
 
Регистрация: 27.05.2010
Сообщения: 4
Репутация: 10
По умолчанию

у меня аналогичная проблема,имеется проект под Delphi 2009, ранее всё работало, однако переустановил ОС, и поставил новый Delphi 2009. В коде ничего не менялось с тех пор, как в последний раз работало. Теперь при работе выскакивает сообщение
raised too many consecutive exceptions...access violation
Обнаружил источник
Имеется класс TRecordset, работающий с базой данных, в одном методе MapFields заполняется словарь имён параметров, передаваемых базе
Код:
procedure TRecordset.MapFields;
var
 i: integer;
 str : string;
begin
 FieldMap.Clear;

 if VarIsEmpty(FDataset) then exit;

 for I := 0 to FDataset.Fields.Count - 1 do
 begin
  str := VarToStr(Fields(I).Name);
  FieldMap.Add(str, I);  //**********
 end;
end;
где FieldMap: TDictionary<string,integer>; FDataset: OleVariant;
класс создаётся обычно
TRecordset.Create
проблема в том, что если класс использовать вторично, т.е. не высвободить после однократного обращения к базе, то возникает эта ошибка(на строке отмеченой //**********), если же сделать TRecordset.Free, а потом снова TRecordset.Create и сделать запрос, то проблемы нет и всё отрабатывает успешно. Но дело в том, что ранее не надо было высвобождать его, а посылать несколько запросов, пользуясь одним экземпляром. Параметры str и I адекватные. Так у меня по всей программе, не хочется переписывать, да и это будет неправильно. Подскажите, в чем может быть проблема, как докопаться, что не нравится классу справочника FieldMap ?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter