MCPcopy Create free account
hub / github.com/bombela/backward-cpp / Printer

Class Printer

backward.hpp:3975–4128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3973#endif // BACKWARD_SYSTEM_LINUX
3974
3975class Printer {
3976public:
3977 bool snippet;
3978 ColorMode::type color_mode;
3979 bool address;
3980 bool object;
3981 int inliner_context_size;
3982 int trace_context_size;
3983
3984 Printer()
3985 : snippet(true), color_mode(ColorMode::automatic), address(false),
3986 object(false), inliner_context_size(5), trace_context_size(7) {}
3987
3988 template <typename ST> FILE *print(ST &st, FILE *fp = stderr) {
3989 cfile_streambuf obuf(fp);
3990 std::ostream os(&obuf);
3991 Colorize colorize(os);
3992 colorize.activate(color_mode, fp);
3993 print_stacktrace(st, os, colorize);
3994 return fp;
3995 }
3996
3997 template <typename ST> std::ostream &print(ST &st, std::ostream &os) {
3998 Colorize colorize(os);
3999 colorize.activate(color_mode);
4000 print_stacktrace(st, os, colorize);
4001 return os;
4002 }
4003
4004 template <typename IT>
4005 FILE *print(IT begin, IT end, FILE *fp = stderr, size_t thread_id = 0) {
4006 cfile_streambuf obuf(fp);
4007 std::ostream os(&obuf);
4008 Colorize colorize(os);
4009 colorize.activate(color_mode, fp);
4010 print_stacktrace(begin, end, os, thread_id, colorize);
4011 return fp;
4012 }
4013
4014 template <typename IT>
4015 std::ostream &print(IT begin, IT end, std::ostream &os,
4016 size_t thread_id = 0) {
4017 Colorize colorize(os);
4018 colorize.activate(color_mode);
4019 print_stacktrace(begin, end, os, thread_id, colorize);
4020 return os;
4021 }
4022
4023 TraceResolver const &resolver() const { return _resolver; }
4024
4025private:
4026 TraceResolver _resolver;
4027 SnippetFactory _snippets;
4028
4029 template <typename ST>
4030 void print_stacktrace(ST &st, std::ostream &os, Colorize &colorize) {
4031 print_header(os, st.thread_id());
4032 _resolver.load_stacktrace(st);

Callers

nothing calls this directly

Calls 1

activateMethod · 0.80

Tested by

no test coverage detected