Я пытаюсь написать средство проверки для обнаружения потенциальных утечек дескриптора (это в Windows: то есть дескриптор должен быть закрыт на CloseHandle
).
Итак, checkPreCall()
проверяет, вызван ли CloseHandle
.
Call.isCalled()
прекрасно работает, за исключением одного случая, когда CloseHandle
вызывается указателем. Это происходит из-за использования класса шаблона, который принимает указатель закрывающей функции в качестве параметра шаблона (полезно для закрытия различных типов дескрипторов соответствующими функциями: FindClose
, CloseHandle
и т. Д.).
Call.dump()
печатает «& CloseHandle (this-> m_h)» в этом случае, поэтому clang правильно понимает, что это указатель и что это указатель CloseHandle
. Но как в коде я мог «извлечь» идентификатор функции, вызываемой указателем?