|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 21, 2004 15:34:57 Помогал знакомому отлаживать програмку Билдере. ну и там цикл и после 126 раз его выполнения возникает глюк=) чтоб отловить этот глюк вставил такое: if(число_циклов>125){ __asm{ nop//а тут поставил брекпоинт }; }; Самое итересное, что после этого всё заработало!=)))) убрали вставку - опять всё испортилось, назад - опять всё работает!=))))) Вот она - сила асма!=))) |
|
|
Дата: Сен 21, 2004 16:16:18 Танцы с бубном тоже иногда помогают :) |
|
|
Дата: Сен 21, 2004 17:16:43 ага, переменная небось была signed char и после 127 становилась отрицательной :) Смотри что компилер сгенерил в асмовом сорце. Бывает такое что оптимизатор неправвильно оптимизит - натыкался сам. А ассемблерная вставка просто по умолчанию отключает некоторые опции оптимизации. |
|
|
Дата: Сен 21, 2004 17:51:52 неее...=) там небыло такого, я бы сразу заметил!=)) скорее второе=)) но всё равно было весело такое видеть=)) |
|
|
Дата: Сен 21, 2004 20:02:20 eXod чтоб отловить этот глюк вставил такое: Вставляют отладочную печать обычно, а отладчиком надо уметь пользоваться. Он и служит для отлавливания глюков, которые исчезают после изменения программы. Есть же там наверняка брейк со счетчиком. И второе : если глюк был без отладчика, а с отладчиком нет - тогда оптимизация понятно почему отключена :-) Первая заповедь программиста : "Чудес, к сожалению, не бывает". Сколько раз уже убеждался, но все равно хочется верить ....... |
|
|
Дата: Сен 22, 2004 16:46:08 =)) можно было и так, только Билдер не является мой основной средой разработки, вот и проще мне было вставить такой код, чем смотреть как брекпоинт со счётчиком вставить=)) Мы специально проверили разные типы оптимизации(правда в Билдере их всего три - скорость,размер,нет). А чудес не бывает,а жаль... Но всё-равно весело было смотреть как с ноп'ом код начинает правильно работать!=) А вот времени разбараться почему так к сожалению нет=( |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.078 |