Поиск:

Ответ в темуСоздание новой темы Создание опроса
> autoexp.dat 
V
    Опции темы
itan
Дата 3.7.2006, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Работаю с Visual C++ 2003
Недавно узнал, что в его поставку входит файл autoexp.dat для тонкой настройки отладчика (находится в каталоге %Visual Studio Folder%\Common\MSDev98\Bin). Редактируя этот файл можно добится отображения в окне Debug нестандартных (собственных) структур и классов.

Так вот, вопрос к тем кто с этим уже сталкивался и использует - почему следующий код у меня не работает:
предположим есть класс:
Код

class Base
{
...
  public:
   const char* m_caption;
   const char* caption() { ... };
...
}


Редактируем секцию [AutoExpand] файла autoexp.dat следующим образом:
Base=<m_caption, s>
Все отлично работает и при отладке мы видим, что вместо знаков вопроса отображается значеие m_caption.

Но, если мне надо узнать какое значение в данный момент возвращает функция caption(), то
Base=<caption(), s> почему - то уже не прокатывает и  в отладке я вижу ????

В чем тут дело???






PM MAIL   Вверх
Earnest
Дата 3.7.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



AutoExp.dat может отображать только фактические поля. Вычислять ничего не умеет (и вызывать функции - тоже). Вроде можно нарисовать и подключить свой плаг-ин, который будет делать то, что тебе нужно. В MSDN это только упоминаеется, без подробностей, но есть пример. Если очень хочется, можно разобраться. 


--------------------
...
PM   Вверх
itan
Дата 3.7.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.7.2006

Репутация: нет
Всего: нет



Понятно, жаль... А что нибудь для контроля вычисляемых полей посоветуете? 
PM MAIL   Вверх
Earnest
Дата 3.7.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ну, я просто пишу в Watch выражения... Например, если надо посмотреть размер вектора A: A._Mylast-A._Myfirst; первые 10 элементов вектора: A._Myfirst,10. (Это из реализации stl, которая идет с VC2003). 
Если никак не обойтись без просмотра глубоко запрятанных полей, к которым никак не добраться (что бывает, слава богу, редко) - использую TRACE и (совсем в крайнем случае) промежуточные переменные. Иногда бывает полезно просматривать память (Memory) или нагло преобразовывать тип в Watch (если точно знаешь, какие там данные). 


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.