Eclipse CDT: не удается отладить или завершить приложение - PullRequest
2 голосов
/ 29 марта 2010

Eclipse достаточно хорошо настроен для запуска компилятора G ++ через Cygwin. Даже кодировка символов установлена ​​правильно !

Кажется, что-то не так с моей конфигурацией: я не могу отладить. Кнопка паузы в представлении отладки просто отключена, и в моем приложении нет потоков. Кажется, что gdb просто не связывается с Eclipse.

(imageshack) Представление отладки в Eclipse http://img265.imageshack.us/img265/4799/gdb1u.png

В настоящее время у меня есть следующие настройки отладки:

Отладчик: «Cygwin gdb Debugger»

Отладчик GDB: GDB

Командный файл GDB: .gdbinit

Протокол: по умолчанию

Я должен упомянуть здесь, что понятия не имею, что делает .gdbinit; в моем проекте это просто пустой файл.

Что не так с моей конфигурацией?

Debugging

При попытке завершить работу приложения в режиме отладки Eclipse отображает следующую ошибку:

Целевой запрос не выполнен: не удалось прервать.

Я тоже не могу убить процесс; Я должен убить его родителя gdb.exe, что, в свою очередь, убивает мое приложение.

Запуск

При нормальном запуске вызывается группа kill.exe, ничего не делая, в то время как Eclipse отображает следующую ошибку:

Завершить не удалось.

Я могу убить FaceDetector.exe из диспетчера задач.

Process Explorer

Вот как это выглядит в Process Explorer (отладка слева, запуск справа):

(imageshack) Дерево процессов Eclipse http://img707.imageshack.us/img707/4136/gdb3.png

Ответы [ 3 ]

2 голосов
/ 08 апреля 2010

Единственный найденный мной обходной путь - запустить Eclipse напрямую из Cygwin.

Запустите Cygwin Bash Shell, перейдите в каталог установки Eclipse и введите ./eclipse.exe.

Может показаться, что есть какая-то проблема с тем, как CDT связывается с Cygwin; стандартный вывод передается и выполняется kill.exe, но kill.exe не может фактически завершить приложение, если Eclipse не запускается через Cygwin. Отладка с помощью gdb дает похожие проблемы; также это решается с помощью обходного пути.

2 голосов
/ 04 апреля 2010

Вы проверяли, является ли это случаем присоединения отладчика к приложению, работающему от имени root, когда eclipse работает от имени обычного пользователя? (как в этой теме )

Вы пытались запустить eclipse от имени администратора, просто чтобы проверить, сохраняется ли проблема?


Также, это комментариев говорит :

Я также провожу целый день, чтобы проанализировать, почему я не смог вытащить свой GDB из затмения.
Наконец, я обнаружил, что не было обнаружено kill.exe в пути , который используется Eclipse для отправки SIGINT cygwin gdb.
Итак, если кто-либо может отлаживать с помощью eclipse и gdb и НЕ может приостановить работающую цель отладки, проверьте, существует ли cygwin kill.exe .

0 голосов
/ 07 апреля 2010

Основываясь на ответе в комментариях и других ответах, если я должен угадать (при условии, что вы установили достаточно частей cygwin), вы можете добавить каталог cygwin bin в путь к Windows. Для этого перейдите в свойства моего компьютера, на одной из вкладок (я полагаю, при запуске) есть опция для установки переменных среды. Одна из переменных - переменная PATH. Добавьте к этому пути windows каталога / usr / bin dir, и затмение сможет найти kill.

...