[Mesa-dev] [PATCH v2] intel: tools: dump: protect against multiple calls on destructor

Rafael Antognolli rafael.antognolli at intel.com
Fri Jul 20 16:25:04 UTC 2018


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.antognolli at intel.com>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

Reviewed-by: Rafael Antognolli <rafael.antognolli at 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
> 


More information about the mesa-dev mailing list