diff --git a/SMPFunction.cpp b/SMPFunction.cpp index 70d5cb63866ed97070530581a5a276d3b2dcf406..1141702fec2a3a58ba94f25c193bfcebadfd151c 100644 --- a/SMPFunction.cpp +++ b/SMPFunction.cpp @@ -986,9 +986,6 @@ void SMPFunction::SemiNaiveLocalVarID(void) { // calling convention is used, e.g. gcc/linux allocates local var space + out args space // in a single allocation and then writes outarg values directly to ESP+0, ESP+4, etc. void SMPFunction::FindOutgoingArgsSize(void) { - this->OutgoingArgsSize = 0; - return; - // Compute the lowest value reached by the stack pointer. list<SMPInstr>::iterator CurrInst; this->MinStackDelta = 20000; // Final value should be negative diff --git a/SMPStaticAnalyzer.cpp b/SMPStaticAnalyzer.cpp index 8b2eb881d65e2614a0e6b61d5caf4dd436df0d10..4c1a227b6e53c08a3afce21121d56c66f6e6cc89 100644 --- a/SMPStaticAnalyzer.cpp +++ b/SMPStaticAnalyzer.cpp @@ -234,15 +234,15 @@ void IDAP_run(int arg) { SymsFileName += FileSuffix; SMPProgram *CurrProg = new SMPProgram(); -// CurrProg->AnalyzeData(); // Analyze static data in the executable + CurrProg->AnalyzeData(); // Analyze static data in the executable // read the Profiler generated information into a new prof_info class -// ProfilerInformation *prof_info = new ProfilerInformation(SymsFileName.c_str(), CurrProg); + ProfilerInformation *prof_info = new ProfilerInformation(SymsFileName.c_str(), CurrProg); SymsFile = qfopen(SymsFileName.c_str(), "w"); if (NULL == SymsFile) { error("FATAL ERROR: Cannot open output file %s\n", SymsFileName.c_str()); -// delete prof_info; + delete prof_info; return; } @@ -261,10 +261,10 @@ void IDAP_run(int arg) { } #if SMP_DEBUG_DATA_ONLY -// FindDataInCode(); -// FixCodeIdentification(); + FindDataInCode(); + FixCodeIdentification(); qfclose(SymsFile); -// delete prof_info; + delete prof_info; return; #endif @@ -272,15 +272,14 @@ void IDAP_run(int arg) { // between code and data can be improved, and if all branches // and calls have proper code targets and code cross references. #if SMP_FIXUP_IDB -// FixupIDB(); + FixupIDB(); #endif msg("Calling InferDataGranularity\n"); -// msg("ptr to MemoryAccessInfo: %x\n", prof_info->GetMemoryAccessInfo()); -// prof_info->GetMemoryAccessInfo()->InferDataGranularity(); + msg("ptr to MemoryAccessInfo: %x\n", prof_info->GetMemoryAccessInfo()); + prof_info->GetMemoryAccessInfo()->InferDataGranularity(); msg("Returned from InferDataGranularity\n"); -// CurrProg->Analyze(prof_info); - CurrProg->Analyze(NULL); + CurrProg->Analyze(prof_info); CurrProg->EmitAnnotations(SymsFile); #if SMP_FIND_ORPHANS @@ -298,7 +297,7 @@ void IDAP_run(int arg) { qfclose(SymsFile); delete CurrProg; -// delete prof_info; + delete prof_info; return; } // end IDAP_run()