diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2019-11-08 21:58:51 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-11-08 21:58:51 +0000 |
commit | aeed74375c24c59fb6fb725691fe9ce547a810ab (patch) | |
tree | 0a62d349d598e51c8bbe7cf6aff5719366f5669e /src/mongo/util/stacktrace.h | |
parent | 124ad1c022f20dbeade4d67947e328dfe4b04e20 (diff) | |
download | mongo-aeed74375c24c59fb6fb725691fe9ce547a810ab.tar.gz |
SERVER-44378 groundwork for upcoming stacktrace API
Diffstat (limited to 'src/mongo/util/stacktrace.h')
-rw-r--r-- | src/mongo/util/stacktrace.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/mongo/util/stacktrace.h b/src/mongo/util/stacktrace.h index dcb0b29b2f9..2be3842fc1a 100644 --- a/src/mongo/util/stacktrace.h +++ b/src/mongo/util/stacktrace.h @@ -35,43 +35,30 @@ #include <iosfwd> -#if defined(_WIN32) -#include "mongo/platform/windows_basic.h" // for CONTEXT -#endif - #include "mongo/base/string_data.h" namespace mongo { +namespace stack_trace { + +const size_t kFrameMax = 100; + /** Abstract sink onto which stacktrace is piecewise emitted. */ -class StackTraceSink { +class Sink { public: - StackTraceSink& operator<<(StringData v) { - doWrite(v); - return *this; - } - - StackTraceSink& operator<<(uint64_t v) { + Sink& operator<<(StringData v) { doWrite(v); return *this; } private: virtual void doWrite(StringData v) = 0; - virtual void doWrite(uint64_t v) = 0; }; +} // namespace stack_trace + // Print stack trace information to "os", default to the log stream. void printStackTrace(std::ostream& os); void printStackTrace(); -// Signal-safe variant. -void printStackTraceFromSignal(std::ostream& os); - -#if defined(_WIN32) -// Print stack trace (using a specified stack context) to "os", default to the log stream. -void printWindowsStackTrace(CONTEXT& context, std::ostream& os); -void printWindowsStackTrace(CONTEXT& context); -#endif - } // namespace mongo |