From 5b25039ff491a6261d45c51171f316ed1afd6b5e Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 30 Nov 2019 17:19:48 -0800 Subject: [PATCH] Debug test revert --- IDE/Tests/Test1/scripts/Data01.txt | 4 ++++ IDEHelper/COFF.cpp | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/IDE/Tests/Test1/scripts/Data01.txt b/IDE/Tests/Test1/scripts/Data01.txt index f4c9e851..adea55a3 100644 --- a/IDE/Tests/Test1/scripts/Data01.txt +++ b/IDE/Tests/Test1/scripts/Data01.txt @@ -6,4 +6,8 @@ RunWithCompiling() AssertEvalEquals("sizeof(Derived)", "13") AssertEvalEquals("strideof(Derived)", "16") AssertEvalEquals("alignof(Derived)", "8") + +# The following fails on Win32 due to LLVM debug info bugs +if (platform != "Win64") Stop() + AssertEvalEquals("iVal", "{ 123 }") \ No newline at end of file diff --git a/IDEHelper/COFF.cpp b/IDEHelper/COFF.cpp index ae2c4799..682199df 100644 --- a/IDEHelper/COFF.cpp +++ b/IDEHelper/COFF.cpp @@ -6123,8 +6123,9 @@ addr_target COFF::EvaluateLocation(DbgSubprogram* dwSubprogram, const uint8* loc result = stackFrame->mRegisters.mIntRegsArray[X86Reg_EBP] + defRangeFPRel.offFramePointer; } else - //result = stackFrame->mRegisters.mIntRegsArray[X86Reg_EBP] + defRangeFPRel.offFramePointer - 4; - result = ((stackFrame->mRegisters.mIntRegsArray[X86Reg_ESP] + dwSubprogram->mFrameBaseLen) & ~7) + defRangeFPRel.offFramePointer; + result = stackFrame->mRegisters.mIntRegsArray[X86Reg_ESP] + dwSubprogram->mFrameBaseLen + defRangeFPRel.offFramePointer; + //result = stackFrame->mRegisters.mIntRegsArray[X86Reg_EBP] + defRangeFPRel.offFramePointer; + //result = ((stackFrame->mRegisters.mIntRegsArray[X86Reg_ESP] + dwSubprogram->mFrameBaseLen) & ~7) + defRangeFPRel.offFramePointer; } else if (dwSubprogram->mLocalBaseReg == DbgSubprogram::LocalBaseRegKind_EBX) result = stackFrame->mRegisters.mIntRegsArray[X86Reg_EBX] + defRangeFPRel.offFramePointer;