void PlatformStack::GetStack(ISymbolInfoGet& arr, int32 ignoreCount, int32 maxDepth, void* context) { std::vector<uint64> backTrace(maxDepth); Platform::PlatformStack::CaptureStackBackTrace(backTrace.data(), maxDepth, context); for (int i = ignoreCount; i < maxDepth; ++i) { if (backTrace[i] != 0) { Platform::PlatformStack::SymbolInfo info; Platform::PlatformStack::ProgramAddressToSymbolInfo(backTrace[i], info); arr.Push(info); } } }
//path finding algorithm based on Lee's algorithm void findPath () { //Init entryNode->label = 0; //Wave expansion print(1, 1, "Pathfinder initialized, starting wave expansion...\n"); startStopwatch (); expand (&entryNode, 1); //use wave expansion expansionTime = stopStopwatch (); displayGrid (); //print results //Backtrace print(1, 1, "Tracing back path...\n\n"); startStopwatch (); backTrace (); backTraceTime = stopStopwatch (); displayPath (); //print results }