реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Indigo + Yagarto + J-Link, после IAR EWARM
ivainc1789
сообщение Nov 5 2012, 09:58
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(_Артём_ @ Nov 5 2012, 03:23) *
Нет особого смsсла использовать для отладки уровень оптимизации, отличный от release. За исключением случая, когда нужно убедится что код в принципе может быть работоспособным.
Откуда такие сведения? Т.е. вам приходилось отлаживать код release? И все работало?

Цитата
А нельзя ли задействовать jlink-ий сервер (который в трее висит)? На вкладке Breakpoint databreakpoint упоминаются. Или невозможно?

Сейчас слегка изучил возможности отладки из под CDT 8.0 :
1. Точки останова только на код с возможностью "наложить" на них действия: выдать звук, продолжить программу через заданное время в сек., выдать лог (текстовый и выполнить некоторый набор инструкций), выполнить некую внеш утилиту. Мне непонятны две вещи: если в качестве лога предлагается выполнить набор инструкций (установлена галка " As expressions", то в каком формате нужно писать этот набор? Это кусок Си кода или еще как? В хелпе не нашел. Попробовал что-то типа " X = 1; " - вроде работает... Далее, при каких таких условиях потребовалось бы выполнить некую утилиту по достижении точки останова? Если кто пользовал, можно ли пример? И наконец, жаль, но вроде как "продолжить программу через несколько сек." - это именно притормозить программу на это время. Я сначала обрадовался, что нашел аналог LiveWatch из IAR, но в Иаре сделано так, что прога не останавливается - просто каждую секунду запрашиваются текущие значения переменных из окна LiveWatch.
2. Можно сделать точку останова типа watchpoint на переменную из ram. По факту чтения или записи возможны все действия, что и в п.1. Это в том числе и то, что предлагает и J-Link'овский GDB сервер.

В целом возможности отладки неплохие, тем более что судя по хелпу из Эклипса эти CDT tools активно развиваются и уже сейчас можно слегка расширить эти возможности установкой доп плагинов.
Знакомясь с Эклипсой, я скомпилировал тестовый проект в нем как через Yagarto/GCC так и через IAR plugin. Думаю, на текущий момент это наиболее оптимальное сочетание средств: с одной стороны используются шикарные возможности редактора Эклипса, с другой есть гибкость в оперативной смене компиляторов GCC / ICC. Не знаю как дальше это пойдет, т. к. Juno загружается на моем весьма недревнем ноуте раза в 3 дольше Indigo...
Только тяжелый вопрос с изучением make файлов как всегда остался пока неразрешенным... )))
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 5 2012, 10:25
Сообщение #32


Гуру
******

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



QUOTE (ivainc1789 @ Nov 5 2012, 12:58) *
Откуда такие сведения? Т.е. вам приходилось отлаживать код release? И все работало?
Только так и отлаживаюсь и все работает. А какой смысл сначала отлаживать другой код, а потом еще отлавливать ошибки, которые вылезут при включении оптимизатора (забытые volatile, гонки и т.д)? Да, есть тонкости - отлаживаться надо с включенным окном дизассемблера, потому что не каждому С-выражению соответствует какой-то код. Да, иногда нельзя поставить точку останова, если этот участок исходника был соптимизирован. Но можно найти нужное место и вставить точку останова в окне дизассемблера.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 5 2012, 12:59
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ivainc1789 @ Nov 5 2012, 11:58) *
Т.е. вам приходилось отлаживать код release? И все работало?

Что может не работать?
Работало, может не всегда сразу так как хотелось бы, но на то она и отладка, чтобы ошибки устранить. Зашивать-то всё равно Release надо.
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Nov 5 2012, 15:43
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(Сергей Борщ @ Nov 5 2012, 14:25) *
не каждому С-выражению соответствует какой-то код. Да, иногда нельзя поставить точку останова, если этот участок исходника был соптимизирован. Но можно найти нужное место и вставить точку останова в окне дизассемблера.
И еще у меня часто бывало невозможно посмотреть значения переменных - печатались какие-то левые значения. Это было в Иаре. Вот тогда я и решил, что дебаг - все же для отладки, а релиз как бы должен гарантированно собираться без ошибок. Конечно, логично зашивать в МК то, что отлажено. Надо будет потестировать GDB и IAR плагин в этом смысле...
Начал с Иаровского плагина. На моем тестовом проекте ПОКА нормально дебажится релиз...
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016