#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # description: Kprobe event string type argument [ -f kprobe_events ] || exit_unsupported # this is configurable echo 0 > events/enable echo > kprobe_events case `uname -m` in x86_64) ARG2=%si OFFS=8 ;; i[3456]86) ARG2=%cx OFFS=4 ;; aarch64) ARG2=%x1 OFFS=8 ;; arm*) ARG2=%r1 OFFS=4 ;; ppc64*) ARG2=%r4 OFFS=8 ;; ppc*) ARG2=%r4 OFFS=4 ;; *) echo "Please implement other architecture here" exit_untested esac : "Test get argument (1)" echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string" > kprobe_events echo 1 > events/kprobes/testprobe/enable ! echo test >> kprobe_events tail -n 1 trace | grep -qe "testprobe.* arg1=\"test\"" echo 0 > events/kprobes/testprobe/enable : "Test get argument (2)" echo "p:testprobe create_trace_kprobe arg1=+0(+0(${ARG2})):string arg2=+0(+${OFFS}(${ARG2})):string" > kprobe_events echo 1 > events/kprobes/testprobe/enable ! echo test1 test2 >> kprobe_events tail -n 1 trace | grep -qe "testprobe.* arg1=\"test1\" arg2=\"test2\"" echo 0 > events/enable echo > kprobe_events