|
Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем |
|
|
|
Apr 4 2008, 10:43
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Чтобы не создавать по отдельной ветке на каждый мелкий вопрос, предлагаю обсуждать здесь всякие вопросы, касаемые работы в среде Eclipse. В крайнем случае можно будет при необходимости что-то "отпочковать" в отдельную ветку.
Вопрос первый - как в перспективе Debug расположить окно с переменными, регистрами и т.д. вдоль всего правого края экрана сверху вниз?
Вопрос второй - как заставить его показывать в окне регистров содержимое SPSR (для ARM), а также "затененных" регистров SP и LR (IAR их как-то показывает)?
Вопрос третий - как поставить точку останова на конкретный адрес не перезапуская отладку? Про break *addres в Debug dialog->commands->'Run' commands я знаю, но это требует перезапуска отладки. На строку в исходнике поставить можно, а если мне надо поставить на конкретную команду, причем не дожидаясь пока эта команда попадет в окно дизассемблера?
Вопрос четвертый - как его заставить показать в окне дизассемблера кусок с произвольного адреса или как "пролистать" дизассемблированный текст дальше вверх-вниз? Попутный вопрос - можно ли его заставить в этом окне показывать команды по порядку адресов - мне он часто показывает команды с пропусками или в причудливо перемешанном порядке.
Вопрос пятый - (ARM) можно ли как-то сбросить ядро не перезапуская сеанс отладки? Т.е. легким движением перевести его в ARM, SYSTEM, записать в PC 0 и остановить его на нулевом адресе.
Вопрос шестой - как его заставить запомнить, что в окне memory я хочу всегда видеть шестнадцатиричные цифры и не спрашивать об этом после каждого перезапуска отладки? При добавлении адреса в окно он этого дурацкого вопроса не задает.
Вопрос седьмой - где ставится галочка "открывать преспективу Debug при запуске отладки"? Оно спросило когда-то при создании не то проекта, не то воркспейса, я ответил неправильно а теперь не могу найти где это изменить.
Вопрос восьмой - работа с системой контроля версий. Что из каталога .metadata надо хранить в репозитории, а что создается само при старте среды? Хранить весь каталог не подходит - в нем после каждого старта среды создается куча новых файлов. Не хранить его тоже неудобно. Как я понял, в нем живут настройки Debug. Во всяком случае при переносе только проекта (без workspace) на другую машину настройки отладки пропадают (кто это придумал?? ведь в этих настройках указывается конкретный проект и выходной файл, т.е. эти настройки больше привязаны к конкретному проекту а не к workspace.)
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
 |
Ответов
(270 - 284)
|
May 21 2010, 07:56
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342

|
Использую SAM-ICE и J-Link GDB Server(v4.14b). Инициализация во вложении на картинке. Cannot access memory at address 0x2243220 - решил, сам заплужил, не совпадал зашитый бин-файл и отлаживаемый  После замены на "monitor soft_reset_halt": Выдача в консоль: target remote localhost:2331 0x002015a8 in const5 () monitor flash device = AT91SAM9XE512 Select flash device: AT91SAM9XE512 monitor halt monitor soft_reset_halt Target does not support this command. thbreak main Hardware assisted breakpoint 1 at 0x2010b0: file sam9xe512_test.S, line 11. continue Remote connection closed kill The program is not being run.
Сообщение отредактировал Volldemar - May 21 2010, 08:00
Эскизы прикрепленных изображений
|
|
|
|
|
May 26 2010, 22:45
|
Гуру
     
Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613

|
Цитата(MegaFPGA @ May 18 2010, 13:17)  в окне где должна происходить отладка появляется окно No source available for "main() ". Обнаружил такую же проблему No source available for "main() " при переходе на последнюю версию Yagarto. Сразу не заметил, так как отлаживал подпрограмму, а на них, кроме самого main(), все работает, правда только с драйвером 3,80с (но это и раньше было). В интернете полно сообщений о подобной проблеме без ответов. Видимо какое то наложение. Попробую позже поставить на чистую систему. Подскажите, лежит где нибудь предыдущая версия Yagarto с исправленным багом обработчика прерываний? Может кто выложить сможет? Последняя это: eclipse-cpp-galileo-SR2-win32.zip yagarto-bu-2.20.1_gcc-4.5.0-c-c++_nl-1.18.0_gdb-7.1_eabi_20100501.exe yagarto-tools-20091223-setup.exe
|
|
|
|
|
May 27 2010, 07:37
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(gte @ May 27 2010, 10:28)  Спасибо. Тогда доп вопрос. У них в каждой сборке рекомендованы определенные версии Eclipse и yagarto-tools. Не будет ли глюков, если на старую Eclipse Europa я поставлю более новую сборку и, соответственно, другой версией плагина Zylin? Я Вам дал ссылку на тулчейны, которые никак не связаны со средой проектирования. Могут поменяться настройки типа вместо arm-elf- вставить arm-none-eabi- и т. д. Zylin плагин больше ориентирован на отладку, насколько я помню, но и от него мало что зависит, больше от версии OpenOCD и настройки его конфигов.
|
|
|
|
|
May 27 2010, 20:09
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(gte @ May 27 2010, 22:28)  Так проблема, именно, в отладке. По какой то причине при отладке не находится текст main(), при том, что остальные подпрограммы нормально отлаживаются. Проект перед этим нормально отлаживался в ранней сборке. я к этому по другому отношусь, обычно после компиляции частенько просматриваю че за ассемблер нагенерил компиллер - полезно знаетели, так вот после включения жеских оптимизаций я!! в асме порой этот main ненахожу - работать работает, но оптимизатор код так переколбашивает что концов иногда не видно, про переменные я вообще молчу, рассует по регистрам - отладчик читае DWARF но там тоже не все можно сохранить, шас вот вот новый DWARF4 прикрутят - мож полегче станет. вот както так, не стоит без разбора все валить на gdb и эклипс. у меня другая проблема, с gdb 6.8 регистры парсятся, а с пви 7 почемуто нет. Глядя на MI лог видно что с шестой перед работой с процессом еклипс посылает команду - "список регистров", после чего знает че опрашивать чтоб регистры показать, если gdb 7 то не видно чтоб эклипс пытался узнать че за регистры есть у таргета... во такая беда. мож кто знает кто виноват и че делать?
|
|
|
|
|
May 27 2010, 23:59
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Создаю новый проект С++ с внешним make файлом. Сам make файл: Цитата CXX = g++
INC = -I./inc -I$(ROOTSYS)/include SRC = ./src OBJ = ./obj OBJS = $(OBJ)/Global.o $(OBJ)/TELFile.o $(OBJ)/TELAlign.o $(OBJ)/TELTrack.o $(OBJ)/TELFileRaw.o
ROOTLIBS = `root-config --libs` -lMinuit RUDELIBS = -L/usr/local/lib/ -lrudeconfig
LIBS = $(ROOTLIBS) $(RUDELIBS)
all: $(OBJS) ./TELAna.cxx $(CXX) -ggdb $(INC) $^ $(LIBS) -o tel
$(OBJ)/%.o: $(SRC)/%.cxx $(CXX) -ggdb $(INC) -c $< -o $@ В результате компиляции в консоли Eclipse получаю: Цитата make all g++ -ggdb -I./inc -I/include obj/Global.o obj/TELFile.o obj/TELAlign.o obj/TELTrack.o obj/TELFileRaw.o TELAna.cxx `root-config --libs` -lMinuit -L/usr/local/lib/ -lrudeconfig -o tel /bin/sh: root-config: not found Как результат не видит $(ROOTSYS) и не распознает кавычек в `root-config --libs` Если я запускаю с консоли этот make файл то все проходит на ура. В чем может быть проблема?
|
|
|
|
|
May 28 2010, 06:36
|
Гуру
     
Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613

|
Цитата(bureau @ May 28 2010, 03:59)  Как результат не видит $(ROOTSYS) и не распознает кавычек в `root-config --libs` Если я запускаю с консоли этот make файл то все проходит на ура. В чем может быть проблема? У меня после установки (W2K) приходилось менять sh.exe и, кажется, make.exe, echo.exe. Цитата(klen @ May 28 2010, 00:09)  я к этому по другому отношусь, обычно после компиляции частенько просматриваю че за ассемблер нагенерил компиллер - полезно знаетели, так вот после включения жеских оптимизаций я!! в асме порой этот main ненахожу -
вот както так, не стоит без разбора все валить на gdb и эклипс. Оптимизации нет, проект работает в железе и отлаживался в другой сборке, правился make касательно изменившегося названия компилятора.
|
|
|
|
|
May 28 2010, 09:14
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(gte @ May 28 2010, 09:36)  У меня после установки (W2K) приходилось менять sh.exe и, кажется, make.exe, echo.exe. Можно поподробней? У меня Linux Ubuntu. Add: Странно, но проблема решилась сама когда я запустил eclipse с командной строки. До этого запускал его через кнопку запуска. Такое впечатление что eclipse запускалась не под тем ЮЗЕРом под которым нахожусь в системе...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|