#ifndef THIRD_PARTY_GBMCWEB_INCLUDE_EXCEPTION_STACK_TRACER_INTERNAL_HPP_
#define THIRD_PARTY_GBMCWEB_INCLUDE_EXCEPTION_STACK_TRACER_INTERNAL_HPP_

// Internal surface of the exception stack tracer, exposed only so unit tests
// can exercise the record lookup and terminate-formatting logic in-process.
// The production terminate handler aborts the process, so exercising that logic
// solely through death tests keeps it out of coverage (a forked child that
// abort()s never flushes gcov counters) and makes it awkward to assert on.
// This is not part of the public API; do not use outside the tracer.
namespace exception_stack_tracer_internal {

// Logs "terminate: <type>", the exception's what(), and the recorded
// throw-site stack (or an "unavailable" line) for the exception currently being
// handled. Safe to call with no active exception (logs that and returns).
// Shared by the real terminate handler and the unit tests.
void logThrowSiteStackOfCurrentException();

// Restores recording state for hermetic tests: re-enables tracing, empties the
// throw ring, and forces the module table to be re-snapshotted on the next
// installExceptionStackTracer(true) call.
void resetForTest();

}  // namespace exception_stack_tracer_internal

#endif  // THIRD_PARTY_GBMCWEB_INCLUDE_EXCEPTION_STACK_TRACER_INTERNAL_HPP_
