[DTrace-devel] [PATCH 4/5] trace: handle the empty string in a sensible way

Kris Van Hees kris.van.hees at oracle.com
Wed Aug 13 15:57:31 UTC 2025


The trace("") action would dump a series of 0x00 bytes (strsize of
them) rather than printing an empty string.  While that is the legacy
behaviour, it does not really make any sense to do so.  The trace
action is described as printing data as a string if possible, and a
block of 0-bytes can certainly be printed as an empty string.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
---
 libdtrace/dt_consume.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libdtrace/dt_consume.c b/libdtrace/dt_consume.c
index edfe5bbae..2dce69d6d 100644
--- a/libdtrace/dt_consume.c
+++ b/libdtrace/dt_consume.c
@@ -991,7 +991,7 @@ dt_print_bytes(dtrace_hdl_t *dtp, FILE *fp, caddr_t addr,
 		    c[i] == '\b' || c[i] == '\a')
 			continue;
 
-		if (c[i] == '\0' && i > 0) {
+		if (c[i] == '\0') {
 			/*
 			 * This looks like it might be a string.  Before we
 			 * assume that it is indeed a string, check the
-- 
2.45.2




More information about the DTrace-devel mailing list