kprobe_args_string.tc 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. # description: Kprobe event string type argument
  4. [ -f kprobe_events ] || exit_unsupported # this is configurable
  5. echo 0 > events/enable
  6. echo > kprobe_events
  7. case `uname -m` in
  8. x86_64)
  9. ARG2=%si
  10. OFFS=8
  11. ;;
  12. i[3456]86)
  13. ARG2=%cx
  14. OFFS=4
  15. ;;
  16. aarch64)
  17. ARG2=%x1
  18. OFFS=8
  19. ;;
  20. arm*)
  21. ARG2=%r1
  22. OFFS=4
  23. ;;
  24. *)
  25. echo "Please implement other architecture here"
  26. exit_untested
  27. esac
  28. : "Test get argument (1)"
  29. echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string" > kprobe_events
  30. echo 1 > events/kprobes/testprobe/enable
  31. ! echo test >> kprobe_events
  32. tail -n 1 trace | grep -qe "testprobe.* arg1=\"test\""
  33. echo 0 > events/kprobes/testprobe/enable
  34. : "Test get argument (2)"
  35. echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string arg2=+0(+${OFFS}(${ARG2})):string" > kprobe_events
  36. echo 1 > events/kprobes/testprobe/enable
  37. ! echo test1 test2 >> kprobe_events
  38. tail -n 1 trace | grep -qe "testprobe.* arg1=\"test1\" arg2=\"test2\""
  39. echo 0 > events/enable
  40. echo > kprobe_events