The problem with passing the configuration of the dump lib through a file descriptor is that it can be read only once. But under gdb you might want to rerun your program multiple times.
This change hands the configuration through a temporary file that is deleted once the command line passes to intel_dump_gpu has exited. Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> --- src/intel/tools/intel_dump_gpu.c | 2 +- src/intel/tools/intel_dump_gpu.in | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/intel/tools/intel_dump_gpu.c b/src/intel/tools/intel_dump_gpu.c index 6ce7d452afb..1abe54147cf 100644 --- a/src/intel/tools/intel_dump_gpu.c +++ b/src/intel/tools/intel_dump_gpu.c @@ -349,7 +349,7 @@ maybe_init(void) initialized = true; - config = fdopen(3, "r"); + config = fopen(getenv("INTEL_DUMP_GPU_CONFIG"), "r"); while (fscanf(config, "%m[^=]=%m[^\n]\n", &key, &value) != EOF) { if (!strcmp(key, "verbose")) { if (!strcmp(value, "1")) { diff --git a/src/intel/tools/intel_dump_gpu.in b/src/intel/tools/intel_dump_gpu.in index 9eea37189db..0454cff25da 100755 --- a/src/intel/tools/intel_dump_gpu.in +++ b/src/intel/tools/intel_dump_gpu.in @@ -82,7 +82,12 @@ done [ -z $file ] && add_arg "file=intel.aub" +tmp_file=`mktemp` +echo -e $args > $tmp_file + LD_PRELOAD="@install_libexecdir@/libintel_dump_gpu.so${LD_PPRELOAD:+:$LD_PRELOAD}" \ - exec -- "$@" 3<<EOF -`echo -e $args` -EOF + INTEL_DUMP_GPU_CONFIG=$tmp_file \ + $@ +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