mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Ability to set debug format for summaries
This commit is contained in:
parent
aa7cff43dd
commit
69d16f87f6
2 changed files with 22 additions and 3 deletions
|
@ -466,8 +466,8 @@ static double ConvertFloat80ToDouble(const byte fp80[10])
|
||||||
|
|
||||||
addr_target NS_BF_DBG::DecodeTargetDataPtr(const char*& strRef)
|
addr_target NS_BF_DBG::DecodeTargetDataPtr(const char*& strRef)
|
||||||
{
|
{
|
||||||
addr_target val = (addr_target)stouln(strRef, sizeof(intptr) * 2);
|
addr_target val = (addr_target)stouln(strRef, sizeof(intptr_target) * 2);
|
||||||
strRef += sizeof(intptr) * 2;
|
strRef += sizeof(intptr_target) * 2;
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7699,6 +7699,9 @@ String WinDebugger::DbgTypedValueToString(const DbgTypedValue& origTypedValue, c
|
||||||
DbgType* primType = summaryType->mTypeParam;
|
DbgType* primType = summaryType->mTypeParam;
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
if (primType->IsInteger())
|
||||||
|
formatInfo.mTypeKindFlags = (DbgTypeKindFlags)(formatInfo.mTypeKindFlags | DbgTypeKindFlag_Int);
|
||||||
|
|
||||||
if ((dataPtr != 0) && (dataPtr != -1))
|
if ((dataPtr != 0) && (dataPtr != -1))
|
||||||
{
|
{
|
||||||
String evalString = "(" + primType->ToString() + ")" + ptrDataStr;
|
String evalString = "(" + primType->ToString() + ")" + ptrDataStr;
|
||||||
|
@ -7796,6 +7799,9 @@ String WinDebugger::DbgTypedValueToString(const DbgTypedValue& origTypedValue, c
|
||||||
result = "???";
|
result = "???";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (member->mType->IsInteger())
|
||||||
|
formatInfo.mTypeKindFlags = (DbgTypeKindFlags)(formatInfo.mTypeKindFlags | DbgTypeKindFlag_Int);
|
||||||
|
|
||||||
if (formatInfo.mRawString)
|
if (formatInfo.mRawString)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
@ -9070,7 +9076,12 @@ String WinDebugger::EvaluateContinue(DbgPendingExpr* pendingExpr, BfPassInstance
|
||||||
else if (checkType->IsInteger())
|
else if (checkType->IsInteger())
|
||||||
val += "\n:type\tint";
|
val += "\n:type\tint";
|
||||||
else if ((exprResult.mRegNum >= X64Reg_M128_XMM0) && (exprResult.mRegNum <= X64Reg_M128_XMM15))
|
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)
|
if (dbgExprEvaluator.mHadSideEffects)
|
||||||
val += "\n:sideeffects";
|
val += "\n:sideeffects";
|
||||||
|
|
|
@ -269,6 +269,12 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum DbgTypeKindFlags
|
||||||
|
{
|
||||||
|
DbgTypeKindFlag_None = 0,
|
||||||
|
DbgTypeKindFlag_Int = 1
|
||||||
|
};
|
||||||
|
|
||||||
struct DwFormatInfo
|
struct DwFormatInfo
|
||||||
{
|
{
|
||||||
int mCallStackIdx;
|
int mCallStackIdx;
|
||||||
|
@ -278,6 +284,7 @@ struct DwFormatInfo
|
||||||
bool mNoMembers;
|
bool mNoMembers;
|
||||||
bool mRawString;
|
bool mRawString;
|
||||||
bool mNoEdit;
|
bool mNoEdit;
|
||||||
|
DbgTypeKindFlags mTypeKindFlags;
|
||||||
intptr mArrayLength;
|
intptr mArrayLength;
|
||||||
intptr mOverrideCount;
|
intptr mOverrideCount;
|
||||||
intptr mMaxCount;
|
intptr mMaxCount;
|
||||||
|
@ -300,6 +307,7 @@ struct DwFormatInfo
|
||||||
mNoVisualizers = false;
|
mNoVisualizers = false;
|
||||||
mNoMembers = false;
|
mNoMembers = false;
|
||||||
mNoEdit = false;
|
mNoEdit = false;
|
||||||
|
mTypeKindFlags = DbgTypeKindFlag_None;
|
||||||
mArrayLength = -1;
|
mArrayLength = -1;
|
||||||
mOverrideCount = -1;
|
mOverrideCount = -1;
|
||||||
mMaxCount = -1;
|
mMaxCount = -1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue