1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 3 # description: Kprobe event symbol argument 4 # requires: kprobe_events 5 6 SYMBOL="linux_proc_banner" 7 8 if [ ! -f /proc/kallsyms ]; then 9 echo "Can not check the target symbol - please enable CONFIG_KALLSYMS" 10 exit_unresolved 11 elif ! grep "$SYMBOL\$" /proc/kallsyms; then 12 echo "Linux banner is not exported - please enable CONFIG_KALLSYMS_ALL" 13 exit_unresolved 14 fi 15 16 : "Test get basic types symbol argument" 17 echo "p:testprobe_u $FUNCTION_FORK arg1=@linux_proc_banner:u64 arg2=@linux_proc_banner:u32 arg3=@linux_proc_banner:u16 arg4=@linux_proc_banner:u8" > kprobe_events 18 echo "p:testprobe_s $FUNCTION_FORK arg1=@linux_proc_banner:s64 arg2=@linux_proc_banner:s32 arg3=@linux_proc_banner:s16 arg4=@linux_proc_banner:s8" >> kprobe_events 19 if grep -q "x8/16/32/64" README; then 20 echo "p:testprobe_x $FUNCTION_FORK arg1=@linux_proc_banner:x64 arg2=@linux_proc_banner:x32 arg3=@linux_proc_banner:x16 arg4=@linux_proc_banner:x8" >> kprobe_events 21 fi 22 echo "p:testprobe_bf $FUNCTION_FORK arg1=@linux_proc_banner:b8@4/32" >> kprobe_events 23 echo 1 > events/kprobes/enable 24 (echo "forked") 25 echo 0 > events/kprobes/enable 26 grep "testprobe_[usx]:.* arg1=.* arg2=.* arg3=.* arg4=.*" trace 27 grep "testprobe_bf:.* arg1=.*" trace 28 29 : "Test get string symbol argument" 30 echo "p:testprobe_str $FUNCTION_FORK arg1=@linux_proc_banner:string" > kprobe_events 31 echo 1 > events/kprobes/enable 32 (echo "forked") 33 echo 0 > events/kprobes/enable 34 RESULT=`grep "testprobe_str" trace | sed -e 's/.* arg1=\(.*\)/\1/'` 35 36 RESULT=`echo $RESULT | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'` 37 ORIG=`cat /proc/version | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'` 38 test "$RESULT" = "$ORIG"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.