diff mbox series

libtraceevent: Allow stack traces to show offset too

Message ID 20221219224258.68a86565@gandalf.local.home (mailing list archive)
State Accepted
Commit 414028d689376a6c4e9065cbcba99c11a4f26dd8
Headers show
Series libtraceevent: Allow stack traces to show offset too | expand

Commit Message

Steven Rostedt Dec. 20, 2022, 3:42 a.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

The stack traces only show the function name and the full address, which
can be useless for running under gdb, because the address could be
randomized, and to find the locations within the functions, the offsets
from the start of the function really need to be displayed and not just
the full address, as the address isn't known by gdb.

Have the function plugin "offset" option affect stack traces too. That
way, there's a way to display the offsets of the functions too.

Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 plugins/plugin_function.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/plugins/plugin_function.c b/plugins/plugin_function.c
index 7777569f63b5..2d6509b430e4 100644
--- a/plugins/plugin_function.c
+++ b/plugins/plugin_function.c
@@ -233,9 +233,11 @@  trace_stack_handler(struct trace_seq *s, struct tep_record *record,
 			break;
 
 		func = tep_find_function(event->tep, addr);
-		if (func)
-			trace_seq_printf(s, "=> %s (%llx)\n", func, addr);
-		else
+		if (func) {
+			trace_seq_puts(s, "=> ");
+			show_function(s, event->tep, func, addr);
+			trace_seq_printf(s, " (%llx)\n", addr);
+		} else
 			trace_seq_printf(s, "=> %llx\n", addr);
 	}