реклама на сайте
подробности

 
 
> Точки останова в VMLab, в основном цикле не могу поставить
H0kum
сообщение Sep 15 2009, 19:23
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 28-10-06
Пользователь №: 21 742



Не могу поставить в основном цикле программы точку останова. Этого зеленого квадратика там просто нет.
Во встроенной справке ничего по этому поводу не нашел.

Можно это как-нибудь побороть?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Александр Куличо...
сообщение Sep 15 2009, 19:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата(H0kum @ Sep 15 2009, 22:23) *
Не могу поставить в основном цикле программы точку останова. Этого зеленого квадратика там просто нет.
Во встроенной справке ничего по этому поводу не нашел.

Можно это как-нибудь побороть?

В результате оптимизации кусок кода внутри while() был просто удален компилятором. Проверьте условие внутри while. Возможно, оно всегда ложно. Или внутри цикла размещен бесполезный кусок кода, который ни на что не влияет.
Go to the top of the page
 
+Quote Post
H0kum
сообщение Sep 15 2009, 19:49
Сообщение #3





Группа: Участник
Сообщений: 13
Регистрация: 28-10-06
Пользователь №: 21 742



Там идет обработка нажатия кнопок.
VMLab отрабатывает нажатия нормально, глобальные переменные зависящие от этого куска кода меняются.
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Sep 15 2009, 20:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



так может выложите кусок кода?
Но смотреть буду уже завтра.
Go to the top of the page
 
+Quote Post
H0kum
сообщение Sep 15 2009, 21:43
Сообщение #5





Группа: Участник
Сообщений: 13
Регистрация: 28-10-06
Пользователь №: 21 742



поставил оптимизацию 0, точки останова появляются везде. Но при этом hex-файл увеличивается практически в 2 раза
если оптимизация 1, то стоят выборочно непонятно по какому принципу
при остальных вариантах (2,3,s) точек вообще нет
это все относится к основному циклу, в остальных местах проблем нет...

Вот кусок кода:
Код
while (1) {
    if (key(MODE_SEL) == 1) {          
        if (++mode_n > MODES) mode_n = 1;
        display();
    }
     //далее аналогичные проверки нажатия кнопок
}
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Sep 16 2009, 08:58
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
поставил оптимизацию 0, точки останова появляются везде. Но при этом hex-файл увеличивается практически в 2 раза
если оптимизация 1, то стоят выборочно непонятно по какому принципу

Слишком мало информации по коду. Покажите процедуру/макрос key(), объявление всех переменных/констант, которые здесь используются. А лучше всего прикрепите к сообщению .с и .h - файлы.
Хотя нет, лучше всего посмотрите ассемблерный листинг (для вариантов 1,2,s) на предмет наличия кода внутри while().
Кстати, отлаживать код удобнее и нагляднее всего с оптимизацией 0, если есть такая возможность.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016