void print_trace()

in src/backward.h [3868:3900]


    void print_trace(std::ostream& os, const ResolvedTrace& trace, Colorize& colorize)
    {
        os << "#" << std::left << std::setw(2) << trace.idx << std::right;
        bool already_indented = true;

        if (!trace.source.filename.size() || object) {
            os << "   Object \"" << trace.object_filename << "\", at " << trace.addr << ", in " << trace.object_function
               << "\n";
            already_indented = false;
        }

        for (size_t inliner_idx = trace.inliners.size(); inliner_idx > 0; --inliner_idx) {
            if (!already_indented) {
                os << "   ";
            }
            const ResolvedTrace::SourceLoc& inliner_loc = trace.inliners[inliner_idx - 1];
            print_source_loc(os, " | ", inliner_loc);
            if (snippet) {
                print_snippet(os, "    | ", inliner_loc, colorize, Color::purple, inliner_context_size);
            }
            already_indented = false;
        }

        if (trace.source.filename.size()) {
            if (!already_indented) {
                os << "   ";
            }
            print_source_loc(os, "   ", trace.source, trace.addr);
            if (snippet) {
                print_snippet(os, "      ", trace.source, colorize, Color::yellow, trace_context_size);
            }
        }
    }