.. | .. |
---|
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 |
---|