CallEvent :: isCalled () альтернатива, если функция вызывается указателем - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь написать средство проверки для обнаружения потенциальных утечек дескриптора (это в Windows: то есть дескриптор должен быть закрыт на CloseHandle).

Итак, checkPreCall() проверяет, вызван ли CloseHandle.

Call.isCalled() прекрасно работает, за исключением одного случая, когда CloseHandle вызывается указателем. Это происходит из-за использования класса шаблона, который принимает указатель закрывающей функции в качестве параметра шаблона (полезно для закрытия различных типов дескрипторов соответствующими функциями: FindClose, CloseHandle и т. Д.).

Call.dump() печатает «& CloseHandle (this-> m_h)» в этом случае, поэтому clang правильно понимает, что это указатель и что это указатель CloseHandle. Но как в коде я мог «извлечь» идентификатор функции, вызываемой указателем?

...