clang - 如果函数被指针调用,则 CallEvent::isCalled() 替代
问题描述
我正在尝试编写一个检查器来捕获潜在的句柄泄漏(它在 Windows 上:即句柄应该由 关闭CloseHandle
)。
所以checkPreCall()
检查是否CloseHandle
被调用。
Call.isCalled()
效果很好,除了一种情况下CloseHandle
被指针调用。这是因为使用了一个模板类,该类将关闭函数的指针作为模板参数(用于通过适当的函数关闭不同类型的句柄:FindClose
等CloseHandle
)。
Call.dump()
在这种情况下打印“&CloseHandle(this->m_h)”,因此 clang 正确理解 this 是一个指针并且 this 是CloseHandle
. 但是如何在代码中“提取”指针调用的函数的标识符?
解决方案
推荐阅读
- html - 如何在 Jaspersoft Studio 中呈现 HTML 表格
- cloud - Azure AD:SaaS-web 应用程序的单租户或多租户
- google-apps-script - 如何使用 Google Apps 脚本过滤列中的数据?
- javascript - 如何在导航时修复 ReactJS 中的两个不同组件,我能够修复一个,但另一个页面正在渲染两个固定组件
- spring - 有没有办法使用 SpringBoot 在两个 EAR 之间同步通信?
- amazon-web-services - 如何在 AWS EC2 上打开端口连接 https
- c# - 如何修复 SqlConnectionString.Open() 异常,登录失败
- java - Apache Camel - exchange.getIn().getBody(ZipFile.class) 返回 NULL 但 exchange.getOut().setBody(zipfile) 工作正常
- javascript - 我可以将 React useEffect 用于异步 POST 提交请求吗?
- android - 使用 Espresso 框架在 tabText 上执行单击或在 viewPager 上执行滑动返回 NoMatchingViewException