delphi – 如何获取实例已经泄露内存的定制结构的名称?
发布时间:2020-12-15 10:17:20 所属栏目:大数据 来源:网络整理
导读:我正在处理一个解析器,它将通过一个FASTMM4内存泄漏报告,并将所有相关数据存储在定制的结构/类中。我使用 VirtualTreeView来显示每个具有泄漏实例的类作为树中的一个节点。 The tree – 请注意,第一个节点说不明。这是因为FASTMM调用一个方法AClass来确定
我正在处理一个解析器,它将通过一个FASTMM4内存泄漏报告,并将所有相关数据存储在定制的结构/类中。我使用
VirtualTreeView来显示每个具有泄漏实例的类作为树中的一个节点。
The tree –
请注意,第一个节点说不明。这是因为FASTMM调用一个方法AClass来确定天气是否是一个类。当它找到自定义结构时,它将它们标记为未知,这不会使我的报告分析器非常有效,因为大多数内存泄漏来自这些自定义结构和记录。 问题:有没有办法使用DebugInfo或者像JVCL这样的其他工具来收集那些调试符号,并将它们的内存地址与memory-leak-report-file中的内存地址进行比较?我希望我的树停止显示UNKNOWN并显示这些自定义结构的名称。 解决方法
也许扩展RTTI(Delphi 2010一个较新的)可以用来创建一个类型字典,它只保存typeinfo指针和所有“非类”类型的名称。
可以使用条件定义来启用此功能,以避免其在正常操作中的开销。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |