1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Ability to set debug format for summaries

This commit is contained in:
Brian Fiete 2019-12-24 10:31:38 -08:00
parent aa7cff43dd
commit 69d16f87f6
2 changed files with 22 additions and 3 deletions

View file

@ -466,8 +466,8 @@ static double ConvertFloat80ToDouble(const byte fp80[10])
addr_target NS_BF_DBG::DecodeTargetDataPtr(const char*& strRef)
{
addr_target val = (addr_target)stouln(strRef, sizeof(intptr) * 2);
strRef += sizeof(intptr) * 2;
addr_target val = (addr_target)stouln(strRef, sizeof(intptr_target) * 2);
strRef += sizeof(intptr_target) * 2;
return val;
}
@ -7699,6 +7699,9 @@ String WinDebugger::DbgTypedValueToString(const DbgTypedValue& origTypedValue, c
DbgType* primType = summaryType->mTypeParam;
String result;
if (primType->IsInteger())
formatInfo.mTypeKindFlags = (DbgTypeKindFlags)(formatInfo.mTypeKindFlags | DbgTypeKindFlag_Int);
if ((dataPtr != 0) && (dataPtr != -1))
{
String evalString = "(" + primType->ToString() + ")" + ptrDataStr;
@ -7796,6 +7799,9 @@ String WinDebugger::DbgTypedValueToString(const DbgTypedValue& origTypedValue, c
result = "???";
}
if (member->mType->IsInteger())
formatInfo.mTypeKindFlags = (DbgTypeKindFlags)(formatInfo.mTypeKindFlags | DbgTypeKindFlag_Int);
if (formatInfo.mRawString)
return result;
@ -9070,7 +9076,12 @@ String WinDebugger::EvaluateContinue(DbgPendingExpr* pendingExpr, BfPassInstance
else if (checkType->IsInteger())
val += "\n:type\tint";
else if ((exprResult.mRegNum >= X64Reg_M128_XMM0) && (exprResult.mRegNum <= X64Reg_M128_XMM15))
val += "\n:type\tmm128";
val += "\n:type\tmm128";
else
val += "\n:type\tvaluetype";
if ((pendingExpr->mFormatInfo.mTypeKindFlags & DbgTypeKindFlag_Int) != 0)
val += "\n:type\tint";
if (dbgExprEvaluator.mHadSideEffects)
val += "\n:sideeffects";

View file

@ -269,6 +269,12 @@ public:
}
};
enum DbgTypeKindFlags
{
DbgTypeKindFlag_None = 0,
DbgTypeKindFlag_Int = 1
};
struct DwFormatInfo
{
int mCallStackIdx;
@ -278,6 +284,7 @@ struct DwFormatInfo
bool mNoMembers;
bool mRawString;
bool mNoEdit;
DbgTypeKindFlags mTypeKindFlags;
intptr mArrayLength;
intptr mOverrideCount;
intptr mMaxCount;
@ -300,6 +307,7 @@ struct DwFormatInfo
mNoVisualizers = false;
mNoMembers = false;
mNoEdit = false;
mTypeKindFlags = DbgTypeKindFlag_None;
mArrayLength = -1;
mOverrideCount = -1;
mMaxCount = -1;