Отладчик Eclipse C++ не останавливается на точках останова и завершает работу сразу после начала отладки

Я слежу за разделом руководства по отладке C++ (https://help.eclipse.org/photon/index.jsp) в документации Eclipse Photon. Я выполнил все инструкции, создав первый проект C++, и сейчас нахожусь в разделе «Отладка проекта». Моя проблема в том, что после того, как я создаю перспективу отладки и нажимаю кнопку «Отладка», отладчик никогда не останавливается на моей установленной точке останова. В окне отладки он просто говорит, а цикл программы даже не производит никакого вывода. Если вы запускаете программу в обычном режиме, цикл выводится на консоль, но с точки зрения отладки ничего не происходит.

Я попытался удалить свою перспективу отладки и создать новую, но у меня те же проблемы. Я загрузил скриншоты своей конфигурации отладки.

https://imgur.com/a/MXYHxJl
https://imgur.com/a/eEU47Ht
https://imgur.com/a/koOf08x

#include <iostream>
using namespace std;

int main () {
    // Say HelloWorld five times
    for (int index = 0; index < 5; ++index)
      cout << "HelloWorld!" << endl;
    char input = 'i';
    cout << "To exit, press 'm' then the 'Enter' key." << endl;
    cin  >> input;
    while(input != 'm') {
        cout << "You just entered '" << input << "'. "
             << "You need to enter 'm' to exit." << endl;
        cin  >> input;
    }
    cout << "Thank you. Exiting." << endl;
    return 0;
}

В вашем обзоре проблем есть проблемы. Может ли это иметь какое-то отношение к этому? В перспективе Debug есть представление под названием «Debug», которое показывает запущенное приложение и его трассировку стека. Вы видите, что ваше приложение там работает?

Benjamin Bihler 15.01.2019 09:15

@BenjaminBihler Проблемы связаны с другими программами, написанными на Java. Я использую Photon, и они взяты из старых проектов Java, которые необходимо обновить. Я могу видеть запущенное приложение только тогда, когда я запускаю программу вне отладки. Когда я запускаю "нормально", приложение выводит на консоль и выводит цикл с запросом ввода символа. Но когда я устанавливаю точку останова и начинаю отладку, я просто получаю изменение перспективы отладки, но затем статус «завершен» в моем окне отладки. Я никогда не вижу ничего распечатанного в перспективе отладки.

arooney88 15.01.2019 15:02

Хммм, это странно. На вкладке «Отладчик» конфигурации отладки вы можете указать, хотите ли вы останавливаться при запуске в основном методе. Это могло помешать выходу, если отладчик сразу остановился на этом, а вы не сказали ему продолжить. Но если сообщается, что приложение было закрыто, то должна быть другая проблема. Возможно, вы захотите запустить отладчик из командной строки, чтобы проверить, работает ли он. К сожалению, сейчас у меня больше нет идей ...

Benjamin Bihler 15.01.2019 15:09

Возможно, вы меня неправильно поняли. Не пытайтесь выяснить, запущено ли приложение, глядя на консоль. Проверьте представление «Отладка» в перспективе отладки. При отладке должно быть дерево. Верхний узел должен иметь имя вашего приложения. Фактически вы можете установить конфигурацию отладки так, чтобы она остановилась на main. Тогда с точки зрения отладки вы сможете исследовать свое (остановленное) приложение до того, как что-нибудь произойдет.

Benjamin Bihler 15.01.2019 15:15

@BenjaminBihler Я проверил свою конфигурацию, и у меня был установлен флажок «останавливать при запуске в: Main». Я также включил снимки экрана с настройками конфигурации отладки. Я смотрю в перспективу отладки, когда вижу статус «завершено». Дерево отладки может расширяться, и когда я это делаю, я просто вижу <terminated, exit value: 0> gdb (7.6.1). Любые идеи? Я не понимаю, почему это не останавливается на точке останова. У меня не было этих проблем с отладкой приложений Java.

arooney88 15.01.2019 16:30

C++ сложнее Java в том, что касается отладки. Тем не менее, это отлично работает с Eclipse CDT. Ваши скриншоты выглядят нормально, ошибок не обнаружено. Извините, но у меня закончились идеи.

Benjamin Bihler 15.01.2019 16:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
1 059
1

Ответы 1

Я нашел решение своей проблемы, следуя инструкциям в этом другом сообщении: Eclipse C++ MinGW - Невозможно запустить программу <Завершено> Второй ответ - это то, что сработало для меня.

Мне пришлось щелкнуть правой кнопкой мыши мой проект - -> свойства - -> Параметры запуска / отладки - -> щелкнуть конфигурацию запуска и нажать «изменить». Оказавшись внутри экрана редактирования, щелкните вкладку «среда» и добавьте следующую переменную Имя = ПУТЬ ЗНАЧЕНИЕ =% ПУТЬ%; C: \ MINGW / BIN

У меня ничего не было настроено в среде, и изменение вышеупомянутого остановило отладчик на правильных точках останова в программе.

Но вы написали, что смогли нормально запустить программу. Что значит нормально? С нормальной конфигурацией запуска eclipse? Значит, вы уже должны задать этот путь !!!

Benjamin Bihler 16.01.2019 08:14

@BenjaminBihler Когда я запускал «конфигурацию запуска», программа печатала на консоли и запускала программу по назначению. Но когда я запустил отладчик, ничего не произошло, когда он изменился на перспективу, и у меня была ошибка, о которой я изначально писал. Найдя сообщение, на которое я ссылался в ответе, мне также пришлось установить переменные моей системной среды и обновить PATH, чтобы C: \ MinGW \ bin был первым в моем списке. Выполнение этого, а также следование инструкциям, которые я опубликовал в своем ответе, заставили отладчик фактически остановиться на точке останова.

arooney88 16.01.2019 20:29

Другие вопросы по теме