[DTrace-devel] [PATCH 3/6] build: add gdb and valgrind support to the run-dtrace wrapper

Nick Alcock nick.alcock at oracle.com
Wed Apr 19 15:41:28 UTC 2023


Now, rather than having to mess around setting SYSLIBDIR and
LD_LIBRARY_PATH yourself to debug a just-built dtrace, you can
just run DTRACE_GDB=t build/run-dtrace or
DTRACE_VALGRIND=t build/run_dtrace

GDB is run with --args. Valgrind is run with no args other that the
just-built dtrace's for now.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
---
 cmd/Build | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/cmd/Build b/cmd/Build
index 644a3449d2ffc..b9c582a25ea8a 100644
--- a/cmd/Build
+++ b/cmd/Build
@@ -31,12 +31,18 @@ $(objdir)/run-dtrace: $(DTRACE)
 # run-dtrace -- A wrapper to run DTrace out of the build tree, or from /usr/sbin\n\
 #               if this is a check-installed run\n\
 \n\
-if [ -z \$$_DTRACE_CHECK_INSTALLED ]; then\n\
+if [[ -z \$$_DTRACE_CHECK_INSTALLED ]]; then\n\
     export DTRACE_OPT_SYSLIBDIR=$(objdir)/dlibs\n\
     export LD_LIBRARY_PATH=$(objdir)\n\
-    exec $(objdir)/dtrace \"\$$@\"\n\
+    if [[ -n \$$DTRACE_GDB ]]; then\n\
+        exec gdb --args /usr/sbin/dtrace \"\$$@\"\n\
+    elif [[ -n \$$DTRACE_VALGRIND ]]; then\n\
+        exec valgrind /usr/sbin/dtrace \"\$$@\"\n\
+    else\n\
+        exec $(objdir)/dtrace \"\$$@\"\n\
+    fi\n\
 else\n\
-    exec /usr/sbin/dtrace \"\$$@\"\n\
+        exec /usr/sbin/dtrace \"\$$@\"\n\
 fi\n"
 	chmod a+x $(objdir)/run-dtrace
 
-- 
2.39.1.268.g9de2f9a303




More information about the DTrace-devel mailing list