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
> Signed-off-by: Lionel Landwerlin
Reviewed-by: Rafael Antognolli
> ---
> 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