Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2014, 17:14   #1
ElenaNazarenko
Новичок
Джуниор
 
Регистрация: 14.01.2014
Сообщений: 1
Вопрос Ошибки запуска приложения Delphi

При компиляции и запуске приложения выдается окно с сообщением

(1) Access violation at address 00512A0D in module ‘*.exe’. Read of address 00000000
.
Закрываю окно, приложение запускается, но окно формы где-то на заднем плане. Приложение работает нормально до его закрытия. Если приложение закрыть, то выдается сообщение:

(2) Проект …путь\\.ехе обломан с сообщением: 'access violation at 0x004049c2: write of address 0x00030dd0’. Процесс остановлен. Используйте Шаг или Запуск для продолжения.

Но ни Шаг, ни Запуск ничего не меняют. Закрываю окно Delphi (вместе с приложением), выдается окно с сообщением

(3) Идет сессия отладки. Прервать?

Приходится прерывать, иначе все висит. В настройках отключены флажки: Сообщения компилятора, проверка I/O, стоп при Delphi исключениях.

Что это может быть и как убрать окно (1)?
ElenaNazarenko вне форума Ответить с цитированием
Старый 14.01.2014, 17:29   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Что это может быть
Кривой код?
doktor255 вне форума Ответить с цитированием
Старый 14.01.2014, 18:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ElenaNazarenko
Без кода сложно что-то сказать. Только догадки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.01.2014, 21:40   #4
Jekasea
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 47
По умолчанию

Access violation at address 00512A0D in module ‘*.exe’. Read of address 00000000
Я понял так:
Нарушение прав доступа по адресу 00512A0D в модуле....
Jekasea вне форума Ответить с цитированием
Старый 15.01.2014, 00:53   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Я понял так:
Нарушение прав доступа по адресу 00512A0D в модуле....
Шерлок Холмс, ты ли это?

Вообще, сообщение следует понимать иначе:
Инструкции по адресу 00512A0D обращаются к несуществующему объекту.

Было бы арушением прав если бы второй адрес не был = 00000000.
Человек_Борща вне форума Ответить с цитированием
Старый 15.01.2014, 15:43   #6
blackstrip
Форумчанин
 
Аватар для blackstrip
 
Регистрация: 21.01.2012
Сообщений: 240
По умолчанию

Когда в Дельфи выдается сообщение Access violation at address XXXXXXXX in module ‘*.exe’. Read of address YYYYYYYY - то это значит все что угодно. Такая ошибка вылезает в 99,99999% случаев ошибок в дельфи =)

Возникнуть это может:
1) в конкретном месте вашего кода программы: обращение к разным несуществующим объектам, неправильные вызовы каких либо процедур с впихиванием в них данных неправильного типа (которые они пытаются пожевать по своим правилам, и выплевывают обратно как только что-то пойдет не так с этими данными и их использованием). Исправлять надо по месту возникновения в вашем коде.

2) в каком то модуле, который не ваш: вы сделали что-то с этим модулем такое, что он выдал ошибку сразу. Исправлять надо в том месте, где вы обращались к этому модулю (использовали его компоненты и т.д.). Скорее всего придется пошагово бегать в отладке и смотреть когда это происходит и после чего. Ставить переменные в watch-списки, смотреть когда и что с ними происходит.

3) в каком то модуле, который не ваш, и при этом он умер не сразу после некорректных действий вашего кода, а немного погодя: вы могли при инициализации программы задать в этот модуль какие либо некорректные данные/параметры, а потом спустя пять минут попытались его использовать - и он выдал ошибку. Искать ошибку придется не только в месте возникнования, но и вообще во всей программе. Аналогично как и в случае 2 бегать отладчиком и в процедурах инициализации, и в процедурах, после выполнения которых вылезает ошибка.
blackstrip вне форума Ответить с цитированием
Старый 15.01.2014, 16:47   #7
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от ElenaNazarenko Посмотреть сообщение
При компиляции и запуске приложения выдается окно с сообщением

(1) Access violation at address 00512A0D in module ‘*.exe’. Read of address 00000000
.
Закрываю окно, приложение запускается, но окно формы где-то на заднем плане. Приложение работает нормально до его закрытия. Если приложение закрыть, то выдается сообщение:

(2) Проект …путь\\.ехе обломан с сообщением: 'access violation at 0x004049c2: write of address 0x00030dd0’. Процесс остановлен. Используйте Шаг или Запуск для продолжения.

Но ни Шаг, ни Запуск ничего не меняют. Закрываю окно Delphi (вместе с приложением), выдается окно с сообщением

(3) Идет сессия отладки. Прервать?

Приходится прерывать, иначе все висит. В настройках отключены флажки: Сообщения компилятора, проверка I/O, стоп при Delphi исключениях.

Что это может быть и как убрать окно (1)?
В ходе "обычного прогона" программы понять, что это может быть крайне затруднительно.
Попробуйте запустить Вашу программу по точкам останова. Двигаясь от точки останова "по шагам", можно точно определить место в котором возникает ошибка. Тогда будет значительно проще установить и саму причину ошибки.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После запуска приложения из службы созданной на C# не отображается иконка приложения dmail1976 Общие вопросы .NET 1 22.09.2011 13:38
Параметры запуска приложения lmiol Помощь студентам 0 04.05.2010 22:10
проблема запуска приложения Mazaxaka Общие вопросы Delphi 2 27.03.2009 14:51