#! /bin/sh

run(){
  echo "== $1 =="
  sh -c "$@" || true
}

PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
export PATH

run "stap -V"
run "which stap"
run "locate --regex '/stap(run)?$' | xargs ls -ald"
run "printenv | egrep '^PATH=|^LD_LIBRARY_PATH=|^SYSTEMTAP_.*=|^XDG_DATA.*='"
run "stap -vv -p4 -e 'probe begin {exit()}'"
run "gcc -v"
run "uname -a"
run "dmesg | egrep 'stap|systemtap' | tail -n 10"
run "cat /proc/cpuinfo | egrep 'processor|vendor_id|model name'"
if [ -x /usr/bin/dpkg ]; then
  # debian/ubuntu
  run "dpkg --list | egrep 'systemtap|elfutils|kernel|gcc' | awk '{print \$2,\$3}' | sort"
elif [ -x /usr/bin/rpm -o -x /bin/rpm ]; then
  # fedora/rhel/suse/...
  run "rpm -qa --qf '%{name}-%{version} %{release}.%{arch}\\t%{buildtime:date}@%{buildhost}\\n' | egrep 'systemtap|elfutils|kernel|gcc' | sort"
elif [ -f /var/log/packages ]; then
  # slackware
  run "cat /var/log/packages | egrep 'systemtap|elfutils|kernel|gcc' | sort -k9"
fi
run "egrep 'PROBE|TRACE|MARKER|_DEBUG_|MODULE' /lib/modules/`uname -r`/build/.config | grep -v not.set | sort | fmt -w 80"
run "find /debugfs /proc /sys /dev -name '*kprobes*' 2>/dev/null | xargs grep ."
run "lsmod"
run "avahi-browse -r -t _stap._tcp"
run "ifconfig -a"
run "eu-readelf -n /boot/vmlinuz-`uname -r` | grep Build"
run "eu-readelf -n /usr/lib/debug/lib/modules/`uname -r`/vmlinux | grep Build"
run "hexdump -C /sys/kernel/notes"
for file in /sys/module/*/notes/.*build*
do
    run "hexdump -C $file"
done
