forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.6 KiB
38 lines
1.6 KiB
#!/bin/sh |
|
# SPDX-License-Identifier: GPL-2.0 |
|
# description: Kprobe event symbol argument |
|
# requires: kprobe_events |
|
|
|
SYMBOL="linux_proc_banner" |
|
|
|
if [ ! -f /proc/kallsyms ]; then |
|
echo "Can not check the target symbol - please enable CONFIG_KALLSYMS" |
|
exit_unresolved |
|
elif ! grep "$SYMBOL\$" /proc/kallsyms; then |
|
echo "Linux banner is not exported - please enable CONFIG_KALLSYMS_ALL" |
|
exit_unresolved |
|
fi |
|
|
|
: "Test get basic types symbol argument" |
|
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 |
|
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 |
|
if grep -q "x8/16/32/64" README; then |
|
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 |
|
fi |
|
echo "p:testprobe_bf $FUNCTION_FORK arg1=@linux_proc_banner:b8@4/32" >> kprobe_events |
|
echo 1 > events/kprobes/enable |
|
(echo "forked") |
|
echo 0 > events/kprobes/enable |
|
grep "testprobe_[usx]:.* arg1=.* arg2=.* arg3=.* arg4=.*" trace |
|
grep "testprobe_bf:.* arg1=.*" trace |
|
|
|
: "Test get string symbol argument" |
|
echo "p:testprobe_str $FUNCTION_FORK arg1=@linux_proc_banner:string" > kprobe_events |
|
echo 1 > events/kprobes/enable |
|
(echo "forked") |
|
echo 0 > events/kprobes/enable |
|
RESULT=`grep "testprobe_str" trace | sed -e 's/.* arg1=\(.*\)/\1/'` |
|
|
|
RESULT=`echo $RESULT | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'` |
|
ORIG=`cat /proc/version | sed -e 's/.* \((.*)\) \((.*)\) .*/\1 \2/'` |
|
test "$RESULT" = "$ORIG"
|
|
|