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);
}
}
}