Фантомный ввод при запуске отладчика Green Hills

Я использую Marvell Monahans PXA320 под Green Hills INTEGRITY 5.0.10. Я использую MULTI 4.2.3 для разработки. Я использую соединение RTSERV для отладки, меня попросили взять на себя программу, управляемую меню.

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

Есть ли что-нибудь, что я могу сделать, чтобы предотвратить остановку / возобновление ввода-вывода?

Спасибо, Дэйв


person Dave    schedule 13.12.2012    source источник
comment
Что движет таймером вашей операционной системы?   -  person phonetagger    schedule 13.12.2012
comment
Меню обычно проходит через последовательный порт? Можете ли вы настроить отладчик, чтобы он продолжал работу и позволял ему работать через последовательный порт? И если да, то что тогда происходит? Такое же поведение?   -  person phonetagger    schedule 13.12.2012


Ответы (1)


Мое первое предположение состоит в том, что getc() (или ваш эквивалент) возвращает -1. Это может произойти, если ваши входные буферы переполнились в результате остановки приложения. Ввод-вывод продолжает выполняться, пока приложение остановлено...

Обычно не рекомендуется останавливать программу при отладке с помощью INTEGRITY. Как правило, лучше подключить отладчик к одному потоку (что-то бездействующее или редко используемое), установить точку останова «любой задачи» в этом потоке, а затем возобновить поток. (Не закрывайте окно! Это приведет к удалению точки останова.) Вы увидите статус «DebugBrk» для потока, который достигает точки останова, — затем вы можете дважды щелкнуть и подключиться к этому конкретному потоку.

Следование этой альтернативной процедуре должно (надеюсь!) предотвратить ошибку ввода-вывода.

person Randy    schedule 24.06.2013