From 03aa2399a0bf0a0078c6c4fd9447ad504a1282c8 Mon Sep 17 00:00:00 2001 From: lethosor Date: Thu, 23 Jul 2015 23:25:01 -0400 Subject: [PATCH] Add environment variables to skip global and vtable initialization --- library/VersionInfoFactory.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/VersionInfoFactory.cpp b/library/VersionInfoFactory.cpp index 1b66b583a..2336b8d6c 100644 --- a/library/VersionInfoFactory.cpp +++ b/library/VersionInfoFactory.cpp @@ -81,6 +81,8 @@ VersionInfo * VersionInfoFactory::getVersionInfoByPETimestamp(uint32_t timestamp void VersionInfoFactory::ParseVersion (TiXmlElement* entry, VersionInfo* mem) { + bool no_vtables = getenv("DFHACK_NO_VTABLES"); + bool no_globals = getenv("DFHACK_NO_GLOBALS"); TiXmlElement* pMemEntry; const char *cstr_name = entry->Attribute("name"); if (!cstr_name) @@ -136,6 +138,8 @@ void VersionInfoFactory::ParseVersion (TiXmlElement* entry, VersionInfo* mem) cerr << "Dummy symbol table entry: " << cstr_key << endl; continue; } + if ((is_vtable && no_vtables) || (!is_vtable && no_globals)) + continue; uint32_t addr = strtol(cstr_value, 0, 0); if (is_vtable) mem->setVTable(cstr_key, addr);