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

 
 
> И снова Wiggler & IAR., Не понятно, почему не работают функции сравнения
bolmoe
сообщение Feb 16 2007, 12:06
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 5-04-06
Из: Рязань
Пользователь №: 15 830



smile3046.gif
Никто не сталкивался с тем, что при отладке в IAR функции memcmp(), strcmp() не сравнивают, хотя физически видно в памяти, что символы совпадают. ???
Кристалл LPC2148, компилер IAR 4.40А
Еще замечено, что при описании струтуры
к пр. typedef struct __SSS{....}sss;
main()
{
sss s;
sss *p;

p=&s;
}

в 'р' не передается адрес струтуры 's', приходится работать через р=malloc() || р=calloc(), хотя опять же видно, что под 's' память выделяется ????

Возможно, что требуются какие то настройки в дебаггере?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Feb 16 2007, 13:27
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Как это memcmp не сравнивает? В чём это выражается? Может быть, при сравнении структур мешают padding байты? Пробовали пройти по шагам по дизассемблеру?
Ну а отсутствие присваивания напоминает трюки оптимизатора: он может довольно сильно покорёжить код, усложняя отладку. Попробуйте поставить уровень оптимизации на минимум. Или вставьте нетривиальную обработку этой самой переменной p, чтобы оптимизатор её не выкинул.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 16 2007, 14:12
Сообщение #3


Гуру
******

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



Цитата(scifi @ Feb 16 2007, 12:27) *
Или вставьте нетривиальную обработку этой самой переменной p, чтобы оптимизатор её не выкинул.
Достаточно завести глобальную переменную такого же типа как и p и присвоить p ей.


--------------------
На любой вопрос даю любой ответ
"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



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 03:06
Рейтинг@Mail.ru


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