Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: CL | DM;

Вниз

Access Violation - к чему бы это?   Найти похожие ветки 

 
Denisiy ©   (2003-12-19 16:11) [0]

День добрый, уважаемые.
Полдня мучился - не помогло, созрел вот..
Выскакивает AV. Если удаляю кусок кода - AV выскакивает в другом месте (немного выше или ниже чем в прошлый раз), причем на совершенно безобидных операциях...

Добавляю код - возникает позже... Никаких обращений к удаленным объектам или чего-то подобного

Подскажите хоть в какую сторону смотреть


 
Тимохов ©   (2003-12-19 16:13) [1]

В сторону кода!!!
Ау!!! Код, ты где?


 
Anatoly Podgoretsky ©   (2003-12-19 16:15) [2]

В сторону невалидных указателей, при том они могут быть в любом месте.


 
Denisiy ©   (2003-12-19 16:19) [3]

на пример сейчас вылетает здесь:
(там где **)
Даже не представляю, где могут быть глюки и в чем...

fl:=false;
Field:=Mainform.OrdersGrid.DataSource.DataSet.Fields[i].FieldName;
for j:=0 to VisList.Items.Count-1 do
begin
** if VisList.Items.Strings[j]=Field then
begin
// TempData[i]:=true;
data[i]:=true;
fl:=true;
break;
end;
end;


 
Юрий Зотов ©   (2003-12-19 16:22) [4]

> Denisiy © (19.12.03 16:19) [3]

А что, пройти отладчиком - не судьба?


 
Sandman25 ©   (2003-12-19 16:23) [5]

[3] Denisiy © (19.12.03 16:19)

Перегрузите компьютер. Серьезно.


 
TUser ©   (2003-12-19 16:27) [6]

Отладчик. А также попробуй вспомнить, что ты изменил перед тем, как стал выскакивать AV. Попробуй заремить один участок кода, потом другой и т.д., пока не найдешь, что у тебя глючит.


 
olookin ©   (2003-12-19 16:37) [7]

а VisList создан до этого? Если не создан, то ошибка понятна...


 
Asteroid ©   (2003-12-19 16:38) [8]

А также посмотри на тип переменной j. А то вдруг там Byte, Word или Cardinal, а список пустой.


 
han_malign ©   (2003-12-19 16:48) [9]

> на пример сейчас вылетает здесь:
- ну-ну AV имеет тенденцию возникать не там где породилось...
Ищи где запарываешь стек(скажем при неправильной декларации импортируемой функции),или вылезаешь за границы массивов, для начала попробуй включить Range checking.


 
Denisiy ©   (2003-12-19 17:07) [10]

Отвечаю на вопросы : VisList - listbox, создан в design.

Похоже, где-то запарывается Vislist, хотя как и где...
Range Cheking включил - ничего не изменилось. От отладчика пока что толку не получил...

Еще идеи будут? А я пока ковыряться пойду..


 
olookin ©   (2003-12-19 17:10) [11]

А как создан VisList? Код какой?


 
Anatoly Podgoretsky ©   (2003-12-19 17:11) [12]

Denisiy © (19.12.03 17:07) [10]
То есть ты даже не знаешь в какой строке возникает исключение?


 
Sandman25 ©   (2003-12-19 17:19) [13]

[10] Denisiy © (19.12.03 17:07)

Если было много AV, Delphi может начать "дурковать". Недавно парню пытались помочь победить AV при присвоении переменной. Вроде бы все правильно делает, а ошибка выскакивает и всегда в одном месте. Только перезагрузка помогла, когда уже больше ни на что другое не надеялись.


 
Digitman ©   (2003-12-19 17:27) [14]


> Delphi может начать "дурковать".


чегооооо ???!!!


 
Тимохов ©   (2003-12-19 17:29) [15]

Digitman © (19.12.03 17:27) [14]
Может-может.
Я тоже наблюдал такое, что если очень сильно насиловать программу, то дельфи некорректно начинает работать или вообще переодически срубается. Спасает закрыть/открыть дельфи.


 
Digitman ©   (2003-12-19 17:33) [16]

глупости)


 
Denisiy ©   (2003-12-19 17:34) [17]

Я ща распсихуюсь и вывешу,блин, оба юнита сюда.... Блин, мозги уже кипят...

Range Check ругаться начал... Переменная в цикле декрементируется вместо инкремента (цикл for)... Заменил на While - помогло, НО ПОЧЕМУ так?

Там вроде и не видно ничего подозрительного или похожего на выход из диапазонов (к тому же диапазон - тип, массивы этом диапазоне - тоже типы, если б где-то вылез за пределы - ругнулось бы про недопустимое для типа значение) ...


 
olookin ©   (2003-12-19 17:36) [18]

data[i]:=true;

А может у тебя тут должно j стоять?


 
Семен Сорокин ©   (2003-12-19 17:36) [19]

2Denisiy
где-то с памятью перемудрил, вот и валится в разных местах, пишешь куда не нужно.


 
Тимохов ©   (2003-12-19 17:38) [20]

Digitman © (19.12.03 17:33) [16]
Будет пример, когда срубается дельфи - обязательно тебе его приведу. У меня были примеры, когда полный билд до перезагрузки и после перезагрузки не совпадают по размеру и работают по разному. Чаще всего это проявлялось при мешании работы с объектами и интерфейсами.


 
Sandman25 ©   (2003-12-19 17:38) [21]

[16] Digitman © (19.12.03 17:33)

Самое ужасное - это когда при попытке сохраниться пишет Access Violation in module delphi32.exe...


 
olookin ©   (2003-12-19 17:40) [22]

to Digitman

У меня например иногда "срубается" дельфи, когда я пытаюсь поискать слово во всех файлах проекта... Выдает Access violation... Удивляет?


 
Тимохов ©   (2003-12-19 17:43) [23]

Sandman25 © (19.12.03 17:38) [21]
olookin © (19.12.03 17:40) [22]
Граждане!
Digitman и не спорит с тем, что среда дельфи имеет ошибки.
Он не согласен с тем, что дельфя может в некторых случаях генерить неверный код. Я же утверждаю, что такое бывает - сам видел.


 
Sandman25 ©   (2003-12-19 17:46) [24]

[23] Тимохов © (19.12.03 17:43)

Так и я о том же. См. [13]. Парень даже Delphi закрыл и открыл заново. Но и в следующий раз генерировался неверный код.


 
xli ©   (2003-12-19 17:55) [25]

а цикл по декременту работает при включении оптимизации. Ты ее отключи, для отладки оно полезнее, может и адрес появления исключения найти удастся.



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

Текущий архив: 2004.01.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.019 c
4-12199
X-Disa
2003-11-04 15:40
2004.01.05
Снова окна


14-12149
Alexey Lipatov
2003-12-12 17:33
2004.01.05
Неправильно показываются фильмы


4-12201
MaG
2003-11-04 16:32
2004.01.05
Определение имени ...


7-12184
DeepRain
2003-10-23 23:17
2004.01.05
Резидент-перехватчик нажатий клавиш


1-11884
Leo^Sun
2003-12-09 16:16
2004.01.05
Основные методы сортировки данных