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

Method GetLinkedListItems

IDEHelper/WinDebugger.cpp:6104–6146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6102}
6103
6104String WinDebugger::GetLinkedListItems(DbgCompileUnit* dbgCompileUnit, DebugVisualizerEntry* debugVis, addr_target endNodePtr, DbgType* valueType, DbgTypedValue& curNode, int& count, String* outContinuationData)
6105{
6106 DbgEvaluationContext nextEvaluationContext(this, dbgCompileUnit, debugVis->mNextPointer);
6107 DbgEvaluationContext valueEvaluationContext(this, dbgCompileUnit, debugVis->mValuePointer);
6108
6109 String addrs;
6110
6111 bool checkLeft = true;
6112
6113 int mapIdx;
6114 for (mapIdx = 0; mapIdx < count; mapIdx++)
6115 {
6116 if (curNode.mPtr == endNodePtr)
6117 break;
6118 DbgTypedValue val = valueEvaluationContext.EvaluateInContext(curNode);
6119 if (!val)
6120 break;
6121 if (val.mPtr == 0)
6122 break;
6123
6124 if (valueType == NULL)
6125 {
6126 String typeAddr = val.mType->ToStringRaw();
6127 // RPad
6128 typeAddr.Append(' ', sizeof(addr_target)*2 - typeAddr.length());
6129 addrs += typeAddr;
6130 }
6131
6132 String addr = EncodeDataPtr(val.mPtr, false);
6133 addrs += addr;
6134
6135 curNode = nextEvaluationContext.EvaluateInContext(curNode);
6136 }
6137 count = mapIdx;
6138
6139 if (outContinuationData != NULL)
6140 {
6141 *outContinuationData += EncodeDataPtr(debugVis, false) + EncodeDataPtr(endNodePtr, false) + EncodeDataPtr(valueType, false) +
6142 EncodeDataPtr(curNode.mType, false) + EncodeDataPtr(curNode.mPtr, false);
6143 }
6144
6145 return addrs;
6146}
6147
6148String WinDebugger::GetDictionaryItems(DbgCompileUnit* dbgCompileUnit, DebugVisualizerEntry* debugVis, DbgTypedValue dictValue, int bucketIdx, int nodeIdx, int& count, String* outContinuationData)
6149{

Callers

nothing calls this directly

Calls 4

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

Tested by

no test coverage detected