summaryrefslogtreecommitdiff
path: root/src/mongo/util/stacktrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/stacktrace.h')
-rw-r--r--src/mongo/util/stacktrace.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/util/stacktrace.h b/src/mongo/util/stacktrace.h
index be94d5e7865..dcb0b29b2f9 100644
--- a/src/mongo/util/stacktrace.h
+++ b/src/mongo/util/stacktrace.h
@@ -39,8 +39,28 @@
#include "mongo/platform/windows_basic.h" // for CONTEXT
#endif
+#include "mongo/base/string_data.h"
+
namespace mongo {
+/** Abstract sink onto which stacktrace is piecewise emitted. */
+class StackTraceSink {
+public:
+ StackTraceSink& operator<<(StringData v) {
+ doWrite(v);
+ return *this;
+ }
+
+ StackTraceSink& operator<<(uint64_t v) {
+ doWrite(v);
+ return *this;
+ }
+
+private:
+ virtual void doWrite(StringData v) = 0;
+ virtual void doWrite(uint64_t v) = 0;
+};
+
// Print stack trace information to "os", default to the log stream.
void printStackTrace(std::ostream& os);
void printStackTrace();