MCPcopy Create free account
hub / github.com/beefytech/Beef / GetArrayItems

Method GetArrayItems

IDEHelper/WinDebugger.cpp:6061–6102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6059}
6060
6061String WinDebugger::GetArrayItems(DbgCompileUnit* dbgCompileUnit, DebugVisualizerEntry* debugVis, DbgType* valueType, DbgTypedValue& curNode, int& count, String* outContinuationData)
6062{
6063 DbgEvaluationContext conditionEvaluationContext(this, dbgCompileUnit, debugVis->mCondition);
6064
6065 String addrs;
6066
6067 bool checkLeft = true;
6068
6069 int usedCount = 0;
6070 while (usedCount < count)
6071 {
6072 DbgTypedValue condVal = conditionEvaluationContext.EvaluateInContext(curNode);
6073 if (!condVal)
6074 break;
6075 if (condVal.mBool)
6076 {
6077 auto val = curNode;
6078 if (valueType == NULL)
6079 {
6080 String typeAddr = val.mType->ToStringRaw();
6081 // RPad
6082 typeAddr.Append(' ', sizeof(addr_target) * 2 - typeAddr.length());
6083 addrs += typeAddr;
6084 }
6085
6086 String addr = EncodeDataPtr(val.mPtr, false);
6087 addrs += addr;
6088 usedCount++;
6089 }
6090
6091 curNode.mPtr += curNode.mType->mTypeParam->GetStride();
6092 }
6093 count = usedCount;
6094
6095 if (outContinuationData != NULL)
6096 {
6097 *outContinuationData += EncodeDataPtr(debugVis, false) + EncodeDataPtr(valueType, false) +
6098 EncodeDataPtr(curNode.mType, false) + EncodeDataPtr(curNode.mPtr, false);
6099 }
6100
6101 return addrs;
6102}
6103
6104String WinDebugger::GetLinkedListItems(DbgCompileUnit* dbgCompileUnit, DebugVisualizerEntry* debugVis, addr_target endNodePtr, DbgType* valueType, DbgTypedValue& curNode, int& count, String* outContinuationData)
6105{

Callers

nothing calls this directly

Calls 5

ToStringRawMethod · 0.80
AppendMethod · 0.80
EvaluateInContextMethod · 0.45
lengthMethod · 0.45
GetStrideMethod · 0.45

Tested by

no test coverage detected