Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизEnableControls- AccessViolation Найти похожие ветки
← →
TrainerOfDolphins © (2006-12-04 13:10) [0]Добрый день!
Есть примерно такой код:with SomeIBTable do
begin
DisableControls;
Filter:=Somestring;
Filtered:=true;
EnableControls;{AccessViolation Error}
end;
Подскажите, пожалуйста, по какой причине вообще может возникать данная ошибка при вызове EnableControls. Может установка фильтра тут и не причём...
← →
TrainerOfDolphins © (2006-12-04 13:19) [1]Таки когда закоментировал установку фильтра, ошибки не было...
Не возникает также ошибки тогда, когда таблица подключена к мастеру (даже при установке фильтра).
← →
ЮЮ © (2006-12-04 13:19) [2]Отладчик - самое грозное оружие против AV.
Включи "Use Debug DCUs" в обциях проекта, ReBuild его и в тот момент, когда AV возникает:
1) смотришь Call Stack - цепочку всех вызовов методов до проблемного
2) F7 после этого тоже работает.
← →
TrainerOfDolphins © (2006-12-04 14:12) [3]
> Отладчик - самое грозное оружие против AV.
> Включи "Use Debug DCUs" в обциях проекта, ReBuild его и
> в тот момент, когда AV возникает:
> 1) смотришь Call Stack - цепочку всех вызовов методов до
> проблемного
> 2) F7 после этого тоже работает.
Да, это всё хорошо, но что мне искать в Call Stack? Я там понимаю половину :( того, что там написанно. Как мне по его сообщениям определить где я и почему лезу не в ту область памяти?
← →
Сергей М. © (2006-12-04 15:02) [4]
> TrainerOfDolphins
Проблема - в содержимом Somestring.
← →
Anatoly Podgoretsky © (2006-12-04 15:03) [5]> Сергей М. (04.12.2006 15:02:04) [4]
Проблема вообще может быть за пределами данного кода.
← →
Сергей М. © (2006-12-04 15:06) [6]
> Anatoly Podgoretsky © (04.12.06 15:03) [5]
Все может быть.
← →
ЮЮ © (2006-12-05 03:01) [7]
> Да, это всё хорошо, но что мне искать в Call Stack?
Проследть цепочку вызовов приведшей к AV. Оно ведь может оказаться а каком нибудь обработчике SomeIBTable, вызов которого не предполагался, а вовсе не в этом коде и даже в VCL-компоненте Поставить бряк в потенционально опасном месте.
Дойти до места AV можно и по F7, поставив бряк на строке EnableControls;
Cама строка SomeIBTable.EnableControls - не место для AV.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c