Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];

Вниз

Что за зверь такой - Access Viloation?   Найти похожие ветки 

 
Franzy   (2003-12-06 19:12) [0]

В моей вычислительной проге вдруг стала постоянно появляться эта ошибка. Бьюсь уже два дня, но все никак не могу найти фрагмент кода, который ее вызывает. Мастера, подскажите, какие операторы могут быть причиной? Явно это какая-то фигня с виртуальной памятью. (С пойнтерами в проге не работаю, только с динамическими массивами.)


 
Anatoly Podgoretsky   (2003-12-06 19:19) [1]

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


 
Franzy   (2003-12-06 19:21) [2]

Ах, забыл написать - отлаживал с помощью Step and run, но Дельфи, похоже, глючит по-левому в этом случае. Вставляю Showmessage перед местом, где якобы происходит обрыв, но он не вызывается. Такое ощущение, буд-то бы сообщение об ошибке просто тормозит с появлением.


 
Franzy   (2003-12-06 19:22) [3]

Я же сказал, никаких указателей (ака пойтнеры) не использую!!!


 
Stilgar   (2003-12-06 19:24) [4]

А классы тоже не используются?


 
Anatoly Podgoretsky   (2003-12-06 19:32) [5]

Franzy © (06.12.03 19:22) [3]
Не обманывай, неужели пишешь только на классическом Паскале?


 
Юрий Федоров   (2003-12-06 20:20) [6]

Нигде не работаешь указателями? И Экземпляры класов нигде не разрушаешь (например)


 
Zacho   (2003-12-06 20:51) [7]

Вот точный ответ, что это за зверь :

EAccessViolation is raised when an application
Dereferences a nil pointer.
Writes to memory reserved for executable code.
Attempts to access a memory address for which there is no virtual memory allocated to the application.

А теперь подумай, что именно в твоей программе может привести к этой ошибке.


 
Franzy   (2003-12-06 22:19) [8]

Ну почему, классы использую. Фишка в том, что когда начала появляться эта ошибка, я никаких новых классов не вводил и не уничтожал.

Zacho: спасибо, но хелп я уже читал. Фраза Attempts to access a memory address for which there is no virtual memory allocated to the application (что скорее всего и указывает на ошибку) мало что говорит мне о том, КАКАЯ ФИГНЯ вызывает ее.

Кто-нибудь все-таки скажет мне, КОНКРЕТНО какие операторы могут вызвать эту ошибку. Где искать причину?


 
Юрий Федоров   (2003-12-06 22:21) [9]


> Кто-нибудь все-таки скажет мне, КОНКРЕТНО какие операторы

практически любые


 
Stilgar   (2003-12-06 23:52) [10]

Прикинуть, какие в это время приходят сообщения, поставить контрольные точки остановки. Свое приложение отлаживать, IMHO, проще. На более точный совет я бы не расчитивал. На сайте есть такая тенденция: когда вопрос слишком сложный или невозможно ответить конкретно, мастера начинают издеватся (не в обиду будет сказано).


 
Германн   (2003-12-07 02:32) [11]

2 Franzy © (06.12.03 22:19) [8]
> Кто-нибудь все-таки скажет мне, КОНКРЕТНО какие операторы

Самые частые причины возникновения AV - обращения к экземплярам объектов(классов) ещё не созданных или уже уничтоженных.


 
Юрий Федоров   (2003-12-07 03:21) [12]

>>Германн © (07.12.03 02:32) [11]
Самая частая причина - обращение к еще не созданным...
потому что когда идет обращение к уже уничтоженым - тогда автор вопроса знает, как их создавать/уничтожать, и соответственно начинает за этим следить


 
Германн   (2003-12-07 03:44) [13]

2 Юрий Федоров © (07.12.03 03:21) [12]
>>Германн © (07.12.03 02:32) [11]

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

Увы! Знать как и что, еще не значит не допускать ошибок в коде. У нас ведь сейчас не линейная модель программирования, а событийная</B. Некий экземпляр объекта уже мог быть уничтожен при обработке некоего события, а я то - глупый считал, что это событие не может возникнуть до того как!


 
Думкин   (2003-12-07 06:22) [14]


> (С пойнтерами в проге не работаю, только с динамическими массивами.)

Наверное тут и порылось. Вероятность 99%.


 
Digitman   (2003-12-07 11:39) [15]


> Franzy


Сообщение об исключении у тебя выглядит примерно вот так :
".. access violation at address XXXXXXXX ...."

стартуй приложение под управлением встр.отладчика, вызови меню Search -> Find Error, введи в EditBox этот самый XXXXXXXX - отладчик с немалой вероятностью покажет тебе ту строчку исх.текста, при исполнении которой произошло данное исключение


 
Franzy   (2003-12-07 21:34) [16]

Спасибо! Сейчас попробую ваш способ.


 
Franzy   (2003-12-07 22:22) [17]

стартуй приложение под управлением встр.отладчика, вызови меню Search -> Find Error, введи в EditBox этот самый XXXXXXXX - отладчик с немалой вероятностью покажет тебе ту строчку исх.текста, при исполнении которой произошло данное исключение

Хех, так он не срочку исходника показывает, а строчку на ассемблере! Мне это мало помогает, потому что асма я не знаю.



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

Форум: "Основная";
Текущий архив: 2003.12.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.013 c
6-62178
BAPBAP
2003-10-22 17:56
2003.12.19
TIdTCPClient и TIdTCPServer на одном порту.


14-62242
Style
2003-11-13 09:23
2003.12.19
Каспаров vs X3D Fritz


14-62256
Knight
2003-11-25 14:58
2003.12.19
В чём разница между S1 и S2 в данном фрагменте?


14-62229
GPRS
2003-11-25 17:58
2003.12.19
Тем кто пользуется GPRS


14-62244
BOA_KAA
2003-11-25 11:50
2003.12.19
Mozilla Mail & переустановка Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский