Split syscalls headers and tools
[lttng-modules.git] / tools / syscalls / lttng-syscalls-extract.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
3
4 set -eu
5
6 outfile="${1:-}"
7
8 if [ "$outfile" = "" ]; then
9 echo "Specify an output file as first argument, it will be overwritten."
10 exit 1
11 fi
12
13 # Generate a random string to use as an identifier
14 ident=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 8 | head -n1)
15
16 cd ../.. || exit 1
17 make syscalls_extractor
18
19 sudo insmod ./src/lttng-wrapper.ko
20 sudo insmod ./src/lttng-syscalls-extractor.ko ident="$ident" || true
21 sudo rmmod lttng-wrapper
22
23 cd - || exit 1
24
25 sudo dmesg | sed -n -e 's/\(\[.*\] \)\?'"$ident"'//p' > "$outfile"
26
27 # Make sure we have both the start and end markers
28 if grep -q -- '---START---' "$outfile"; then
29 sed -i '/^---START---/d' "$outfile"
30 else
31 echo "Error: Start marker missing from dmesg output, your kernel log buffer is probably too small, set CONFIG_LOG_BUF_SHIFT to a bigger value."
32 exit 1
33 fi
34
35 if grep -q -- '---END---' "$outfile"; then
36 sed -i '/^---END---/d' "$outfile"
37 else
38 echo "Error: End marker missing from dmesg output, something went wrong."
39 exit 1
40 fi
This page took 0.030396 seconds and 4 git commands to generate.