С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/32: Рейтинг темы: голосов - 32, средняя оценка - 4.91
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136

Eclipse +GDB: проблемы с отладкой

10.09.2011, 13:21. Показов 6426. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В коде в начале идет инициализация переменных, а потом считывание строки:
C++
1
2
cout << "Input expression to convert > ";
cin >> in_string;
Включаю режим отладки нажатием клавиши F11. Иду по шагам (step over). После прохождения строки с cout строка не выводится (и в консоли не выдается вообще ничего), а при прохождении строки с cin поток (как пишет эклипс) уходит в состояние Running:Step и больше ни на что не реагирует. После этого единственное, что можно с ним сделать - остановить. В нормальном режиме все работает без проблем. Подскажите, что я делаю не так, когда отлаживаю программу?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.09.2011, 13:21
Ответы с готовыми решениями:

Visual c++. Проблемы с отладкой
Здравствуйте. Почему при отладке студия иногда показывает не все локальные переменные? Например, при отладке в 10-ой студии следующей...

Проблема с отладкой в Eclipse
Проблема с отладкой в Eclipse: не могу посмотреть значение переменных. Обычно добавлял переменные с помощью кнопки Add Global Variables на...

Ubuntu Eclipse GDB не запускается
Здравствуйте! Настроил эклипс, вроде все работает нормально, но прошивать то ли не хочет, то ли косяк где то. После запуска...

4
 Аватар для TheAthlete
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
10.09.2011, 13:37
Привет! Она ничего и не будет выводить, т.к. ожидает ввода пользователя, в данном случае строки, и только потом сбрасывает буфер. Почитай про буферы ввода/вывода и манипуляторы endl, flush и другие в стандартной библиотеке ввода-вывода.

В твоем случае могу посоветовать использовать flush, т.е. написать вот так

cout << "Input expression to convert > " << flush;
cin >> in_string;

Манипулятор flush сбрасывает буфер потока, но никаких символов в вывод не добавляет.
При этом можно сделать одно замечание: Буфер вывода не сбрасывается, если программа завершается аварийно.

Более подробно можешь почитать в книге "Язык программирования С++. Вводный курс. Стенли Б. Липпман, Жози Лажойе, Барбара Му" Глава 8. Библиотека ввода-вывода
0
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
10.09.2011, 13:51  [ТС]
Цитата Сообщение от TheAthlete Посмотреть сообщение
Привет! Она ничего и не будет выводить, т.к. ожидает ввода пользователя, в данном случае строки, и только потом сбрасывает буфер. Почитай про буферы ввода/вывода и манипуляторы endl, flush и другие в стандартной библиотеке ввода-вывода.

В твоем случае могу посоветовать использовать flush, т.е. написать вот так

cout << "Input expression to convert > " << flush;
cin >> in_string;

Манипулятор flush сбрасывает буфер потока, но никаких символов в вывод не добавляет.
При этом можно сделать одно замечание: Буфер вывода не сбрасывается, если программа завершается аварийно.

Более подробно можешь почитать в книге "Язык программирования С++. Вводный курс. Стенли Б. Липпман, Жози Лажойе, Барбара Му" Глава 8. Библиотека ввода-вывода
Я немного не понял, что вы имеете в виду, но попробовал. В режиме отладки поток уходит в описанный в первом посте режим сразу после flush, однако строка появляется, а после неё:
*stopped,reason="end-stepping-range",frame={addr="0x0040182b",func="ma in",args=[],file="../src/InToPost.cpp",fullname="D:/Project/EclipseProject/InToPost/.settings/../src/InToPost.cpp",line="43"},thread-id="1",stopped-threads="all". Что это значит?

P.S.Все, разобрался, debuger хочет прямого ввода команд в консоль в данном случае, но это, мое мнение, как то неудобно. Можно ли это исправить?
0
 Аватар для TheAthlete
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
10.09.2011, 14:06
я с gdb не работал, но могу сказать, что вероятно все отладчики так работают, т.е. им же надо как-то давать данные. А так программа работает в реальном времени, то и ввод данных тоже в реальном времени, т.е. ввели данные и отладка пошла дальше.

Вероятно можно в самом отладчике до этой точки задать нужно значение. Я одно время работал с OllyDbg немного
0
 Аватар для DKOI
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
10.09.2011, 14:28  [ТС]
Цитата Сообщение от TheAthlete Посмотреть сообщение
я с gdb не работал, но могу сказать, что вероятно все отладчики так работают, т.е. им же надо как-то давать данные. А так программа работает в реальном времени, то и ввод данных тоже в реальном времени, т.е. ввели данные и отладка пошла дальше.

Вероятно можно в самом отладчике до этой точки задать нужно значение. Я одно время работал с OllyDbg немного
Вы немного не поняли. Понятное дело, что он требует ввода данных в реальном времени. Но суть в том, что после команды Flush (полагаю и ещё целого ряда команд) отладчик требует чтобы его явно перевели на следующую команду (f6 - горячая клавиша IDE Eclipse для этого - не работает) командой -exec-next. Вот и интересно узнать, можно ли поставить, чтобы эта команда вводилась автоматически?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2011, 14:28
Помогаю со студенческими работами здесь

Проблемы с отладкой
При работе с проектом начало выбивать ошибку:Ошибка 1 Не удалось найти имя типа или пространства имен &quot;Struct&quot; (пропущена...

Проблемы с отладкой
Написал код под Miko128. Программная отладка проходит на ура. Запускаю отладку по JTAG (JTAG ICE)...писец. Во-первых ошибки в AVR...

Проблемы с отладкой
Всем здравствуйте! Когда делаю дебаг программы, выскакивает следующее:

Проблемы с отладкой
Необработанное исключение в &quot;0x102de42e (msvcr100d.dll)&quot; в &quot;циклwhile.exe&quot;: 0xC0000005: Нарушение прав доступа при записи...

Не получается запустить отладку. Eclipse+gdb.
Здравствуйте. Уже несколько дней не могу решить проблему с отладкой программ в Eclipse. Настройку отладчика производил по статье...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru