intel/dump_gpu: add missing gdb option
[mesa.git] / src / intel / tools / intel_dump_gpu.in
1 #!/bin/bash
2 # -*- mode: sh -*-
3
4 function show_help() {
5 cat <<EOF
6 Usage: intel_dump_gpu [OPTION]... [--] COMMAND ARGUMENTS
7
8 Run COMMAND with ARGUMENTS and dump an AUB file that captures buffer
9 contents and execution of the GEM application.
10
11 -g, --gdb Launch GDB
12
13 -o, --output=FILE Name of AUB file. Defaults to COMMAND.aub
14
15 --device=ID Override PCI ID of the reported device
16
17 -v Enable verbose output
18
19 -vv Enable extra verbosity - dumps gtt mappings
20
21 --help Display this help message and exit
22
23 EOF
24
25 exit 0
26 }
27
28 ld_preload="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}"
29 args=""
30 file=""
31 gdb=""
32
33 function add_arg() {
34 arg=$1
35 args="$args$arg\n"
36 }
37
38 while true; do
39 case "$1" in
40 -o)
41 file=$2
42 add_arg "file=${file:-$(basename ${file}).aub}"
43 shift 2
44 ;;
45 -v)
46 add_arg "verbose=1"
47 shift 1
48 ;;
49 -vv)
50 add_arg "verbose=2"
51 shift 1
52 ;;
53 -o*)
54 file=${1##-o}
55 add_arg "file=${file:-$(basename ${file}).aub}"
56 shift
57 ;;
58 --output=*)
59 file=${1##--output=}
60 add_arg "file=${file:-$(basename ${file}).aub}"
61 shift
62 ;;
63 --device=*)
64 add_arg "device=${1##--device=}"
65 shift
66 ;;
67 --gdb)
68 gdb=1
69 shift
70 ;;
71 -g)
72 gdb=1
73 shift
74 ;;
75 --help)
76 show_help
77 ;;
78 --)
79 shift
80 break
81 ;;
82 -*)
83 echo "intel_aubdump: invalid option: $1"
84 echo
85 show_help
86 ;;
87 *)
88 break
89 ;;
90 esac
91 done
92
93 [ -z $1 ] && show_help
94
95 [ -z $file ] && add_arg "file=intel.aub"
96
97 tmp_file=`mktemp`
98 echo -e $args > $tmp_file
99
100 if [ -z $gdb ]; then
101 LD_PRELOAD="$ld_preload" INTEL_DUMP_GPU_CONFIG=$tmp_file $@
102 else
103 gdb -iex "set exec-wrapper env LD_PRELOAD=$ld_preload INTEL_DUMP_GPU_CONFIG=$tmp_file" --args $@
104 fi
105
106 ret=$?
107 rm $tmp_file
108 exit $ret