Russian Qt Forum
Ноябрь 23, 2024, 11:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Проблемы при работе с Eclipse SDK  (Прочитано 23628 раз)
Cyrax
Гость
« Ответ #15 : Октябрь 11, 2006, 09:45 »

Что означают строки в консоли при вызове в Eclipse отладчика:
(1) mi_cmd_stack_list_frames: No stack.
(2) Warning: E:\Cyrax\P2/E: No such file or directory.
Прооект у меня находится в E:\Cyrax\P2. К чему относится фрагмент "/E:" и какую директорию он не может найти - E:\Cyrax\P2 или E: ?

Странное поведение отладчика:
1. При установленном Stop at main() on startup при запуске отладчика выполнение программы останавливается на main'е (судя по всему). Но эта строка не выделяется. Если поставить брикпоинт, то при отладке строки выделяются...
2. Далее (после остановки на main'е) жму F5 или F6 - вся программа выполняется до конца. Тоже странно, поскольку F5 (Step Into) должен залезть внутрь main'а...
Выходит, останов на main'е по Stop at main() on startup происходит не по брикпоинту, а как-то по-другому...
3. Ставлю брикпоинт на main'е. Запускаю дебагер. останавливаюсь на main'е (уже по брикпоинту). Жму F5 - захожу внутрь на первую команду в main'е. Далее жму F5 или F6 - вся программа выполняется до конца...
4. Жму на main'е (после останова по брикпоинту) F6 (Step Over) - тоже захожу внутрь... Далее - как в п.3.

Как я понимаю, Eclipse'овый Step Over должен вызывать gdb-команду next, а Step Into - step.
Записан
SLiDER
Гость
« Ответ #16 : Октябрь 11, 2006, 17:19 »

Ни один из описанных  вами артефактов у меня не наблюдается. Похоже, что это все таки глюки. Какая-то не совместимость Mingw, gdb и eclipse. Возможно что-то из этого софта не из стабильных веток. Не стабильный eclipse, особенно под виндой, бывает глючит весьма сильно. Сечас у меня нет возможности посмотреть какиеименно версии Mingw и gdb стоят под виндой (это на работе, а я в отпуске). На следующей неделе, в понедельник, буду знать точно.

З.Ы.  Одно могу сказать точно, что для работы всегда использую не SDK версию eclipse, а обычный Platform Runtime Binary, его вполне достаточно, а весит несравнимо меньше.
Записан
Cyrax
Гость
« Ответ #17 : Октябрь 11, 2006, 21:40 »

Platform Runtime Binary - это голая платформа безо всяких плагинов ?
Записан
SLiDER
Гость
« Ответ #18 : Октябрь 11, 2006, 21:50 »

Цитата: "Cyrax"
Platform Runtime Binary - это голая платформа безо всяких плагинов ?

Вобщем, да, а главное без sdk. Но вот то что отсутствует нужно только разработчикам на яве, или разработчикам плагинов для eclipse, разработчику на С++ этот хлам абсолютно безполезен, и даже вреден, поскольку замедляет процесс загрузки  самой IDE. Так что смело можете в следующий раз скачивать только ее. Eclipse Platform Runtime Binary и CDT, это все что вам нужно. Я правда, тут не говорю о других плагинах, которые не входят в Eclipse Platform SDK, но могут быть полезными (например плагин для взаимодействия с subversion), это совсем другая история.
Записан
Cyrax
Гость
« Ответ #19 : Октябрь 13, 2006, 12:50 »

Сначала скачал последний gdb (6.3), поставил. MinGW у меня 5.0.2. Один из последних, по-моему.  Все глюки (может и не глюки) отладчика по-прежнему наблюдались, кроме одного - 3-го...

Далее скачал Eclipse SDK 3.2.1, CDT SDK 3.1.1. Всё поставил. Проверил Qt-плагин - всё то же самое, за искл. сообщения об ошибке (не выходит, но по-прежнему открывается пустая вкладка QMake Editor). Плюс 10-кратное сообщение об ошибке "...token error..." при первом изменении и apply'е параметров подсветки синтаксиса Qt...
Отключил CDT Makefile Builder и Scanner Configuration Builder, оставил только qmake builder. Сохранил. После этого перед открытием пустой вкладки QMake Editor стало выходить сообщение об ошибке
An error has occured. See error log for more details.
Просто замечательно ! Улыбающийся

Выходит, плагин нормально работает только на Eclipse 3.1.2 and CDT 3.0.2...

Теперь, что касается отладчика. На таком примере:
Код:

#include <iostream.h>
using namespace std;

int main(int argc, char *argv[])
{ int ff;
  cout << "Cyrax";
  return 0;  
}

к отладчику нет абсолютно никаких претензий.

Другой простенький пример:
Код:

#include <qapplication>
#include <QPushButton>

int main(int argc, char *argv[])
{ QApplication app(argc, argv);
  QPushButton button("Cyrax");
  button.show();
  return app.exec();
}

А вот здесь всё и наблюдается:
1. отладчик не останавливается на main'е (на самом деле на первой команде main'а) по Stop at main() on startup, но останавливается по брикпоинту...
2. и по F5, и по F6 на QApplication app(argc, argv); происходит переход на строку
inline T qAtomicSetPtr(volatile T *ptr, T newval)
файла qatomic.h...
Далее после 40-кратного F6 (40 шагов висим на этой строке) возвращаемся на строку QApplication app(argc, argv);
Далее по F6 нормально движемся по строчкам...
И теперь непонятно, к чему относится вся эта канитель - к QApplication app(argc, argv); или к int main(int argc, char *argv[]). Судя по всему - к main'у. Только почему выделяется строка QApplication app(argc, argv);...

С чем всё это связано - с Qt или с "неконсольностью" проекта ?..


И ещё такой вопрос. В Qt-ном include файлы без расширения ссылаются (через #include) на одноимённый h-файл. Для чего это нужно ?
Все подключаемые к Eclipse Qt-ные h-файлы содержат директиву #include со ссылкой на h-файлы из каталога src. Опять-таки зачем так сложно всё организовано ?

добавлено спустя 7 минут:

 Предупреждения при вызове отладчика несколько видоизменились. mi_cmd_stack_list_frames: No stack вроде бы исчезло, а остальное:

Warning: /Cyrax/P2_Department/Department/debug;E: No such file or directory.
Warning: /Cyrax/P2_Department/Department/.settings;E: No such file or directory.
Warning: /Cyrax/P2_Department/Department;E: No such file or directory.
Warning: E:\Cyrax\_Myself_advancement\P2_Department\Department/E: No such file or directory.

Что это, всё-таки, означает ?
И debug, и .settings - всё имеется по указанным путям...
Записан
SLiDER
Гость
« Ответ #20 : Октябрь 13, 2006, 19:17 »

Мне вот тут подумалось, про отладчик, а вы Qt сами компилировали или от тролей инсталятор с прекомпилированной версией взяли? Если последнее, то попробуйте перекомпилировать сами и незабудте обязательно отладочную версию собрать.

Цитата: "Cyrax"
И ещё такой вопрос. В Qt-ном include файлы без расширения ссылаются (через #include) на одноимённый h-файл. Для чего это нужно ?
Все подключаемые к Eclipse Qt-ные h-файлы содержат директиву #include со ссылкой на h-файлы из каталога src. Опять-таки зачем так сложно всё организовано ?


Это надо у тролей спрашивать. ИМХО, они, кажется, старались привести названия и методику включения заголовочников в соответствии с С++ стандартом (STL) и непотерять совместимость с программами написанными в старом стиле.
Записан
Cyrax
Гость
« Ответ #21 : Октябрь 14, 2006, 10:06 »

Ставил я прекомпилированную версию Qt 4.1.4, затем перекомпилировал в debug-варианте. Тогда получил гиг. Перекомпилил ещё раз - распух аж на 2,3.Гб... Видно в тот раз не почистил объектники...

В любом случае с дебаггером то же самое...

SLiDER, вы пробовали отлаживать второй пример кода ?  Может, и у вас те же артефакты пронаблюдаются...

добавлено спустя 9 часов 3 минуты:

 Те же самые проблемы с плагином возникают, если в свойствах Qt (преференсы) ничего не указывать. QtDir стоит .../Qt/4.1.4. Может, QMakeFeatures нужно указать...

Дело в том, что я проверил плагин на русифицированном Eclipse SDK 3.2.0 с CDT 3.1.0. Те же самые глюки...
Может, Java криво работает... Я ставил Java 2 SDK, SE v1.4.2...

Впрочем, попробую поставить Qt 4.2...
Записан
SLiDER
Гость
« Ответ #22 : Октябрь 16, 2006, 20:46 »

Сегодня был на работе. Воооот. Проверил
Цитировать
1. отладчик не останавливается на main'е (на самом деле на первой команде main'а) по Stop at main() on startup, но останавливается по брикпоинту...
2. и по F5, и по F6 на QApplication app(argc, argv); происходит переход на строку
inline T qAtomicSetPtr(volatile T *ptr, T newval)
файла qatomic.h...
Далее после 40-кратного F6 (40 шагов висим на этой строке) возвращаемся на строку QApplication app(argc, argv);
Далее по F6 нормально движемся по строчкам...
И теперь непонятно, к чему относится вся эта канитель - к QApplication app(argc, argv); или к int main(int argc, char *argv[]). Судя по всему - к main'у. Только почему выделяется строка QApplication app(argc, argv);...

С чем всё это связано - с Qt или с "неконсольностью" проекта ?..

Все действительно так. Но этому есть простое объяснение. Я с этими проблемами не сталкивался, потому как мне как-то ни когда не приходило в голову ставить БП на функцию main непосредственно, как-то всегда обходиля, в случае острой надобности, первой функциональной строчкой кода внутри. А теперь по теме. Я так понимаю это глюк реализации gdb под винды. А эффект попадания "куда-то" связан с тем что Qt "перегружает" функцию main по своему усмотрению, вот на этой хитрой перегрузке gdb и глючит.

Кстати ява у меня версии 1.5, один из последних апдейтов, серьезных глюков вроде не заметил. На eclipse.org  рекомендуют именно ее, 1.4 вроде старовата.
Записан
Cyrax
Гость
« Ответ #23 : Октябрь 17, 2006, 10:51 »

А как насчёт warning'ов:
Код:

Предупреждения при вызове отладчика несколько видоизменились. mi_cmd_stack_list_frames: No stack вроде бы исчезло, а остальное:
Warning: /Cyrax/P2_Department/Department/debug;E: No such file or directory.
Warning: /Cyrax/P2_Department/Department/.settings;E: No such file or directory.
Warning: /Cyrax/P2_Department/Department;E: No such file or directory.
Warning: E:\Cyrax\_Myself_advancement\P2_Department\Department/E: No such file or directory.

С такой проблемой, похоже, столкнулся DenKor из GCC (Ошибка при работе с gdb)...

Что касается плагина, то дело было именно в JRE. Поставил 1.5.0 - глюков нистало...
Можно было начать обновление именно с JRE, впрочем то, что обновился тотально - тоже неплохо... Выйдет Qt 4.2 Release - тоже обновлюсь.

Крутой
Записан
Вудруф
Гость
« Ответ #24 : Октябрь 17, 2006, 11:21 »

*в шоке* А сейчас Qt 4.2 не релиз?
Записан
Cyrax
Гость
« Ответ #25 : Октябрь 17, 2006, 17:48 »

*в шоке* А сейчас Qt 4.2 не релиз?

Сейчас пока Release Candidate...
Записан
SLiDER
Гость
« Ответ #26 : Октябрь 17, 2006, 19:35 »

Цитата: "Cyrax"
*в шоке* А сейчас Qt 4.2 не релиз?

Сейчас пока Release Candidate...


Ето вы зря так. Веселый Очень даже релиз, неделю уж как.

Цитата: "Cyrax"
А как насчёт warning'ов:


Тоже присутствует, в чем проблема пока не разбирался.
Записан
Cyrax
Гость
« Ответ #27 : Октябрь 17, 2006, 21:32 »

Нет, всё-таки от глюков с плагином полностью не избавился. Остался один, но работать никак не мешает:
В преференсах в QMake Editor при изменении подсветки после каждого apply'а выходит ошибка "Token Error". После сообщения всё нормально применятеся...
Сам плагин глючить так не должен, скорее всего из-зха версий всего Eclipse'ового хозяйства...

Кстати, не могу найти, где ети панельки вверху настраиваются. Мне нужно убрать одну децльную, чтобы все в одну строчку уместились...
Записан
SLiDER
Гость
« Ответ #28 : Октябрь 17, 2006, 22:08 »

Цитата: "Cyrax"
Кстати, не могу найти, где ети панельки вверху настраиваются. Мне нужно убрать одну децльную, чтобы все в одну строчку уместились...


Скорее всего, как-то, через Customize Perspective, но не спрашивайте меня как, я эту задачу в свое время так и не осилил.  Грустный
Записан
Cyrax
Гость
« Ответ #29 : Октябрь 17, 2006, 22:38 »

Да... Досадная недоработка...  Грустный
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 21.