1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Added __parseCompileUnits test

This commit is contained in:
Brian Fiete 2020-11-18 09:31:52 -08:00
parent 62611713b7
commit a6f85f53f9
4 changed files with 15 additions and 1 deletions

View file

@ -4087,6 +4087,12 @@ CvCompileUnit* COFF::ParseCompileUnit(int compileUnitId)
return moduleInfo->mCompileUnit; return moduleInfo->mCompileUnit;
} }
void COFF::ParseCompileUnits()
{
for (int i = 0; i < (int)mCvModuleInfo.size(); i++)
ParseCompileUnit(i);
}
DbgType* COFF::CvGetTypeOrNamespace(char* name, DbgLanguage language) DbgType* COFF::CvGetTypeOrNamespace(char* name, DbgLanguage language)
{ {
if (language == DbgLanguage_Unknown) if (language == DbgLanguage_Unknown)

View file

@ -301,6 +301,7 @@ public:
void ParseCompileUnit_Symbols(DbgCompileUnit* compileUnit, uint8* sectionData, uint8* data, uint8* dataEnd, CvInlineInfoVec& inlineDataVec, bool deferInternals, DbgSubprogram* useSubprogram); void ParseCompileUnit_Symbols(DbgCompileUnit* compileUnit, uint8* sectionData, uint8* data, uint8* dataEnd, CvInlineInfoVec& inlineDataVec, bool deferInternals, DbgSubprogram* useSubprogram);
CvCompileUnit* ParseCompileUnit(CvModuleInfo* moduleInfo, CvCompileUnit* compileUnit, uint8* sectionData, int sectionSize); CvCompileUnit* ParseCompileUnit(CvModuleInfo* moduleInfo, CvCompileUnit* compileUnit, uint8* sectionData, int sectionSize);
virtual CvCompileUnit* ParseCompileUnit(int compileUnitId) override; virtual CvCompileUnit* ParseCompileUnit(int compileUnitId) override;
virtual void ParseCompileUnits() override;
virtual void MapCompileUnitMethods(DbgCompileUnit* compileUnit) override; virtual void MapCompileUnitMethods(DbgCompileUnit* compileUnit) override;
virtual void MapCompileUnitMethods(int compileUnitId) override; virtual void MapCompileUnitMethods(int compileUnitId) override;
virtual void PopulateType(DbgType* dbgType) override; virtual void PopulateType(DbgType* dbgType) override;

View file

@ -7656,7 +7656,13 @@ DbgTypedValue DbgExprEvaluator::MatchMethod(BfAstNode* targetSrc, DbgTypedValue
return result; return result;
} }
} }
else if (methodName == "__parseCompileUnits")
{
for (auto dbgModule : mDebugTarget->mDbgModules)
{
dbgModule->ParseCompileUnits();
}
}
DbgType* curTypeDef; DbgType* curTypeDef;
DbgType* targetTypeInst = NULL; DbgType* targetTypeInst = NULL;

View file

@ -1215,6 +1215,7 @@ public:
virtual void ParseSymbolData(); virtual void ParseSymbolData();
virtual void ParseTypeData(); virtual void ParseTypeData();
virtual DbgCompileUnit* ParseCompileUnit(int compileUnitId); virtual DbgCompileUnit* ParseCompileUnit(int compileUnitId);
virtual void ParseCompileUnits() {}
virtual void MapCompileUnitMethods(DbgCompileUnit* compileUnit); virtual void MapCompileUnitMethods(DbgCompileUnit* compileUnit);
virtual void MapCompileUnitMethods(int compileUnitId); virtual void MapCompileUnitMethods(int compileUnitId);
virtual void PopulateType(DbgType* dbgType); virtual void PopulateType(DbgType* dbgType);