1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-05 15:56:00 +02:00

Added mouseover propery evaluation

This commit is contained in:
Brian Fiete 2020-06-15 09:01:49 -07:00
parent 63dc33a970
commit 85943230b1
9 changed files with 75 additions and 23 deletions

View file

@ -745,9 +745,9 @@ DbgExprEvaluator::DbgExprEvaluator(WinDebugger* winDebugger, DbgModule* dbgModul
mCursorPos = cursorPos;
mAutoComplete = NULL;
mIsEmptyTarget = (dbgModule == NULL) || (dbgModule->mDebugTarget->mIsEmpty);
mExpressionFlags = DwEvalExpressionFlag_None;
mExpressionFlags = DwEvalExpressionFlag_None;
mHadSideEffects = false;
mBlockedSideEffects = false;
mBlockedSideEffects = false;
mReferenceId = NULL;
mIsComplexExpression = false;
mHadMemberReference = false;
@ -4084,7 +4084,10 @@ DbgTypedValue DbgExprEvaluator::GetResult()
// Fail("Indexer parameter count mismatch", mPropSrc);
// }
// }
SetAndRestoreValue<DwEvalExpressionFlags> prevFlags(mExpressionFlags);
if ((mExpressionFlags & DwEvalExpressionFlag_AllowPropertyEval) != 0)
mExpressionFlags = (DwEvalExpressionFlags)(mExpressionFlags | DwEvalExpressionFlag_AllowCalls);
mResult = CreateCall(mPropSrc, mPropTarget, mPropGet, false, mIndexerExprValues, mIndexerValues);
}
}

View file

@ -300,7 +300,7 @@ public:
bool mIsEmptyTarget;
DwEvalExpressionFlags mExpressionFlags;
bool mHadSideEffects;
bool mBlockedSideEffects;
bool mBlockedSideEffects;
bool mIgnoreErrors;
bool mCreatedPendingCall;
bool mValidateOnly;

View file

@ -105,10 +105,11 @@ enum DwEvalExpressionFlags : int16
DwEvalExpressionFlag_DeselectCallStackIdx = 0x04,
DwEvalExpressionFlag_AllowSideEffects = 0x08,
DwEvalExpressionFlag_AllowCalls = 0x10,
DwEvalExpressionFlag_MemoryAddress = 0x20,
DwEvalExpressionFlag_MemoryWatch = 0x40,
DwEvalExpressionFlag_Symbol = 0x80,
DwEvalExpressionFlag_StepIntoCalls = 0x100,
DwEvalExpressionFlag_AllowPropertyEval = 0x20,
DwEvalExpressionFlag_MemoryAddress = 0x40,
DwEvalExpressionFlag_MemoryWatch = 0x80,
DwEvalExpressionFlag_Symbol = 0x100,
DwEvalExpressionFlag_StepIntoCalls = 0x200,
};
struct DwDisplayInfo

View file

@ -9017,7 +9017,7 @@ String WinDebugger::EvaluateContinue(DbgPendingExpr* pendingExpr, BfPassInstance
{
BfLogDbgExpr("Evaluate blocked side effects\n");
val = "!sideeffects";
}
}
else if (!exprResult)
{
if (exprResult.mType != NULL)