LCD 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 (изменено) · Жалоба Есть IAR 4.11 for MSP430, вот наиболее важный код программы: //files.h: ... typedef struct _DIRCACHE { unsigned short filenumber; char name[13]; }DIRCACHE; ... //files.cpp: #include "files.h" ... void func() { ... DIRCACHE dircache[32]; ... } При вызове func() отладчик IAR сообщает о переполнении стека (см. аттач), но программа продолжает нормально работать. Из-за чего это происходит и как это устранить? И что такое <pad>? Изменено 14 ноября, 2008 пользователем LCD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба А у вас есть в наличии 512 байт стека для локальной переменной? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LCD 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Да, я стек сделал 4 кб. Но ИАР пишет, что ему надо 170 кб! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LCD 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Скриншот был сделан, когда char name[] был не 13, а 16 байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба При заходе в функцию, когда отладчик покажет сообщение о переполнение стека посмотрите что находится в SP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LCD 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 (изменено) · Жалоба Нет, о переполнении он не сообщает, но в окне стека показывает какой-то бред. Изменено 14 ноября, 2008 пользователем LCD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 120 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба Нет, о переполнении он не сообщает, но в окне стека показывает какой-то бред.А вы случайно ОС не используете в своем проекте? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба Нет, о переполнении он не сообщает... При вызове func() отладчик IAR ообщает о переполнении стека (см. аттач)В бы уже определились... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LCD 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба А вы случайно ОС не используете в своем проекте? ОС - это RTOS или подобное? Нет, не использую. В бы уже определились... Нет, не переполняется. Но при остановке на брейкпоинте отладчик долго "думает", наверное, считывает то, что считает содержимым стека. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба Нет, не переполняется. Но при остановке на брейкпоинте отладчик долго "думает", наверное, считывает то, что считает содержимым стека. Возможность просмотра стека со списком переменных появилась толко в 4.11B (в 4.10A это не работатет - просто выводится содержимое стека). Это глюк отладчика, точнее плугина "Stack". Покуда (имхо) этой версией мало кто пользуется, то данных проблем не испытывали. Если нужно посмотреть локальные переменные пользуйтесь View/Locals. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LCD 0 18 ноября, 2008 Опубликовано 18 ноября, 2008 · Жалоба Спасибо, но у меня остались сомнения, что это не глюк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diper 0 18 ноября, 2008 Опубликовано 18 ноября, 2008 · Жалоба Спасибо, но у меня остались сомнения, что это не глюк. Так расскажите... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться