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.
112 lines
2.0 KiB
112 lines
2.0 KiB
4 months ago
|
#!/bin/bash
|
||
|
# -*- mode: sh -*-
|
||
|
|
||
|
function show_help() {
|
||
|
cat <<EOF
|
||
|
Usage: intel_aubdump [OPTION]... [--] COMMAND ARGUMENTS
|
||
|
|
||
|
Run COMMAND with ARGUMENTS and dump an AUB file that captures buffer
|
||
|
contents and execution of the GEM application.
|
||
|
|
||
|
-o, --output=FILE Name of AUB file. Defaults to COMMAND.aub
|
||
|
|
||
|
-c, --command=CMD Execute CMD and write the AUB file's content to its
|
||
|
standard input
|
||
|
|
||
|
--device=ID Override PCI ID of the reported device
|
||
|
|
||
|
-v Enable verbose output
|
||
|
|
||
|
--help Display this help message and exit
|
||
|
|
||
|
EOF
|
||
|
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
args=""
|
||
|
command=""
|
||
|
file=""
|
||
|
|
||
|
function add_arg() {
|
||
|
arg=$1
|
||
|
args="$args$arg\n"
|
||
|
}
|
||
|
|
||
|
function build_command () {
|
||
|
command=""
|
||
|
for i in $1; do
|
||
|
if [ -z $command ]; then
|
||
|
command=$i
|
||
|
else
|
||
|
command="$command,$i"
|
||
|
fi;
|
||
|
done
|
||
|
}
|
||
|
|
||
|
while true; do
|
||
|
case "$1" in
|
||
|
-o)
|
||
|
file=$2
|
||
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
||
|
shift 2
|
||
|
;;
|
||
|
-v)
|
||
|
add_arg "verbose=1"
|
||
|
shift 1
|
||
|
;;
|
||
|
-o*)
|
||
|
file=${1##-o}
|
||
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
||
|
shift
|
||
|
;;
|
||
|
--output=*)
|
||
|
file=${1##--output=}
|
||
|
add_arg "file=${file:-$(basename ${file}).aub}"
|
||
|
shift
|
||
|
;;
|
||
|
-c)
|
||
|
build_command "$2"
|
||
|
add_arg "command=$command"
|
||
|
shift 2
|
||
|
;;
|
||
|
--command=*)
|
||
|
build_command "${1##--command=}"
|
||
|
add_arg "command=$command"
|
||
|
shift
|
||
|
;;
|
||
|
--device=*)
|
||
|
add_arg "device=${1##--device=}"
|
||
|
shift
|
||
|
;;
|
||
|
--help)
|
||
|
show_help
|
||
|
;;
|
||
|
--)
|
||
|
shift
|
||
|
break
|
||
|
;;
|
||
|
-*)
|
||
|
echo "intel_aubdump: invalid option: $1"
|
||
|
echo
|
||
|
show_help
|
||
|
;;
|
||
|
*)
|
||
|
break
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
[ -z $1 ] && show_help
|
||
|
|
||
|
[ -z $file ] && [ -z $command ] && add_arg "file=intel.aub"
|
||
|
|
||
|
prefix=@prefix@
|
||
|
exec_prefix=@exec_prefix@
|
||
|
libdir=@libdir@
|
||
|
|
||
|
LD_PRELOAD=${libdir}/intel_aubdump.so${LD_PPRELOAD:+:${LD_PRELOAD}} \
|
||
|
exec -- "$@" 3<<EOF
|
||
|
`echo -e $args`
|
||
|
EOF
|