|
Пошаговая отладка LPC ARM + J-Link |
|
|
|
Mar 17 2011, 21:28
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 14-12-08
Пользователь №: 42 458

|
Здравствуйте, может кто то из форумчан сталкивался с подобными проблемами. Я не так давно начал использовать Eclipse + GNU тулчейны для программирования ARM LPC2468. Для отладки начал использовать J-Link дебагер. Поискав в инете нашел описания как правильно настраивать и т.д. Для дебага использую yagarto gdb. Кристал нормально прошивается и работает, с брекпоинтамы вроде бы тоже все в норме, но на мой взгляд, как то странно ведет себя пошаговая отладка. В С листинге операции как то не по порядке исполняются, например, сначала подсвечивается строка 12, потом вместо следующего оператора со строки 13 переходит на 5, потом на 13. И есть сомнения по поводу корректности отображаемых текущих значений. В окне локальных переменных они меняются, даже если код их не изменяет. Код исполняется правильно, все работает, но вот только с пошаговой отладкой как то не получилось до конца разобраться. Может ли иметь значения, что для компиляции я использую другой тулчейн, а для отладки yagarto ? Пошаговая отладка это конечно не так критично для меня, но все же таки очень бы хотелось разобраться и услышать об опыте использования подобной комбинации J-Link + GNU от гуру, какие проблемы и чего стоить опасаться.
|
|
|
|
|
 |
Ответов
|
Mar 17 2011, 21:40
|

Участник

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348

|
Цитата В С листинге операции как то не по порядке исполняются<...> И есть сомнения по поводу корректности отображаемых текущих значений. Для удобства символьной отладки желательно выключить оптимизацию. Передайте компилятору ключ -O0.
Сообщение отредактировал Spym - Mar 17 2011, 21:41
|
|
|
|
|
Mar 17 2011, 22:34
|

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

|
QUOTE (Spym @ Mar 17 2011, 23:40)  Передайте компилятору ключ -O0. И будете отлаживать совершенно другой код. Откройте окно дизассемблера, попробуйте понять, возможно оптимизатор использует один кусок кода в этих строках совместно. Возможно он поменял местами некоторые операции для уменьшения размера или увеличения скорости полученного кода. Ну и порой он оптимизирует настолько, что части С-кода просто изчезают. А иногда, увы, бывает, что он ошибается в отладочной информации и показывает совсем не то место исходника...
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 17 2011, 23:01
|

Участник

Группа: Участник
Сообщений: 71
Регистрация: 24-02-08
Из: Москва
Пользователь №: 35 348

|
Цитата(Сергей Борщ @ Mar 18 2011, 01:34)  <...>оптимизатор использует один кусок кода в этих строках совместно. Возможно он поменял местами некоторые операции для уменьшения размера или увеличения скорости полученного кода. Ну и порой<...> О чем и речь. Оптимизация препятствует удобству символьной отладки, Вы ведь не будете с этим спорить.
|
|
|
|
|
Mar 18 2011, 10:06
|

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

|
QUOTE (Spym @ Mar 18 2011, 01:01)  Оптимизация препятствует удобству символьной отладки, Вы ведь не будете с этим спорить. Не буду. Но смысл в удобстве отладки другого кода? Это как искать ключ не там где потерял, а под фонарем, потому что там светлее. Вы не выловите ни ошибок из-за пропущенных volatile, ни ошибок связанных со скоростью выполнения отдельных участков кода, ни ошибок переполнения стека.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
adventurer Пошаговая отладка LPC ARM + J-Link Mar 17 2011, 21:28  adventurer Цитата(Сергей Борщ @ Mar 18 2011, 00:34) ... Mar 18 2011, 11:02   Сергей Борщ QUOTE (adventurer @ Mar 18 2011, 13:02) Я... Mar 18 2011, 22:10    adventurer Цитата(Сергей Борщ @ Mar 19 2011, 00:10) ... Mar 20 2011, 13:58     Сергей Борщ QUOTE (adventurer @ Mar 20 2011, 15:58) э... Mar 20 2011, 14:32 GetSmart Но всё-таки, если есть ошибка (большинство из них)... Mar 18 2011, 10:17 adventurer Да, оптимизатор действительно выключал, только что... Mar 20 2011, 15:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|