• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Acces Violation!

  • Автор темы 4ert
  • Дата начала
Статус
Закрыто для дальнейших ответов.
4

4ert

Люди, помогите плиз!!!!!!!!!.......
Вопрос такой,.... Да и не вопрос это вовсе........
Короче, ситуация такова. Решил я написать на delphi козла(игра карточная,если кто не знает),честно говоря я плоховато знаю Delphi,но всё же взялся.........
И вот что обнаружилось,как бы выразиться..... короче говоря при выполнении программы
некоторые функции(точнее почти все) изредка просто игнорируются, скажем у меня есть функция,
регистрации вышедших карт,и удаления их из массива игрока(чтобы он не кидал их дважды),где-то в 17 раз из двадцати всё ништяк!!!1,но в оставшиеся три бот может воспользоваться выбывшей картой дважды, и даже трижды!!!!, в коде я уверен почти на сто(нехочу приводить исходник,просто я сомневаюсь, что у кого-то возникнет желание разбираться в 2332 строках кода...),и так происходит почти со всеми 20 вспомогательными функциями в моей программе.Улучшить ситуацию можно,вызвав в нужной ситуации нужную функцию дважды,или трижды,количество глюков стало значительно меньше(но все равно имелись...)...короче говоря, я продолжил писать, решил разобраться с этим позже. И вот сейчас я в принципе закончил всю думающую часть программы, и что я обнаружил?!, да то,что даже один кон не может закончиться без Acces Violation!,причем ошибка возникает не в одном месте(тогда бы я заметил в каком точнее при каком "раскладе",и сто процентов выявил бы браковую функцию),но ошибка(EAccesViolation(216)) теперь может вылетить когда угодно и где угодно(даже в самом начале).Я вообще плохо ознакомлен с работой памяти,но я понимаю,что эта ошибка возникает при обращении программы к неинициализированному участку памяти(из helpa),тогда возникает вполне законный вопрос начинающего ламера, как её инициализировать?............Возможно все дело в такой организации игры: у меня ..уева туча глобальных переменных и около двадцати функций, которые постоянно изменяют значения этих глобальных переменных, может из-за этого?...Ещё у меня вся логика бота построена на операторах for to do, и if then.Наконец у меня куча вызовов функций из самих функций,т.е. например главная функция программы(управляющая), запускает скажем функцию захода(первого хода), а та в свою очередь анализируя имеющиеся у игрока карты, запускает функцию поиска минмального козыря(если видит что остались одни козыря), я вообще молчу о вызвах таких вспомогательных функций как поиск подстроки,поиск максимального минмального элемента в массиве,замены подстроки и т.д.....а ещё вперемешку с 216-ой всё чаще появляется EStackOverlow.....Может быть ещё потому, что карты загружаются в объект TImage из файлов bmp,(вообще я хочу конечно создать res файл с ними,просто руки не дошли).
Вот я прошу людей добрых,чтоб помогли мне понять из-чего и что, случается,а то у меня уже крыша съезжает,.....если кому-нибудь исходник понадобиться оставьте мыло, вышлю, ну или сами напишите на tarackanius666@mail.ru
 
B

Barmutik

Колупаться в чужом исходнике дело краней неблагодарное ..

А что говорит CallStack после ошибки? Если уж совсем нет никакой возможности отдебажить .. пишите в лог файл а потом уже анализируйте его...

Судя по Вашеиму описанию .. ошибка может крыться в банальной неинициализации переменных или доступу в неиницилизрованные куски памяти...

Просто брать и под отладкой искать такуие ситуации...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!