Re: [PATCH resend ] tracepoint: Print the function symbol when tracepoint_debug is set

From: Shijie Huang
Date: Wed Mar 05 2025 - 22:38:00 EST



On 2025/3/5 21:53, Mathieu Desnoyers wrote:
On 2025-03-04 20:55, Huang Shijie wrote:
When tracepoint_debug is set, we may get the output in kernel log:
      [  380.013843] Probe 0 : 00000000f0d68cda

It is not readable, so change to print the function symbol.
After this patch, the output may becomes:
      [   54.930567] Probe 0 : perf_trace_sched_wakeup_template

What would it print if the address is corrupted ?

Perhaps we could do like the backtrace code and print e.g.

[<00000000f0d68cda>] perf_trace_sched_wakeup_template+0xNN/0xMM

If we want this format, we can change code to:

   ---
 kernel/tracepoint.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
index abfd0ac1177f..5a5041f32cc8 100644
--- a/kernel/tracepoint.c
+++ b/kernel/tracepoint.c
@@ -127,7 +127,8 @@ static void debug_print_probes(struct tracepoint_func *funcs)
                return;

        for (i = 0; funcs[i].func; i++)
-               printk(KERN_DEBUG "Probe %d : %p\n", i, funcs[i].func);
+               printk(KERN_DEBUG "Probe %d : [ %p ] %pS\n",
+                               i, funcs[i].func, funcs[i].func);
 }


The output will look like:

[   63.818829] Probe 0 : [ 0000000032848d41 ] perf_trace_sched_wakeup_template+0x0/0x20
[   63.819287] Probe 0 : [ 00000000fe8cca4d ] perf_trace_sched_switch+0x0/0x20
[   65.325638] Probe 0 : [ 0000000032848d41 ] perf_trace_sched_wakeup_template+0x0/0x20
[   65.695631] Probe 0 : [ 00000000fe8cca4d ] perf_trace_sched_switch+0x0/0x20

Thanks

Huang Shijie