MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / GetStackTrace

Method GetStackTrace

Source/Engine/Content/Assets/VisualScript.cpp:2341–2394  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2339}
2340
2341String VisualScripting::GetStackTrace()
2342{
2343 String result;
2344 auto frame = ThreadStacks.Get().Stack;
2345 while (frame)
2346 {
2347 String node;
2348 switch (frame->Node->Type)
2349 {
2350 // Get/Set Parameter
2351 case GRAPH_NODE_MAKE_TYPE(6, 3):
2352 case GRAPH_NODE_MAKE_TYPE(6, 4):
2353 {
2354 const auto param = frame->Script->Graph.GetParameter((Guid)frame->Node->Values[0]);
2355 node = frame->Node->TypeID == 3 ? TEXT("Get ") : TEXT("Set ");
2356 node += param ? param->Name : ((Guid)frame->Node->Values[0]).ToString();
2357 break;
2358 }
2359 // Method Override
2360 case GRAPH_NODE_MAKE_TYPE(16, 3):
2361 node = (StringView)frame->Node->Values[0];
2362 node += TEXT("()");
2363 break;
2364 // Invoke Method
2365 case GRAPH_NODE_MAKE_TYPE(16, 4):
2366 node = (StringView)frame->Node->Values[0];
2367 node += TEXT(".");
2368 node += (StringView)frame->Node->Values[1];
2369 node += TEXT("()");
2370 break;
2371 // Function
2372 case GRAPH_NODE_MAKE_TYPE(16, 6):
2373 node = String(frame->Script->GetScriptTypeName());
2374 for (int32 i = 0; i < frame->Script->_methods.Count(); i++)
2375 {
2376 auto& method = frame->Script->_methods[i];
2377 if (method.Node == frame->Node)
2378 {
2379 node += TEXT(".");
2380 node += String(method.Name);
2381 node += TEXT("()");
2382 break;
2383 }
2384 }
2385 break;
2386 default:
2387 node = StringUtils::ToString(frame->Node->Type);
2388 break;
2389 }
2390 result += String::Format(TEXT(" at {0}:{1} in node {2}\n"), StringUtils::GetFileNameWithoutExtension(frame->Script->GetPath()), frame->Script->GetID(), node);
2391 frame = frame->PreviousFrame;
2392 }
2393 return result;
2394}
2395
2396VisualScriptingBinaryModule* VisualScripting::GetBinaryModule()
2397{

Callers

nothing calls this directly

Calls 9

GetIDMethod · 0.80
StringClass · 0.50
ToStringFunction · 0.50
FormatFunction · 0.50
GetMethod · 0.45
GetParameterMethod · 0.45
ToStringMethod · 0.45
CountMethod · 0.45
GetPathMethod · 0.45

Tested by

no test coverage detected