[Ответить в тред] Ответить в тред

16/08/16 - Запущен Двач Трекер
01/08/16 - Вернули возможность создавать юзердоски
09/07/16 - Новое API для капчи - внимание разработчикам приложений



Новые доски: /obr/ - Offline Battle Rap • /hv/ - Халява в интернете • /2d/ - Аниме/Беседка • /char/ - Сетевые персонажи • /wwe/ - WorldWide Wrestling Universe • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 6 | 1 | 5
Назад Вниз Каталог Обновить

Чудовищный баг DCC Аноним # OP  03/08/16 Срд 03:00:02  811683  
14701824024430.png (3Кб, 225x225)
Всем привет. Очень нужна помощь "зала". Вкратце обрисую сложившуюся ситуёвину. Дело было так. Сижу я, значит, кодю помаленьку, периодически компиляю накоденное. И вот в один прекрасный момент получаю вылет по AV. Т.к. был почти уверен в отсутствии ошибки, сразу полез в дебугер. Открываю прогу в "Оле"… и ужасаюсь. Эмбаркадеровское поделие сгенерило короткий переход назад вместо ближнего вперёд (сука, а ведь они ещё и бабки за свой высер хочут). Небольшая рокировка кусочков кода временно решила проблему, а затем код разросся, дистанция прыжка увеличилась и проблема рассосалась совсем. НО на хую я вертел такое программирование, когда после каждого чиха приходится открывать прогу в дизасме и проверять правильность переходов. После того, как докатал прожку, решил искусственно (NOP'ами) смоделировать описанный конфуз в микроскопическом тестовом проектике. Не сразу, но получилось. На всякий случай компильнул тот же код TAsm'ом – всё пучком. В общем просьба моя заключается в следующем. Если тут есть аноны, юзающие Делфю версий выше XE, компильните плис проектик из архива – http://rgho.st/download/8bsrghQ5N/d521d089595c0aa91f0fe5cf3fc38d847681575f/Test_Jump.zip (бинарники присутствуют, дабы анон не думал, что ОП гонит), и проверьте на предмет вышеописанной бессовестной подлянки от сурьёзной конторы. Лелею надежду, что сей баг был исправлен. Особенно интересует компиль из XE2, ибо кол-во багов пропорционально фичам, да и размер dcu'шек с каждой версией растёт как на дрожжах.
Аноним 03/08/16 Срд 08:36:45  811771
>>811683 (OP)
2016 год, чем вы, блять, занимаетесь? Какое делфи?
Аноним # OP  03/08/16 Срд 21:17:02  812336
>>811771
Занимаюсь программированием для души. По теме есть что сказать?
Аноним 03/08/16 Срд 21:24:54  812344
>>811683 (OP)
>Программировать на Delphi
>Смотреть на результат в OllyDbg

Ну раз код пишется на высокоуровневом языке, то и отлаживается он средствами высокоуровневого языка. Если отладчик показывает ошибку ну совсем в неположенном месте (на выходе из блока, по окончанию подпрограммы), то значит не удалили объект, который нужно было удалять, или не освободили память.
Единственный способ избежать Access Violation - программировать на интерпретируемых языках ещё более высокого уровня
Аноним 03/08/16 Срд 21:32:43  812350
>>812344
А значит - вот это всё гадание с помощью TASM Его вообще есть полноценные релизы под Windows? и OllyDbg - это не системный подход, а просто какой-то ритуал.
Возможно в процессе работы программы ссылка на значение в памяти, которая указывает на область данных, стала внезапно указывать на область в памяти где находится программа. Современные ОС этого не любят и за этим следят. Возникновение этой ситуации - уже симптом чего-то нехорошего.

ОП, готовь костыли к своей программе, "анальгин" в виде NOP, дописанных вручную в бинарники не поможет
Аноним # OP  03/08/16 Срд 23:06:08  812454
>>812344

>Ну раз код пишется на высокоуровневом языке
Код пишется на BASM.

>отлаживается он средствами высокоуровневого языка
Делфовый отладчик – кусок говна по сравнению с OllyDbg

>не удалили объект … не освободили память.
Нет никаких объектов и выделения памяти – только одна процедура с кучей нопов и тремя джампами.

>>812350

>вот это всё гадание с помощью TASM
Никакого гадания. Бинари приложены, асм-листинги тоже.

>Его вообще есть полноценные релизы под Windows?
Да, входит в "RAD Studio" и все более ранние продукты. После доработки напильником становится ЕДИНСТВЕННЫМ асмом с поддержкой function level linking.

>Возможно в процессе работы программы ссылка на значение в памяти, которая указывает на область данных
(Без)условные переходы никакого отношения к чтению/записи памяти не имеют, смещение – это непосредственное значение.

>ОП, готовь костыли к своей программе
С программой всё в порядке, но чтобы в дальнейшем не нарываться на такие грабли, хотелось бы найти версию компилятора без этого бага.
Аноним 04/08/16 Чтв 01:17:29  812593
Помню когда был школьником писал какую-то хуйню в делфи. Она не работала, хотя я долго медитировал над кодом и в нем не было ничего особенно сложного. Тогда я запустил дебагер и прошелся им по циклу. И в одной итерации без всякой видимой причины стрелка внезапно перепрыгнула через одну строчку где должна была меняться переменная. Сказать что я охуел ничего не сказать. Показал эту хуйню училке - она только руками развела, что поделать десу. Такая вот морозная былина.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 6 | 1 | 5
Назад Вверх Каталог Обновить

Топ тредов
Избранное