Отладчик 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;
}

person arooney88    schedule 15.01.2019    source источник
comment
В вашем представлении проблем есть проблемы. Может ли это иметь какое-то отношение к этому? В перспективе Debug есть представление Debug, которое показывает запущенное приложение и его трассировку стека. Вы видите, что ваше приложение работает там?   -  person Benjamin Bihler    schedule 15.01.2019
comment
@BenjaminBihler Проблемы связаны с другими программами, написанными на Java. Я использую Photon, и это из старых проектов Java, которые необходимо обновить. Я могу видеть только запущенное приложение, когда я запускаю программу вне перспективы отладки. Когда я работаю нормально, приложение выводит на консоль и выводит цикл, запрашивающий ввод символов. Но когда я устанавливаю точку останова и начинаю отладку, я просто получаю изменение перспективы отладки, но затем завершаю статус в своем окне отладки. Я никогда не вижу ничего напечатанного в перспективе отладки.   -  person arooney88    schedule 15.01.2019
comment
Хм, это странно. На вкладке «Отладчик» конфигурации отладки вы можете указать, хотите ли вы останавливаться при запуске на основном методе. Это может помешать выводу, если отладчик немедленно остановится на этом, а вы не скажете ему продолжить. Но если сообщается, что приложение завершено, то должна быть другая проблема. Вы можете запустить отладчик из командной строки, чтобы проверить, работает ли он. К сожалению, сейчас у меня больше нет идей...   -  person Benjamin Bihler    schedule 15.01.2019
comment
Возможно, вы меня неправильно поняли. Не пытайтесь выяснить, запущено ли приложение, глядя на консоль. Проверьте представление Debug в перспективе отладки. При отладке должно быть дерево. Верхний узел должен иметь имя вашего приложения. На самом деле вы можете настроить конфигурацию отладки так, чтобы она останавливалась на main. Затем с точки зрения отладки вы сможете исследовать свое (остановленное) приложение до того, как что-либо произойдет.   -  person Benjamin Bihler    schedule 15.01.2019
comment
@BenjaminBihler Я проверил свою конфигурацию, и у меня был отмечен флажок «Остановка при запуске в: Main». Я также включил скриншоты моих настроек конфигурации отладки. Я смотрю в перспективу отладки, когда вижу статус «прекращено». Дерево отладки может расширяться, и когда я это делаю, я просто вижу ‹terminated, значение выхода: 0>gdb (7.6.1). Есть идеи? Я в недоумении, почему это не останавливается на точке останова. У меня не было таких проблем при отладке Java-приложений.   -  person arooney88    schedule 15.01.2019
comment
С++ сложнее, чем Java, когда дело доходит до отладки. Тем не менее, это отлично работает здесь с Eclipse CDT. Ваши скриншоты выглядят нормально, я не могу найти какую-либо ошибку. Извините, но у меня закончились идеи.   -  person Benjamin Bihler    schedule 15.01.2019


Ответы (1)


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

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

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

person arooney88    schedule 15.01.2019
comment
Но вы написали, что смогли нормально запустить программу. Что значит нормально? С обычной конфигурацией запуска eclipse? Тогда вы, должно быть, уже установили этот путь!!! - person Benjamin Bihler; 16.01.2019
comment
@BenjaminBihler Когда я запускал «конфигурацию запуска», программа печатала на консоль и запускала программу, как предполагалось. Но когда я запускал отладчик, ничего не происходило, когда он менялся на перспективу, и у меня была ошибка, о которой я изначально писал. Найдя сообщение, на которое я ссылался в ответе, мне также пришлось установить переменные системной среды и обновить PATH, чтобы C:\MinGW\bin был первым в моем списке. Выполняя это, а также следуя инструкциям, которые я опубликовал в своем ответе, отладчик фактически остановился в точке останова. - person arooney88; 16.01.2019