C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Address breakpoint, вопрос., Нужно отследить обращение к свойству.
Aractan
Отправлено: 10.08.2005, 12:15


Ученик-кочегар

Группа: Участник
Сообщений: 22



Вопрос такой: я хочу отследить когда происходит обрашение к какому либо свойству компонента, т.е. например:
TButton* Button;
Я хочу отследить где в программе происходит обращение к свойству Enabled ( Button->Enabled )
Георгий
Отправлено: 10.08.2005, 22:55


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



мне кажется, что самым простым будет пробежаться по тексту и обложить печатью в файл все места где встречается Enable
Aractan
Отправлено: 11.08.2005, 05:30


Ученик-кочегар

Группа: Участник
Сообщений: 22



Там как-то можно такие брейк поинты ставить, вот тольео не помню как.
olegenty
Отправлено: 11.08.2005, 07:14


Ветеран

Группа: Модератор
Сообщений: 2412



мышью рядом со строкой покликай, глядишь, и поинт по фамилии Брейк появится smile.gif
Gedeon
Отправлено: 11.08.2005, 09:33


Ветеран

Группа: Модератор
Сообщений: 1742



Читаем про:
Data Breakpoint. Срабатывание происходит, когда где-то в программе выполняется модификация каких — либо данных. Для этого в параметрах точки останова указывается адрес, с которого начинаются данные и длина данных (в байтах), которые эта точка останова “контролирует”.

Run -> Add BreakPoint -> Data BreakPoint ...
Aractan
Отправлено: 11.08.2005, 15:47


Ученик-кочегар

Группа: Участник
Сообщений: 22



я хочу не искать адрес по которому переменная расопологается, а имя ее сказть и все а имен Data BreakPoint не понимает, только адресс sad.gif.
Я как понимаю надо найти по какому адресу переменная, а потом его указать но это как-то долго...
Георгий
Отправлено: 11.08.2005, 22:01


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



значит так:
втыкаешь в прогу брейк на том месте, где хоть один enable у нужного объекта выполняется. лезешь в отладчике (в asm режиме) в тело метода enable и ставишь там бряку.
запускаешь — теперь при каждом обращении к методу enable будет срабатывать эта asm`овская бряка, а вот что бы узнать откуда же обратились придётся попотеть — разворачивать стек вызовов, но когда развёрнёшь увидишь то место откуда вызвали enable.

по моему обложить печатями проще biggrin.gif
Aractan
Отправлено: 12.08.2005, 14:33


Ученик-кочегар

Группа: Участник
Сообщений: 22



понял. спасибо!

Вернуться в Вопросы программирования в C++Builder