@@ -3991,10 +3991,12 @@ class Printer {
39913991 bool object;
39923992 int inliner_context_size;
39933993 int trace_context_size;
3994+ bool reverse;
39943995
39953996 Printer ()
39963997 : snippet(true ), color_mode(ColorMode::automatic), address(false ),
3997- object (false ), inliner_context_size(5 ), trace_context_size(7 ) {}
3998+ object (false ), inliner_context_size(5 ), trace_context_size(7 ),
3999+ reverse(true ) {}
39984000
39994001 template <typename ST > FILE *print (ST &st, FILE *fp = stderr) {
40004002 cfile_streambuf obuf (fp);
@@ -4041,8 +4043,14 @@ class Printer {
40414043 void print_stacktrace (ST &st, std::ostream &os, Colorize &colorize) {
40424044 print_header (os, st.thread_id ());
40434045 _resolver.load_stacktrace (st);
4044- for (size_t trace_idx = st.size (); trace_idx > 0 ; --trace_idx) {
4045- print_trace (os, _resolver.resolve (st[trace_idx - 1 ]), colorize);
4046+ if ( reverse ) {
4047+ for (size_t trace_idx = st.size (); trace_idx > 0 ; --trace_idx) {
4048+ print_trace (os, _resolver.resolve (st[trace_idx - 1 ]), colorize);
4049+ }
4050+ } else {
4051+ for (size_t trace_idx = 0 ; trace_idx < st.size (); ++trace_idx) {
4052+ print_trace (os, _resolver.resolve (st[trace_idx]), colorize);
4053+ }
40464054 }
40474055 }
40484056
0 commit comments