Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.10.2021, 15:30
|
|||
---|---|---|---|
|
|||
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
Всем доброго дня, есть интерфейсный класс: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
при его уничтожении в BeforeDestruction.inherited в System в процедуре Код: pascal 1. 2. 3. 4. 5.
попадаю на Error т.к. RefCount = 1 как проще выяснить на какой обьект счётчик ещё не сброшен если поставить breakpoint в этой процедуре? пытаюсь понять какой интерфейсный обьект остался не уничтожен. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2021, 15:55
|
|||
---|---|---|---|
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
hlopotun, бряк на увеличении RefCount не поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2021, 16:11
|
|||
---|---|---|---|
|
|||
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
wadman hlopotun, бряк на увеличении RefCount не поможет? попробую. Почемуто бряк перечёркивает когда прога стартует. Там вроде есть в среде где то настройка для компиляции и отладки системных либ и классов (дабы отладочную инфу для них включало). Сейчас поишу. Бряк ставлю тут: Код: pascal 1. 2. 3. 4.
может по стеку удастся понять кто создаётся. Хотя тут заколебёшся считать. Тут обьектов куча.... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2021, 16:15
|
|||
---|---|---|---|
|
|||
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
hlopotunкак проще выяснить на какой обьект счётчик ещё не сброшен если поставить breakpoint в этой процедуре? self->ClassName. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2021, 16:23
|
|||
---|---|---|---|
|
|||
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
hlopotun Бряк ставлю тут: Это не тот метод. Смотри TInterfacedObject._AddRef/._Release; ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.10.2021, 16:30
|
|||
---|---|---|---|
В каком месте лучше перехватить название интерфейсного обьекта |
|||
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Поставить бряк на оба метода, в свойствах обоих бряков поставить Break = False, Log Call Stack = True. (Опционально можно ещё Log Message). Запустить программу и из окна View / Debug Windows / Events скопировать вывод в текстовый редактор. Пройтись по нему и удалить "парные" вызовы. Что останется - это и есть тот самый искомый вызов. Предварительно хорошо бы щёлкнуть правой по окну Events, выбрать Properties и там снять галки со всего, кроме Breakpoint messages. Перезапустить программу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=58&mobile=1&tid=2036922]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 291ms |
total: | 446ms |
0 / 0 |