[an error occurred while processing this directive]
|
|
Условие:
Функция main имеет локальную переменную - указатель на массив: int *pntr. Значение этого указателя передается в другую функцию, скажем func1(int *mas), в качестве параметра. Эта функция func1() многократно изменяет содержимое памяти по этому указателю и модифицирует его в процессе этого: *mas++=...;
Упор:
Хочу посмотреть содержимое массива во время пошаговой отладки функции func1().
1. Подвожу мышь к тексту "*mas++=..." и фижу только последнее сохраненное в массиве значение...
2. Пробую добавить переменную "mas" в Watch Window - добавляется, но опять толко последнее значение (по адресу этого указателя)... Делаю Expand as array - получаю содержимое памяти по адресу сохраненного значения (!) а не содержимое памяти по адресу указателя...
3. Открываю окно Memory и в свойствах в строке адреса пробую ввсести mas - вижу дамп памяти начиная с адреса равного содержимому массива, а не сам массив (!). Пробую ввести адрес &mas - не понимает ибо удерживает указатель в регистре (естественно)...
4. Пробую теже действия с переменной pntr - но она в функции func1() не видна и окно Memory ее не понимает тоже ибо это локальная переменная функции main().
Ну и как они (TI софтеры или кто там еще) отыскивать ящейки памяти, в которые производилась запись по принятому в качестве параметра указателю? В VisualDSP в окне Program Control есть переменная PM_address и DM_address, может и в CCS нечто подобное есть?
Или я совсем неправильно действую и можно как-то проще?
Конечно я вывернусь и посмотрю этот адрес в вызывающей функции или в регистрах его найду, но ведь они за ентот продукт с названием CCS деньги берут! Или я не прав?
Может кто подскажет, плиз!
E-mail: info@telesys.ru