@@ -990,8 +990,11 @@ enum print_line_t trace_nop_print(struct trace_iterator *iter, int flags,
990
990
}
991
991
992
992
static void print_fn_trace (struct trace_seq * s , unsigned long ip ,
993
- unsigned long parent_ip , int flags )
993
+ unsigned long parent_ip , long delta , int flags )
994
994
{
995
+ ip += delta ;
996
+ parent_ip += delta ;
997
+
995
998
seq_print_ip_sym (s , ip , flags );
996
999
997
1000
if ((flags & TRACE_ITER_PRINT_PARENT ) && parent_ip ) {
@@ -1009,7 +1012,7 @@ static enum print_line_t trace_fn_trace(struct trace_iterator *iter, int flags,
1009
1012
1010
1013
trace_assign_type (field , iter -> ent );
1011
1014
1012
- print_fn_trace (s , field -> ip , field -> parent_ip , flags );
1015
+ print_fn_trace (s , field -> ip , field -> parent_ip , iter -> tr -> text_delta , flags );
1013
1016
trace_seq_putc (s , '\n' );
1014
1017
1015
1018
return trace_handle_return (s );
@@ -1674,7 +1677,7 @@ trace_func_repeats_print(struct trace_iterator *iter, int flags,
1674
1677
1675
1678
trace_assign_type (field , iter -> ent );
1676
1679
1677
- print_fn_trace (s , field -> ip , field -> parent_ip , flags );
1680
+ print_fn_trace (s , field -> ip , field -> parent_ip , iter -> tr -> text_delta , flags );
1678
1681
trace_seq_printf (s , " (repeats: %u, last_ts:" , field -> count );
1679
1682
trace_print_time (s , iter ,
1680
1683
iter -> ts - FUNC_REPEATS_GET_DELTA_TS (field ));
0 commit comments