Перейти к содержанию
    

Подскажите пожалуйста, как установить точки останова в оболочке Eclipse?

 

Использую оболочку Eclipse (Helios Release Build id: 20100617-1415). Компилятор gcc version 4.4.1. и отладчик gdb (GDB) 7.0.

Пытаюсь отлаживать ядро Linux. При попытке поставить точку останова в некоторых файлах исходников ядра, вместо нее появляется желтый треугольник с восклицательным знаком? В чем проблема?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сейчас попробовал - ставятся точки останова в любом месте, никаких проблем (eclipse indigo).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сейчас попробовал - ставятся точки останова в любом месте, никаких проблем (eclipse indigo).

А если в например в файле ./linux/net/compat.c?

 

При этом gdb trace выводит:

650,138 (gdb)

650,138 1817-break-insert /usr/src/linux-2.6.31.14/net/compat.c:36

650,502 1817^error,msg="No source file named /usr/src/linux-2.6.31.14/net/compat.c."

 

При удачной установки:

208,155 1823-break-insert /usr/src/linux-2.6.31.14/net/socket.c:269

208,334 1823^done,bkpt={number="11",type="breakpoint",disp="keep",enabled="y",addr="0xc0526138",func\

="init_once",file="net/socket.c",fullname="/usr/src/linux-2.6.31.14/net/socket.c",line="269",times="\

0",original-location="/usr/src/linux-2.6.31.14/net/socket.c:269"}

Изменено пользователем oliva_av

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:blush: простите, я не имел ввиду linux, мне до вас далеко. Копаюсь чисто в своих embedded проектах.

Но быстрое гугление говорит о том, что проблема в CDT7 при установке брейкпоинтов в файлах библиотек, слинкованных к проекту. Как вариант попробуйте предлагают брейкпоинты переставлять заново после запуска GDB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сегодня из рассылки по OpenOCD удалось выловить ссылки на еще две сборки gсc-arm. Не припомню, чтобы они упоминалось на этом форуме. Обе сборки под Win и Lin.

 

As part of its ongoing commitment to maintaining and enhancing GCC compiler support for the ARM architecture, ARM is maintaining a GCC toolchain source branch targeted at Embedded ARM Processors, namely Cortex-R/Cortex-M processor families. As part of this, ARM will, at regular intervals, release binaries pre-built and tested from the ARM embedded branch. The improvements will be freely available for integration into 3rd party toolchains, and for direct download by end-users.

GNU Tools for ARM Embedded Processors

Там также есть подробная инструкция "как собрать атомную бомбу gcc для винды или линуха под убунтой самостоятельно".

 

 

The Toolchain Working Group now provides pre-built binary versions of Linaro GCC, Linaro GDB and binutils. These binary versions work under generic Linux and Windows and can be used by an end developer to cross-compile programs for either a Linaro Evaluation Build or a bare-metal target.

Linaro (искать в конце страницы)

Изменено пользователем IgorKossak
Первый линк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, бум посмотреть.

В первой ссылке попутаны местами название и линк.

Изменено пользователем IgorKossak
Поправил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фактически, ссылка в конце страницы Linaro ссылается на GNU Tools for ARM Embedded Processors, но там много и другой полезной информации.

Порадовало наличие библиотек с плавучкой под cortex-m4f, как abi-soft, так и hard (в отличие от Sourcery Code Bench Lite).

Хотелось бы ещё проверить насколько тяжелы у них реализации функций форматированного вывода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фактически, ссылка в конце страницы Linaro ссылается на GNU Tools for ARM Embedded Processors,
А предыдущая - на их собственную сборку. Сам пока не смотрел.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал "GNU Tools for ARM Embedded Processors", сравнил с последним "свежаком" от klen-а. Вот что вышло на небольшом проекте (Cortex-M3):

         text    data     bss
kgp     34436      32   38352
ARM     40836      32   38352

Это под линуксом. Работоспособность результата пока не проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как в eclipse с автодополнением.

Нажимаю Ctrl+Space и ... никакий ассоциаций:

 

post-17322-1329915004_thumb.jpg

 

Как-то настраивать надо?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте поставить перед ef "::":

::ef.

Иногда эклипсу немножко переклинивает, в чём дело - не понял. В других проектах всё нормально, отлично автодополняет. А вот именно в примерах к scmRTOS - нет. Причём и в них местами работает - попробуйте в main().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте поставить перед ef "::":

::ef.

Помогло. Но этож две лишних буквы писать.

 

местами работает - попробуйте в main().

 

Да - всё работает.

 

Попробуйте поставить перед ef "::":

::ef.

В других проектах всё нормально, отлично автодополняет. А вот именно в примерах к scmRTOS - нет.

Хм...тенденция однако.

Редактирую обычно проекты в Studio: в 99% всё устраивает.

Создал проект с scmRTOS - та же фигня: часто не те блоки #if...#endif становятся неактивными/неактивными, автодополнение как правило работает (возможно благодаря VisualAssist, не знаю справился бы IntelleSence), ну и целом создалось впечатление что с проектом что-то нетак.

Думал, что недоконфигурил проект для студии, но теперь получается что Eclipse тоже scmRTOS не переваривает.

Возможно все глюки вызваны широким использованием шаблонов и современные IDE не справляются.

Надо бы найти время и попробывать создать проект с scmRTOS в AVRStudio 5 - может она справится?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

получается что Eclipse тоже scmRTOS не переваривает.

У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS. Видимо просто звёзды не так расположились:)

У эклипсы самый навороченный парсер, полноценный парсер си/си++, практически компилятор. А в таких сложных системах практически невозможно отловить все баги.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS.

Обнадёживает.

 

Видимо просто звёзды не так расположились:)

Звёзды наверное на месте.

Как назвали так работает - затмение солнца.

Только как его расчитать.

 

 

У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS. Видимо просто звёзды не так расположились:)

У эклипсы самый навороченный парсер, полноценный парсер си/си++, практически компилятор. А в таких сложных системах практически невозможно отловить все баги.

Да, не поймать.

 

Сделал так:

void Process2()
{
    for(;;)
    {
        OS::sleep(1000);
        LedOn();
        OS::sleep(10);
        LedOff();
    }
}
namespace OS
{

template <>
    OS_PROCESS void TProc2::exec()
    {
        Process2();
    }
}

Автозавершение появилось. Но по шагам не ходит в отладчике. И корректно ли это?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...