| .. | .. |
|---|
| 1 | 1 | #!/bin/sh |
|---|
| 2 | 2 | # SPDX-License-Identifier: GPL-2.0 |
|---|
| 3 | 3 | # description: Kprobe event auto/manual naming |
|---|
| 4 | | - |
|---|
| 5 | | -[ -f kprobe_events ] || exit_unsupported # this is configurable |
|---|
| 6 | | - |
|---|
| 7 | | -disable_events |
|---|
| 8 | | -echo > kprobe_events |
|---|
| 4 | +# requires: kprobe_events |
|---|
| 9 | 5 | |
|---|
| 10 | 6 | :;: "Add an event on function without name" ;: |
|---|
| 11 | 7 | |
|---|
| .. | .. |
|---|
| 27 | 23 | |
|---|
| 28 | 24 | :;: "Add an event on dot function without name" ;: |
|---|
| 29 | 25 | |
|---|
| 30 | | -FUNC=`grep -m 10 " [tT] .*\.isra\..*$" /proc/kallsyms | tail -n 1 | cut -f 3 -d " "` |
|---|
| 26 | +find_dot_func() { |
|---|
| 27 | + if [ ! -f available_filter_functions ]; then |
|---|
| 28 | + grep -m 10 " [tT] .*\.isra\..*$" /proc/kallsyms | tail -n 1 | cut -f 3 -d " " |
|---|
| 29 | + return; |
|---|
| 30 | + fi |
|---|
| 31 | + |
|---|
| 32 | + grep " [tT] .*\.isra\..*" /proc/kallsyms | cut -f 3 -d " " | while read f; do |
|---|
| 33 | + if grep -s $f available_filter_functions; then |
|---|
| 34 | + echo $f |
|---|
| 35 | + break |
|---|
| 36 | + fi |
|---|
| 37 | + done |
|---|
| 38 | +} |
|---|
| 39 | + |
|---|
| 40 | +FUNC=`find_dot_func | tail -n 1` |
|---|
| 31 | 41 | [ "x" != "x$FUNC" ] || exit_unresolved |
|---|
| 32 | 42 | echo "p $FUNC" > kprobe_events |
|---|
| 33 | 43 | EVENT=`grep $FUNC kprobe_events | cut -f 1 -d " " | cut -f 2 -d:` |
|---|
| 34 | 44 | [ "x" != "x$EVENT" ] || exit_failure |
|---|
| 35 | 45 | test -d events/$EVENT || exit_failure |
|---|
| 36 | | - |
|---|
| 37 | | -echo > kprobe_events |
|---|