• Tiezhu Yang's avatar
    LoongArch: Add uprobes support · 19bc6cb6
    Tiezhu Yang authored
    Uprobes is the user-space counterpart to kprobes, this patch adds
    uprobes support for LoongArch.
    
    Here is a simple example with CONFIG_UPROBE_EVENTS=y:
    
      # cat test.c
      #include <stdio.h>
    
      int add(int a, int b)
      {
      	  return a + b;
      }
    
      int main()
      {
    	  return add(2, 7);
      }
      # gcc test.c -o /tmp/test
      # nm /tmp/test | grep add
      0000000120004194 T add
      # cd /sys/kernel/debug/tracing
      # echo > uprobe_events
      # echo "p:myuprobe /tmp/test:0x4194 %r4 %r5" > uprobe_events
      # echo "r:myuretprobe /tmp/test:0x4194 %r4" >> uprobe_events
      # echo 1 > events/uprobes/enable
      # echo 1 > tracing_on
      # /tmp/test
      # cat trace
      ...
      #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
      #              | |         |   |||||     |         |
                  test-1060    [001] DNZff  1015.770620: myuprobe: (0x120004194) arg1=0x2 arg2=0x7
                  test-1060    [001] DNZff  1015.770930: myuretprobe: (0x1200041f0 <- 0x120004194) arg1=0x9
    Tested-by: default avatarJeff Xie <xiehuan09@gmail.com>
    Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
    Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
    19bc6cb6
uprobes.c 3.36 KB