[wpiutil] StackTrace: Add ability to override default implementation (#3951)

This commit is contained in:
Peter Johnson
2022-01-21 17:22:41 -08:00
committed by GitHub
parent 78d0bcf49d
commit a467392cbd
4 changed files with 34 additions and 2 deletions

View File

@@ -0,0 +1,18 @@
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#include <atomic>
#include "wpi/StackTrace.h"
static std::atomic<std::string (*)(int offset)> gStackTraceImpl{
wpi::GetStackTraceDefault};
std::string wpi::GetStackTrace(int offset) {
return (gStackTraceImpl.load())(offset);
}
void wpi::SetGetStackTraceImpl(std::string (*func)(int offset)) {
gStackTraceImpl = func ? func : wpi::GetStackTraceDefault;
}