summaryrefslogtreecommitdiff
path: root/src/mongo/util/stacktrace.h
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2019-11-08 21:58:51 +0000
committerevergreen <evergreen@mongodb.com>2019-11-08 21:58:51 +0000
commitaeed74375c24c59fb6fb725691fe9ce547a810ab (patch)
tree0a62d349d598e51c8bbe7cf6aff5719366f5669e /src/mongo/util/stacktrace.h
parent124ad1c022f20dbeade4d67947e328dfe4b04e20 (diff)
downloadmongo-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.h29
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