summaryrefslogtreecommitdiff
path: root/plugins/rtti/plugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/rtti/plugin.cpp')
-rw-r--r--plugins/rtti/plugin.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/rtti/plugin.cpp b/plugins/rtti/plugin.cpp
index 4ec833be..52501efe 100644
--- a/plugins/rtti/plugin.cpp
+++ b/plugins/rtti/plugin.cpp
@@ -31,9 +31,10 @@ void RTTIAnalysis(const Ref<AnalysisContext>& analysisContext)
else
{
// TODO: We currently only want to check for itanium rtti on non windows platforms
+ // TODO: This needs to always run.
auto processor = RTTI::Itanium::ItaniumRTTIProcessor(view);
processor.ProcessRTTI();
- // view->StoreMetadata(VIEW_METADATA_RTTI, processor.SerializedMetadata(), true);
+ view->StoreMetadata(VIEW_METADATA_RTTI, processor.SerializedMetadata(), true);
}
}
@@ -46,9 +47,12 @@ void VFTAnalysis(const Ref<AnalysisContext>& analysisContext)
// TODO: Run for both itanium and ms (depending on platform)
auto processor = RTTI::Microsoft::MicrosoftRTTIProcessor(view);
processor.ProcessVFT();
+ auto itaniumProcessor = RTTI::Itanium::ItaniumRTTIProcessor(view);
+ itaniumProcessor.ProcessVTT();
view->StoreMetadata(VIEW_METADATA_RTTI, processor.SerializedMetadata(), true);
}
+
void MakeItaniumRTTIHere(Ref<BinaryView> view, uint64_t addr)
{
auto processor = RTTI::Itanium::ItaniumRTTIProcessor(view);
@@ -56,7 +60,6 @@ void MakeItaniumRTTIHere(Ref<BinaryView> view, uint64_t addr)
}
-
extern "C" {
BN_DECLARE_CORE_ABI_VERSION