[Mesa-dev] [PATCH 1/2] intel: tools: dump: make dump tool reliable under gdb

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Jul 20 10:24:58 UTC 2018


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.landwerlin at 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



More information about the mesa-dev mailing list