![]() |
|
![]() ![]() ![]() |
|
itan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.7.2006 Репутация: нет Всего: нет |
Работаю с Visual C++ 2003
Недавно узнал, что в его поставку входит файл autoexp.dat для тонкой настройки отладчика (находится в каталоге %Visual Studio Folder%\Common\MSDev98\Bin). Редактируя этот файл можно добится отображения в окне Debug нестандартных (собственных) структур и классов. Так вот, вопрос к тем кто с этим уже сталкивался и использует - почему следующий код у меня не работает: предположим есть класс:
Редактируем секцию [AutoExpand] файла autoexp.dat следующим образом: Base=<m_caption, s> Все отлично работает и при отладке мы видим, что вместо знаков вопроса отображается значеие m_caption. Но, если мне надо узнать какое значение в данный момент возвращает функция caption(), то Base=<caption(), s> почему - то уже не прокатывает и в отладке я вижу ???? В чем тут дело??? |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
AutoExp.dat может отображать только фактические поля. Вычислять ничего не умеет (и вызывать функции - тоже). Вроде можно нарисовать и подключить свой плаг-ин, который будет делать то, что тебе нужно. В MSDN это только упоминаеется, без подробностей, но есть пример. Если очень хочется, можно разобраться.
-------------------- ... |
|||
|
||||
itan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.7.2006 Репутация: нет Всего: нет |
Понятно, жаль... А что нибудь для контроля вычисляемых полей посоветуете?
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, я просто пишу в Watch выражения... Например, если надо посмотреть размер вектора A: A._Mylast-A._Myfirst; первые 10 элементов вектора: A._Myfirst,10. (Это из реализации stl, которая идет с VC2003).
Если никак не обойтись без просмотра глубоко запрятанных полей, к которым никак не добраться (что бывает, слава богу, редко) - использую TRACE и (совсем в крайнем случае) промежуточные переменные. Иногда бывает полезно просматривать память (Memory) или нагло преобразовывать тип в Watch (если точно знаешь, какие там данные). -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |