On Fri, Jul 20, 2018 at 05:19:57PM +0100, Lionel Landwerlin wrote: > When running gdb, make sure to pass the LD_PRELOAD variable only to > the executed program, not the debugger. Otherwise the debugger will > run the preloaded constructor/destructor too and bad things will > happen. > > Suggested-by: Rafael Antognolli <rafael.antogno...@intel.com> > Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antogno...@intel.com> > --- > src/intel/tools/intel_dump_gpu.in | 19 ++++++++++++++++--- > 1 file changed, 16 insertions(+), 3 deletions(-) > > diff --git a/src/intel/tools/intel_dump_gpu.in > b/src/intel/tools/intel_dump_gpu.in > index 0454cff25da..aa187ba8614 100755 > --- a/src/intel/tools/intel_dump_gpu.in > +++ b/src/intel/tools/intel_dump_gpu.in > @@ -23,8 +23,10 @@ EOF > exit 0 > } > > +ld_preload="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}" > args="" > file="" > +gdb="" > > function add_arg() { > arg=$1 > @@ -60,6 +62,14 @@ while true; do > add_arg "device=${1##--device=}" > shift > ;; > + --gdb) > + gdb=1 > + shift > + ;; > + -g) > + gdb=1 > + shift > + ;; > --help) > show_help > ;; > @@ -85,9 +95,12 @@ done > tmp_file=`mktemp` > echo -e $args > $tmp_file > > -LD_PRELOAD="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}" > \ > - INTEL_DUMP_GPU_CONFIG=$tmp_file \ > - $@ > +if [ -z $gdb ]; then > + LD_PRELOAD="$ld_preload" INTEL_DUMP_GPU_CONFIG=$tmp_file $@ > +else > + gdb -iex "set exec-wrapper env LD_PRELOAD=$ld_preload > INTEL_DUMP_GPU_CONFIG=$tmp_file" --args $@ > +fi > + > ret=$? > rm $tmp_file > exit $ret > -- > 2.18.0 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev