Отладка счетчиков ссылок COM - PullRequest
1 голос
/ 29 ноября 2011

В проекте я говорю с объектом на .EXE-сервере (объект выполняет для меня дорогие запросы, которые должны быть кэшированы), и я, похоже, неправильно подсчитал количество ссылок, что делает процесс сервера свободнымобъект, на который он все еще ссылается, что приводит к сбою хост-процесса любопытными и интересными способами, которые включают потерю данных и отправку отчета об ошибке поставщику.

Есть ли способ попросить COM поднять какое-то условиечто можно обнаружить в отладчике, если каким-либо образом используется прокси-объект, чей счетчик упал до нуля?

1 Ответ

0 голосов
/ 29 ноября 2011

Маловероятно, что это возможно при использовании необработанных интерфейсов - счетчик ссылок поддерживается COM-сервером, и то, как он реализуется, зависит от сервера - реализация находится внутри кода сервера, поэтому, если у вас нет исходного кода и вы можете отлаживать сервер, у вас нет возможности добраться до него.

Однако, вероятно, ваша проблема вызвана ручным вызовом AddRef и Release. Если это так, вы можете использовать решение RAII / Smart Указатель. ATL предоставляет такую ​​возможность, но если по какой-либо причине вы не можете ее использовать, достаточно легко создать свою собственную. После этого вы можете не только создавать или использовать предоставленные средства отладки для отслеживания подсчета ссылок, но с гораздо меньшей вероятностью вы ошибетесь, во-первых.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...