Можно тут немного на судьбу пожаловаться?

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Можно тут немного на судьбу пожаловаться?

Сообщение Climber » 19.11.2010 15:50:45

Рефакторил проект, уперся в тупик.
Есть одна функция, вылетает при совершенно невинных обращениях к компоненту TZQuery и при вызове ShowMessage.
Доходит до смешного:
Код: Выделить всё
procedure MyForm.XXX;
var q: TZQuery;
begin
q:=TZQuery.Create(Self);  // Тут вылетает!!!
ShowMessage('Тест');  // И тут выетает!!!
end;
try .. except не помогает - приложение просто молча валится и все. Если функцию закомментить - все работает. Потоков нет. Я в трауре второй день.

Всем спасибо за внимание и сочувствие.
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Можно тут немного на судьбу пожаловаться?

Сообщение GrayEddy » 19.11.2010 15:56:36

Код: Выделить всё
q := TZQuery.Create(nil)

заодно и проверить потом на вшивость
Код: Выделить всё
if q <> nil then ... else ...
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Можно тут немного на судьбу пожаловаться?

Сообщение Climber » 19.11.2010 16:13:01

Если бы все было так просто! Такие варианты я пишу сразу, "не приходя в сознание". Если б они всегда помогали, я бы счастливым человеком был. А тут реально призадумался.
Нечто похожее было около года назад, я так и не разобрался, в чем проблема, просто с нуля переписал кучу кода. Теперь куча раз в пять больше, и че-то мне лень переписывать всё...
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Можно тут немного на судьбу пожаловаться?

Сообщение GAMER » 19.11.2010 16:30:49

Какая СУБД?
Я как-то работал с МайСКЛ, так там ошибка вылетала совершенно не там, где ожидалось.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Можно тут немного на судьбу пожаловаться?

Сообщение Climber » 19.11.2010 17:21:15

GAMER писал(а):Какая СУБД?
А какая разница? На ShowMessage тоже падает. Я надеюсь на понедельник и свежую голову. А ща пока логи базы перелопачиваю...
Если пройдет, отпишусь, что помогло, если сам пойму... :(
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Можно тут немного на судьбу пожаловаться?

Сообщение stikriz » 19.11.2010 17:24:07

Где-то в другом месте неправильно работаете с памятью. Это может быть где угодно, хоть в 26 строке.
У меня такое было. Думал рехнусь...
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Можно тут немного на судьбу пожаловаться?

Сообщение Vadim » 19.11.2010 17:39:37

Climber писал(а):procedure MyForm.XXX;

Может быть перед "My" поставить букву T?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Можно тут немного на судьбу пожаловаться?

Сообщение zub » 19.11.2010 18:56:26

stikriz
+1
Гдето раньше портится куча. Отлов таких ошибок дело очень увлекательное))

>>Если функцию закомментить - все работает
не факт, вылетит гденить в другом месте.
Смотреть все места где идет работа с выделенной памятью - указатели, стринги, динмассивы...
Я в таких случаях коментирую куски программы, пока ошибка не исчезнет, исчезнет - скорее всего куча портится в последнем закоментированом коде.
Может ченибуть всплывет в heaptrc? под линукс можно попробовать valgrind, там вроде есть контроль к обращениям невыделенной памяти
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Можно тут немного на судьбу пожаловаться?

Сообщение hinst » 19.11.2010 23:36:24

stikriz
Думал рехнусь...

интересно, и что же спасло вас от неминуемой моральной гибели :?:
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Можно тут немного на судьбу пожаловаться?

Сообщение stikriz » 20.11.2010 08:44:14

Я нашел те места, где освобождаю память повторно. В деструкторах. Был метод Clear виртуальный, в потомке перегружен. В предке вызывался, в потомке тоже... Ну, далее понятно :-)
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47


Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11

Рейтинг@Mail.ru