Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Кто разбирается в ошибках программ. Подкажите...


Автор: Drug28081985 13.7.2006, 19:56
Я писал программу. Все было хорошо. Но тут вдруг начала выскакивать ошибка.
"Access violation at address 7C912FFC in module 'ntdll.dll'. Write of address 00404044ed"
Кто знает что это и как исправит напишите пожалуйста!

Программа у меня большая. Используется несколько окон. BDE и тд

 

Автор: BinaryEvil 13.7.2006, 19:58
проверь каждую строчку кода, хде то там можт лишний параметр вставляешь ну или что-то типо такого 

Автор: Drug28081985 13.7.2006, 20:06
строчек много. 
А как может из-за лишнего параметра ошибка вылезать? 

Автор: BinaryEvil 13.7.2006, 20:30
сори, дэлфи отлавливает лишние параметры. 
ну может указатель на неинициализированную переменную используешь, и передаёшь его в качестве параметра winapi функции

Добавлено @ 20:32 
фига думать - трасируй 

Автор: Alexeis 13.7.2006, 20:44
Drug28081985, это как правило возникает при неправельной работе с динамической памятью строками, многопоточностью, при попытке передать уже удаленный объект, считать данные по несуществующему адреу.
Надо проверять выполнение процедур (ставить брекпоинты и трасировать потом (кнопки F7, F8, F4)) и для начала выяснить в какой из них возникают проблемы. 

Автор: Mechanic 16.7.2006, 18:24
Цитата(alexeis1 @  13.7.2006,  20:44 Найти цитируемый пост)
 (ставить брекпоинты и трасировать потом (кнопки F7, F8, F4)) и для начала выяснить в какой из них возникают проблемы

Да, если проблемы возникают в кнопке F8, то только после этого переходить к кнопке F7.. ;)

Имеется в виду, что начинать нужно с крупных блоков, ищется блок, при выполнении которого происходит ошибка (не факт, что ошибка именно в этом блоке), потом трассируются все строки этого блока (по F8), опять же до появления ошибки. Потом уже мелкий блок можно пройти пошагово (F7), и в том месте, где выскакивает ошибка, просмотреть все значения используемых переменных, состояния участвующих объектов, и т.д.

Иногда такой подход не срабатывает. Тогда нужны несколько иные методы отладки. Ну, до них, надеюсь, не дойдёт. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)