[DTrace-devel] [oracle/dtrace-utils] 308e99: cg, agg: fix alignment of key components

euloh noreply at github.com
Fri Oct 24 18:53:33 UTC 2025


  Branch: refs/heads/devel
  Home:   https://github.com/oracle/dtrace-utils
  Commit: 308e996c0c04d7e9b0b6c63559f36625040b155f
      https://github.com/oracle/dtrace-utils/commit/308e996c0c04d7e9b0b6c63559f36625040b155f
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-01 (Wed, 01 Oct 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    A test/unittest/aggs/tst.chararray-key.d
    A test/unittest/aggs/tst.chararray-key.r

  Log Message:
  -----------
  cg, agg: fix alignment of key components

Reported-by: Ruud van der Pas <ruud.vanderpas at oracle.com>
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 8c61bf213582be6a092a57ecee3bccf2ff9298c0
      https://github.com/oracle/dtrace-utils/commit/8c61bf213582be6a092a57ecee3bccf2ff9298c0
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    M libdtrace/dt_prov_proc.c
    A test/unittest/proc/tst.exec-execve.r
    A test/unittest/proc/tst.exec-execve.sh
    A test/unittest/proc/tst.exec-execveat.r
    A test/unittest/proc/tst.exec-execveat.sh

  Log Message:
  -----------
  Fix proc:::exec args[0]

Reported-by: Kris Van Hees <kris.van.hees at oracle.com>
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 7d659c9250d5c58c5e3ea0b7c7e0543f859b2ff5
      https://github.com/oracle/dtrace-utils/commit/7d659c9250d5c58c5e3ea0b7c7e0543f859b2ff5
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    M libdtrace/dt_impl.h
    M libdtrace/dt_lex.l

  Log Message:
  -----------
  parser: fix parser debugging yet again

The interaction between YYDEBUG and the yydebug extern variable has
changed repeatedly in the various iterations of flex and bison.  The one
thing that is consistent is that yydebug is not used if YYDEBUG is unset
or set to 0; if it's set to 1, the parser skeleton defines it for you.

So (now that -fno-common is on by default) dl_lex.l should not be
defining yydebug itself, and dt_impl.h should only be declaring it
extern if YYDEBUG is 1.

With this in place, we link and run with the parser debugger set to the
expected state when compiling with YYDEBUG 1, YYDEBUG 0, and YYDEBUG
unset.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: c9a90f92419a0da97f996c928882bf2803b0be2b
      https://github.com/oracle/dtrace-utils/commit/c9a90f92419a0da97f996c928882bf2803b0be2b
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    M libdtrace/dt_lex.l
    M libdtrace/dt_pcb.h

  Log Message:
  -----------
  lexer: the things inside an enum { ... } declaration are identifiers

The code in dt_lex.c:id_or_type() tries to figure out if something is an
identifier or not: if it cannot prove it is an identifier, it concludes
it must be a type name, which later triggers a search for said type (or
identifier) which eventually reaches (expensively) across the entire
kernel CTF.  Usually this is what we want, since we use type names that
actually reside in the kernel extensively and do not expect to have to
decorate all of them with `. But if this misfires bad things can happen.

In the case of enums, existing code in dt_decl.c checks for duplicate
identifiers, and carefully avoids considering code outside the C and D
dicts to be duplicates: but if id_or_type() concludes this enumerator is
probably a type name, we'll import the thing we find even if it's an
identifier, and then conflict. Enumerators cannot be type names, so this
must always be wrong (if we actually do put a type name in there,
dt_parser.c will correctly reject it no matter what the lexer says).

So add yet another piece of parser context identifying when we are
inside the { } in an enum (we set it to 1 when the enum is seen, then
bump it when the braces are seen, so if it's 2 we are in the relevant
context; it is reset to 0 on every ;), then use that to forcibly declare
everything seen inside enums an identifier without trying to chase it
down

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 967cb6cbcf0dff3e95c63c1e12a9283b25930e32
      https://github.com/oracle/dtrace-utils/commit/967cb6cbcf0dff3e95c63c1e12a9283b25930e32
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    A test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d
    A test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r
    A test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r.p
    A test/unittest/enum/err.D_SYNTAX.RepeatTypeNames.d
    R test/unittest/enum/err.D_UNKNOWN.RepeatIdentifiers.d
    R test/unittest/enum/err.D_UNKNOWN.RepeatIdentifiers.r
    R test/unittest/enum/err.D_UNKNOWN.RepeatIdentifiers.r.p
    A test/unittest/enum/tst.EnumKernelDup.d
    A test/unittest/enum/tst.EnumKernelDup.r
    A test/unittest/types/err.D_DECL_IDRED.dupenum.d
    A test/unittest/types/err.D_DECL_IDRED.dupenum.r
    A test/unittest/types/err.D_DECL_IDRED.dupenum.r.p
    R test/unittest/types/err.D_UNKNOWN.dupenum.d
    R test/unittest/types/err.D_UNKNOWN.dupenum.r
    R test/unittest/types/err.D_UNKNOWN.dupenum.r.p

  Log Message:
  -----------
  test: enum tests

A couple of new tests verifying that type names appearing in enums are
forbidden, as well as that kernel-visible identifiers are permitted;
and a renaming of the D_UNKNOWN tests now that libctf can be assumed
to be everywhere and it's probably more common to have a libctf that
emits a good description of this failure than the converse.

(The previous commit changes the error messages in this case back to
what they used to be in the old days, too.)

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 5390cb838f4334f612160082b38cdb4a52e393d8
      https://github.com/oracle/dtrace-utils/commit/5390cb838f4334f612160082b38cdb4a52e393d8
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    M test/unittest/usdt/tst.exec-dof-replacement.sh

  Log Message:
  -----------
  test: fix test failure when no /usr/sbin/dtrace exists

A missing $ led to this test spuriously failing in this case.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 11f0cdcd525a846c35ce421499d19583aeb81461
      https://github.com/oracle/dtrace-utils/commit/11f0cdcd525a846c35ce421499d19583aeb81461
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-02 (Thu, 02 Oct 2025)

  Changed paths:
    M include/bpf_asm.h
    M libdtrace/dt_cg.c

  Log Message:
  -----------
  cg: fix masking of lower 32 bits

The "and %r0, 0xffffffff' instruction does not actually mask off the
lower 32 bits as one would expect because 0xffffffff is interpreted as
-1 and then sign-extended to a 64-bit value, i.e. keeping all bits.

The "mov32 %r0, %r0" instruction does correctly mask off the lower 32
bits because it forced the value in %r0 to be a 32-bit value.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 1c8cefdcf2f8191b6640c5095729fb7188df89fd
      https://github.com/oracle/dtrace-utils/commit/1c8cefdcf2f8191b6640c5095729fb7188df89fd
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M test/unittest/actions/return/err.not_allowed-1.d
    M test/unittest/actions/return/err.not_allowed-1.r
    A test/unittest/actions/return/err.not_allowed-1.r.p
    M test/unittest/actions/return/err.not_allowed-2.d
    M test/unittest/actions/return/err.not_allowed-2.r
    M test/unittest/actions/return/err.not_allowed-3.d
    M test/unittest/actions/return/err.not_allowed-3.r

  Log Message:
  -----------
  test: Use a more ubiquitous probe for return()-action tests

In commit ee2bd3465
("test: Use a more ubiquitous probe for return()-action tests"),
rawfbt probes are named in some tests, but they do not exist for
some kernels.  Switch to more ubiquitous probes, since the details
of the probe largely do not matter.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: d0fdeec5018bf69c12eadb065176e38f2804c174
      https://github.com/oracle/dtrace-utils/commit/d0fdeec5018bf69c12eadb065176e38f2804c174
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    R test/unittest/variables/bvar/tst.ustackdepth2.r
    A test/unittest/variables/bvar/tst.ustackdepth2.r
    M test/unittest/variables/bvar/tst.ustackdepth2.r.p
    R test/unittest/variables/bvar/tst.ustackdepth_big.r
    R test/unittest/variables/bvar/tst.ustackdepth_big.r.p
    M test/unittest/variables/bvar/tst.ustackdepth_big.sh

  Log Message:
  -----------
  test: Fix some ustackdepth tests

Fix these issues.

Issue 1.

In commit e48bf6a23 ("Add support for built-in variable ustackdepth"),
tests ustackdepth2 and ustackdepth_big were introduced and their .r and
.r.p files were links to those of the stackdepth2 test.

In commit 842eabc0e
("test: caller and stackdepth tests for fbt provider"), the stackdepth2
test was explicitly renamed "fbt" since tests for many providers were
being introduced.  The links of the earlier patch were not updated.

Issue 2.

The ustackdepth_big test modified perf_event_max_stack.  If the test
were interrupted, the value was not restored.

Issue 3.

That ustackdepth_big test only checked that the stackdepth was
consistent with the reported stack.  While this check is good, it missed
the point of the test, which is that the system limit could be
increased.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: a694a917b3d5d2532b7dce9bebcbdd481b9df40c
      https://github.com/oracle/dtrace-utils/commit/a694a917b3d5d2532b7dce9bebcbdd481b9df40c
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M test/triggers/ustack-tst-bigstack.c

  Log Message:
  -----------
  test: Fix antiquated reference to dtrace_ustackdepth_max

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 877fcdeb25b370be182d51f27fb4bd8e4f739fb1
      https://github.com/oracle/dtrace-utils/commit/877fcdeb25b370be182d51f27fb4bd8e4f739fb1
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M test/triggers/Build
    R test/unittest/ustack/tst.bigstack.aarch64.x

  Log Message:
  -----------
  test: Remove antiquated special case for aarch64

Also, add some compilation flags while we are at it.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 2f6407bb70907c37f5e99dfc04db8ef17e8996dc
      https://github.com/oracle/dtrace-utils/commit/2f6407bb70907c37f5e99dfc04db8ef17e8996dc
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M include/dtrace/actions_defines.h
    M libdtrace/dt_cg.c
    M libdtrace/dt_consume.c
    M libdtrace/dt_impl.h
    M libdtrace/dt_printf.c
    M libdtrace/dt_printf.h

  Log Message:
  -----------
  Unify the handling of stack traces in the consumer

Distinguishing between kernel stacks and userspace stacks was done
based on the action id, even when used outside of action context
(i.e. in aggregation keys).  That is far from ideal.

Encode the stack type along with the nframes and strsize values in
the  data record description argument for stack() and ustack()
records.

The macros for managing that argument are moved to dt_impl.h since
they are internal to the DTrace implementation.

All printing of stack traces is now consolidated in dt_printf.c as
well.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: d32e526203677acfd29ac447bf85a17f4141787d
      https://github.com/oracle/dtrace-utils/commit/d32e526203677acfd29ac447bf85a17f4141787d
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M include/dtrace/dif_defines.h
    M libdtrace/dt_cg.c
    M libdtrace/dt_dctx.h
    M libdtrace/dt_open.c
    M libdtrace/dt_options.c
    M libdtrace/dt_printf.c
    M test/unittest/funcs/tst.subr.d
    M test/unittest/printa/err.D_PRINTF_ARG_TYPE.stack.r
    M test/unittest/printa/err.D_PRINTF_ARG_TYPE.ustack.r

  Log Message:
  -----------
  cg: transition [u]stack() from action to subroutine

In order to allow [u]stack() to be used in expressions, they must be
subroutines.  An exception is added to allow them to retain their
original behaviour as data recording actions as well.

The implementation change requires a new internal type to be defined
(dt_stack) to hold stack trace data.

This patch does not allow [u]stack() to be used in assignments to
variables just yet, but it supports all previous uses of [u]stack().
Additional functionality will be added on top of this.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 280162e4205472cff19778468ca81c83b3a55b24
      https://github.com/oracle/dtrace-utils/commit/280162e4205472cff19778468ca81c83b3a55b24
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-03 (Fri, 03 Oct 2025)

  Changed paths:
    M libdtrace/dt_impl.h
    M libdtrace/dt_open.c
    M libdtrace/dt_options.c
    A test/unittest/options/err.jstackframes-negative.d
    A test/unittest/options/err.jstackframes-too-high.sh
    A test/unittest/options/err.maxframes-negative.d
    A test/unittest/options/err.maxframes-too-high.sh
    A test/unittest/options/err.stackframes-negative.d
    A test/unittest/options/err.stackframes-too-high.sh
    A test/unittest/options/err.ustackframes-negative.d
    A test/unittest/options/err.ustackframes-too-high.sh

  Log Message:
  -----------
  options: check *frames option values against system limit

Commit 81e99397d ("Add support for the stack() action") added code to
retrieve the system limit for stack traces and used that value to set
the 'maxframes' option.

However, a user can set the 'maxframes' option from the command line,
which would allow setting the option to value beyond the system limit.

We now record the system limit in dtrace_hdl_t as well as setting the
'maxframes' option to this value as a default.  Options processing now
ensures that *frames options cannot be set beyond the system limit.

Note: If 'stackframes', 'ustackframes', or 'jstackframes' are set
before 'maxframes' they could be given a value that exceeds 'maxframes'.
The existing immplementation in the code generator already lowers their
value to 'maxframes' as needed.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 17efd07d1344688551289b11fe83ea5600aa5cc1
      https://github.com/oracle/dtrace-utils/commit/17efd07d1344688551289b11fe83ea5600aa5cc1
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-08 (Wed, 08 Oct 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_dctx.h
    M libdtrace/dt_impl.h
    M libdtrace/dt_open.c
    M libdtrace/dt_parser.c
    M libdtrace/dt_printf.c
    A test/unittest/funcs/stack/err.corrupted-data.d
    A test/unittest/funcs/stack/err.corrupted-data.r
    A test/unittest/funcs/stack/err.store-to-stack.d
    A test/unittest/funcs/stack/err.store-to-stack.r
    A test/unittest/funcs/stack/tst.asgn_dvar.d
    A test/unittest/funcs/stack/tst.asgn_dvar.r
    A test/unittest/funcs/stack/tst.asgn_dvar.r.p
    A test/unittest/funcs/stack/tst.asgn_gvar.d
    A test/unittest/funcs/stack/tst.asgn_gvar.r
    A test/unittest/funcs/stack/tst.asgn_gvar.r.p
    A test/unittest/funcs/stack/tst.asgn_lvar.d
    A test/unittest/funcs/stack/tst.asgn_lvar.r
    A test/unittest/funcs/stack/tst.asgn_lvar.r.p
    A test/unittest/funcs/stack/tst.asgn_tvar.d
    A test/unittest/funcs/stack/tst.asgn_tvar.r
    A test/unittest/funcs/stack/tst.asgn_tvar.r.p
    A test/unittest/funcs/stack/tst.ref_addrs.d
    A test/unittest/funcs/stack/tst.ref_addrs.r
    A test/unittest/funcs/stack/tst.ref_depth.d
    A test/unittest/funcs/stack/tst.ref_depth.r
    A test/unittest/funcs/stack/tst.ref_is_user.d
    A test/unittest/funcs/stack/tst.ref_is_user.r
    A test/unittest/funcs/stack/tst.ref_pid.d
    A test/unittest/funcs/stack/tst.ref_pid.r
    A test/unittest/funcs/stack/tst.ref_strsz.d
    A test/unittest/funcs/stack/tst.ref_strsz.r
    A test/unittest/funcs/stack/tst.store.d
    A test/unittest/funcs/stack/tst.store.r
    A test/unittest/funcs/stack/tst.store.r.p
    A test/unittest/funcs/ustack/err.corrupted-data.d
    A test/unittest/funcs/ustack/err.corrupted-data.r
    A test/unittest/funcs/ustack/err.store-to-stack.d
    A test/unittest/funcs/ustack/err.store-to-stack.r
    A test/unittest/funcs/ustack/tst.asgn_dvar.d
    A test/unittest/funcs/ustack/tst.asgn_dvar.r
    A test/unittest/funcs/ustack/tst.asgn_dvar.r.p
    A test/unittest/funcs/ustack/tst.asgn_gvar.d
    A test/unittest/funcs/ustack/tst.asgn_gvar.r
    A test/unittest/funcs/ustack/tst.asgn_gvar.r.p
    A test/unittest/funcs/ustack/tst.asgn_lvar.d
    A test/unittest/funcs/ustack/tst.asgn_lvar.r
    A test/unittest/funcs/ustack/tst.asgn_lvar.r.p
    A test/unittest/funcs/ustack/tst.asgn_tvar.d
    A test/unittest/funcs/ustack/tst.asgn_tvar.r
    A test/unittest/funcs/ustack/tst.asgn_tvar.r.p
    A test/unittest/funcs/ustack/tst.ref_addrs.d
    A test/unittest/funcs/ustack/tst.ref_addrs.r
    A test/unittest/funcs/ustack/tst.ref_depth.d
    A test/unittest/funcs/ustack/tst.ref_depth.r
    A test/unittest/funcs/ustack/tst.ref_is_user.d
    A test/unittest/funcs/ustack/tst.ref_is_user.r
    A test/unittest/funcs/ustack/tst.ref_pid.d
    A test/unittest/funcs/ustack/tst.ref_strsz.d
    A test/unittest/funcs/ustack/tst.ref_strsz.r
    A test/unittest/funcs/ustack/tst.store.d
    A test/unittest/funcs/ustack/tst.store.r
    A test/unittest/funcs/ustack/tst.store.r.p
    M test/unittest/printa/err.D_PRINTF_ARG_TYPE.stack.r
    M test/unittest/printa/err.D_PRINTF_ARG_TYPE.ustack.r
    A test/unittest/printf/tst.stack.d
    A test/unittest/printf/tst.stack.r
    A test/unittest/printf/tst.stack.r.p
    A test/unittest/printf/tst.ustack25_pid.d
    A test/unittest/printf/tst.ustack25_pid.r
    A test/unittest/printf/tst.ustack25_pid.r.p

  Log Message:
  -----------
  cg, printf: allow storing [u]stack() into vars and printf using %k

To support storing [u]stack() values in variables and as arguments for
printf(), a type definition is introduced:

	typedef struct dt_stack {
		uint32_t	frames;
		uint32_t	strsz;	  // optional string blob size
		uint32_t	is_user	  // > 0 if userspace stack trace
		uint32_t	pid;	  // process id (or 0 for kernel)
		uint64_t	addrs[n]; // stack trace addresses
	} dt_stack_t;

where 'n' is the maximum number of frames that can be retrieved (set
with the 'maxframes' option).

Since dt_stack_t needs to be known early enough to define stack(),
jstack(), and ustack(), it is defined in two stages.  First dt_stack_t
is defined as a typedef for struct dt_stack, and once options have been
processed, struct dt_stack is finalized.

Once the value of a stack has been assigned to a variable, it can be
accessed as a regular struct (*not* a pointer to a struct).
Modification is also possible, and safety checks are performed to ensure
that such modifications do not cause crashes in the consumer.

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 83852f661d4b7d90dcb5430eb8cda1ffcf4fac35
      https://github.com/oracle/dtrace-utils/commit/83852f661d4b7d90dcb5430eb8cda1ffcf4fac35
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M include/dtrace/pid.h
    M libdtrace/dt_bpf.c
    M libdtrace/dt_pid.c
    M libdtrace/dt_probe.h
    M libdtrace/dt_prov_uprobe.c
    A test/unittest/pid/err.opt_after_needed.aarch64.x
    A test/unittest/pid/err.opt_after_needed.sh
    A test/unittest/pid/err.opt_after_needed.x86_64.x
    A test/unittest/pid/err.opt_before_needed.aarch64.x
    A test/unittest/pid/err.opt_before_needed.sh
    A test/unittest/pid/err.opt_before_needed.x86_64.x
    A test/unittest/pid/err.optional.aarch64.x
    A test/unittest/pid/err.optional.sh
    A test/unittest/pid/err.optional.x86_64.x
    M test/unittest/pid/tst.entry_off0.sh

  Log Message:
  -----------
  Allow probes not to attach if they were not "needed"

Various kernels prevent the placement of uprobes on particular
instructions -- e.g., on x86 on hlt or multi-byte nops, or on aarch64 on
autiasp.  This means, for example, that one cannot place a pid probe on
every possible instruction.  If a user explicitly places a probe on a
forbidden instruction, an error message indicates there is a problem.

On the other hand, if the user specifies a wildcard in a pid probe
name, we should skip instructions where no uprobe can be placed.

The problem is that we do not find out an instruction is problematic
until we try to attach, which is long after probe descriptions have been
processed.  And when we walk probe descriptions, we do not have
information about which kernels and instructions are problematic.

The motivating problem pertains to pid probes, but we would like
a provider-agnostic solution.

Set an "OPTIONAL" probe flag when a probe is not needed:

* In dt_probe.h, DT_PROBE_FLAG_OPTIONAL is used for the "flags"
  member of dt_probe_t.

* For pid-style probes (including USDT and stapsdt), in
  include/dtrace/pid.h, DT_PID_PSP_FLAG_OPTIONAL is used for
  the pps_flags member of pid_probespec_t.

Remove the old check on "hlt" instructions, since it was not sufficiently
general for other kernels and other problematic instructions.

Existing tests that expose the problem are

    test/unittest/pid/tst.coverage.d
    test/unittest/pid/tst.emptystack.d
    test/unittest/pid/tst.entry_off0.sh
        hlt instruction on x86

    test/unittest/pid/tst.float.d
        multi-byte nop on x86 on newer platforms

    test/unittest/pid/tst.entry_off0.sh
        autiasp instruction on aarch64 on newer platforms
        depending on how the trigger process was built

New tests are added to check that a probe set explicitly on a
problematic instruction will still lead to an error, even if a
probe description before or after it tolerates attach failure.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 95982c4c39a36f91c387aba3a944ba10018b0298
      https://github.com/oracle/dtrace-utils/commit/95982c4c39a36f91c387aba3a944ba10018b0298
  Author: Elena Zannoni <elena.zannoni at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M Build

  Log Message:
  -----------
  Add examples directory to installed doc directory

Make sure that the examples directory gets installed.
It will be installed under /usr/share/doc/dtrace/examples.

Signed-off-by: Elena Zannoni <elena.zannoni at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: d146c0033c59e4a5fdcc6079b43ae8ce5162d2d1
      https://github.com/oracle/dtrace-utils/commit/d146c0033c59e4a5fdcc6079b43ae8ce5162d2d1
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M dlibs/aarch64/5.11/net.d
    M dlibs/aarch64/5.12/net.d
    M dlibs/aarch64/5.14/net.d
    M dlibs/aarch64/5.16/net.d
    M dlibs/aarch64/5.2/net.d
    M dlibs/aarch64/5.6/net.d
    M dlibs/aarch64/6.1/net.d
    M dlibs/aarch64/6.10/net.d
    M dlibs/x86_64/5.11/net.d
    M dlibs/x86_64/5.12/net.d
    M dlibs/x86_64/5.14/net.d
    M dlibs/x86_64/5.16/net.d
    M dlibs/x86_64/5.2/net.d
    M dlibs/x86_64/5.6/net.d
    M dlibs/x86_64/6.1/net.d
    M dlibs/x86_64/6.10/net.d
    M libdtrace/net.d

  Log Message:
  -----------
  Fix comment since pkt_addr is not NULL

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 7589be16adf01d6082132a714205dad00c2c37af
      https://github.com/oracle/dtrace-utils/commit/7589be16adf01d6082132a714205dad00c2c37af
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/unittest/aggs/tst.chararray-key.d

  Log Message:
  -----------
  test: Turn char[16] into string to ignore garbage bytes

In commit 308e996c0 ("cg, agg: fix alignment of key components"), a new
test test/unittest/aggs/tst.chararray-key.d used a char[16] as an agg key.
The problem is that the char array, curpsinfo->pr_fname, could have
garbage bytes after the first NUL byte, polluting test output.

Since we do not care about any such garbage bytes, convert to a string.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 8514c49fe5753c315e2292a8310ae328743b7082
      https://github.com/oracle/dtrace-utils/commit/8514c49fe5753c315e2292a8310ae328743b7082
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/unittest/proc/tst.exec-execveat.sh

  Log Message:
  -----------
  test: Use syscall in case of no execveat() wrapper

While execveat() appeared in kernel 3.19, GNU C library support
came later.  We are still testing on some systems with older libc.

Do not assume libc has an execveat() wrapper:  use syscall().

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 4bbff3432285f8441928fab39e87c5d300e5d2ac
      https://github.com/oracle/dtrace-utils/commit/4bbff3432285f8441928fab39e87c5d300e5d2ac
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/unittest/fbtprovider/tst.return0.d
    M test/unittest/fbtprovider/tst.return0.r
    M test/unittest/providers/rawfbt/tst.return0.d
    M test/unittest/providers/rawfbt/tst.return0.r

  Log Message:
  -----------
  test: fbt return0: work on quiet systems

These two tests probe on sys_poll and just hope something calls it.
On sufficiently quiet systems, nothing does.

Use hrtimer_nanosleep instead.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: f871e903aff16e028ce26b29329978379d1e49c1
      https://github.com/oracle/dtrace-utils/commit/f871e903aff16e028ce26b29329978379d1e49c1
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/triggers/io-mount-nfs.sh
    M test/unittest/io/tst.nfs2.sh

  Log Message:
  -----------
  test: nfs: don't require a locking daemon

On modern (NFSv4) systems, there is no guarantee that statd is running,
and indeed it has probably been explicitly turned off (unless writable
NFSv3 exports exist).  This causes mount-time warnings that trigger test
failures unless we disable locking.

No DTrace NFS tests need locking, so disable it.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: f4356872853de232f0d960798718d98059e5f491
      https://github.com/oracle/dtrace-utils/commit/f4356872853de232f0d960798718d98059e5f491
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    A test/unittest/preprocessor/err.defincomp.r.p
    A test/unittest/preprocessor/err.ifdefincomp.r.p
    A test/unittest/preprocessor/err.incompelse.r.p
    A test/unittest/preprocessor/err.mulelse.r.p

  Log Message:
  -----------
  test: preprocessor: work on GCC 16

GCC commit c397a8c12296b75a91ae51e4889debf023e6c338 ("libcpp, genmatch:
Use gcc_diag instead of printf for libcpp diagnostics") made libcpp
quote identifiers and tokens in diagnostics like the rest of GCC does.
We have several tests that rely on the old error formatting: sed away
quotes and smartquotes into quotes or nothing (as appropriate to match
older GCCs), until such time as GCC 15 is obsolete (a long long time
away).

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: bdc487dd7bfcec35b99741b090b55e8bb5ac823e
      https://github.com/oracle/dtrace-utils/commit/bdc487dd7bfcec35b99741b090b55e8bb5ac823e
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/unittest/builtinvar/tst.tid_pid.sh

  Log Message:
  -----------
  test: tid_pid: don't assume the type of pthread_t

GCC 16 warns about this mismatch.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 49e64618322345f7220dc7187a7349fd30964c92
      https://github.com/oracle/dtrace-utils/commit/49e64618322345f7220dc7187a7349fd30964c92
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/unittest/types/err.D_UNKNOWN.dupstruct.r
    M test/utils/libctf.r.p

  Log Message:
  -----------
  test: dupstruct: fix extra duplicate identifier case

We were failing to handle one case where duplicate members or variables
are now reported as duplicate members, enumerators, or variables.
(It was concealed inside an .r.p.)

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 944dac09592b53b5214b5f6978204da4b44fff9d
      https://github.com/oracle/dtrace-utils/commit/944dac09592b53b5214b5f6978204da4b44fff9d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    R test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d
    R test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r
    R test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r.p
    A test/unittest/enum/err.RepeatIdentifiers.d
    A test/unittest/enum/err.RepeatIdentifiers.r
    A test/unittest/enum/err.RepeatIdentifiers.r.p
    R test/unittest/types/err.D_DECL_IDRED.dupenum.d
    R test/unittest/types/err.D_DECL_IDRED.dupenum.r
    R test/unittest/types/err.D_DECL_IDRED.dupenum.r.p
    A test/unittest/types/err.dupenum.d
    A test/unittest/types/err.dupenum.r
    A test/unittest/types/err.dupenum.r.p
    M test/utils/libctf.r.p

  Log Message:
  -----------
  test: Account for variations in error messages

Clearly,
    test/unittest/enum/err.*RepeatIdentifiers.d
    test/unittest/types/err.*dupenum.d
are impacted, but so are
    test/unittest/offsetof/err.D_UNKNOWN.OffsetofNULL.d
    test/unittest/types/err.D_UNKNOWN.dupstruct.d
    test/unittest/union/err.D_DECL_INCOMPLETE.circular.d
    test/unittest/union/err.D_DECL_INCOMPLETE.order.d
    test/unittest/union/err.D_DECL_INCOMPLETE.simple.d
due to symlinks to libctf.r.p.  And dupstruct needed a fix.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: bf23642faa29e212b114063f2e43f713ae54cc28
      https://github.com/oracle/dtrace-utils/commit/bf23642faa29e212b114063f2e43f713ae54cc28
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-09 (Thu, 09 Oct 2025)

  Changed paths:
    M test/stress/fbtsafety/tst.index.d
    M test/stress/fbtsafety/tst.strjoin.d
    M test/stress/fbtsafety/tst.strstr.d
    M test/stress/fbtsafety/tst.strtok.d
    M test/stress/fbtsafety/tst.substr.d
    M test/unittest/variables/bvar/tst.vtimestamp.d

  Log Message:
  -----------
  test: Modify fbtsafety tests that use vtimestamp unnecessarily

Currently, we do not implement vtimestamp.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: d0e1453a68042a4b80f645ff791bae658da68d1f
      https://github.com/oracle/dtrace-utils/commit/d0e1453a68042a4b80f645ff791bae658da68d1f
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-13 (Mon, 13 Oct 2025)

  Changed paths:
    M test/unittest/variables/bvar/tst.ustackdepth_big.sh

  Log Message:
  -----------
  test: Account for large stack-limit kernel parameter

In commit d0fdeec50 ("test: Fix some ustackdepth tests"), the test was
tweaked to check that the full stack would be recovered if the kernel
stack-limit parameter were increased from a default 127 to greater than
about 190 frames.  But this does not work if the system already has
reset the kernel parameter to a high value.

Change the test to deliberately try a "too small" and a "big enough"
value -- again, ultimately restoring the original value.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 29c01a51963c7773298f36eca9e7622a495b4bdb
      https://github.com/oracle/dtrace-utils/commit/29c01a51963c7773298f36eca9e7622a495b4bdb
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-13 (Mon, 13 Oct 2025)

  Changed paths:
    M test/utils/libctf.r.p

  Log Message:
  -----------
  test: Account again for variations in error messages

In commit 944dac095 ("test: Account for variations in error messages"),
an attempt was made to account for variations in error messages.

However, it was applied to the branch after commit 49e646183
("test: dupstruct: fix extra duplicate identifier case"), and conflict
resolution was not consistent.  The earlier patch "standardized"
messages by applying an optional "enumerator" where that label was
missing;  the subsequent patch did the opposite.  Subsequently, some
logic got messed up.

Fix up the logic.  In particular, standardize on the newer error
message (with the "enumerator" label).

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 44570eac499ab824035ef2d778e405089c98f833
      https://github.com/oracle/dtrace-utils/commit/44570eac499ab824035ef2d778e405089c98f833
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-15 (Wed, 15 Oct 2025)

  Changed paths:
    M libdtrace/dt_open.c
    A test/unittest/misc/tst.lockmem-init.r
    A test/unittest/misc/tst.lockmem-init.sh

  Log Message:
  -----------
  Set lockmem limit before checking BPF helper functions

In dtrace_init(), we set the locked-memory limit, either to the
user-specified value (if any) or to unlimited (by default).  We also check
to make sure that certain BPF helper functions are available, falling
over to alternatives or indicating they are not available in case of
problems.

It is possible, however, that the limit is too low when dtrace starts,
causing problems with the helper-function tests before dtrace_init()
even has a chance to reset the limit.

Switch the order to set the limit before checking the helper functions.

A test is added.  The underlying problem, however, depends on kernel
version, how locked memory is handled, the behavior of fallback
functions, and so on.  So the test could easily pass on some systems
even if the fix is not employed.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: d1f678e51183befe166483cbdfbfd5f0a4ff7474
      https://github.com/oracle/dtrace-utils/commit/d1f678e51183befe166483cbdfbfd5f0a4ff7474
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-10-16 (Thu, 16 Oct 2025)

  Changed paths:
    A test/unittest/actions/return/err.destructive.x
    A test/unittest/actions/return/tst.destructive.x
    A test/unittest/actions/return/tst.override-getpid-entry.x
    A test/unittest/actions/return/tst.override-getpid-return.x

  Log Message:
  -----------
  test: skip D return() action for kernels without support

Most of the err.* tests can still be run, since they test other failure
modes.

Suggested-by: Eugene Loh <eugene.loh at oracle.com>
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: fc233fa58e970da0b05ffd62e0dcc87cdf7fb74f
      https://github.com/oracle/dtrace-utils/commit/fc233fa58e970da0b05ffd62e0dcc87cdf7fb74f
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-19 (Sun, 19 Oct 2025)

  Changed paths:
    M test/unittest/proc/tst.exec-execve.sh
    M test/unittest/proc/tst.exec-execveat.sh

  Log Message:
  -----------
  test: Use copyinstr to copy string from user space

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 3c4deea2e4169b04b34e42c0f97ae2ea7569bf18
      https://github.com/oracle/dtrace-utils/commit/3c4deea2e4169b04b34e42c0f97ae2ea7569bf18
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-19 (Sun, 19 Oct 2025)

  Changed paths:
    A examples/getting-started/activity.d
    A examples/getting-started/activity1.d
    A examples/getting-started/calltrace.d
    A examples/getting-started/countcalls.d
    A examples/getting-started/countprogs.d
    A examples/getting-started/countsyscalls.d
    A examples/getting-started/cswpercpu.d
    A examples/getting-started/daterun.d
    A examples/getting-started/diskact.d
    A examples/getting-started/errno.d
    A examples/getting-started/errno1.d
    A examples/getting-started/execcalls.d
    A examples/getting-started/fsact.sh
    A examples/getting-started/goodbye.d
    A examples/getting-started/hello.d
    A examples/getting-started/readsizes.d
    A examples/getting-started/readtrace.d
    A examples/getting-started/readtrace1.d
    A examples/getting-started/rwdiskact.d
    A examples/getting-started/syscalls.d
    A examples/getting-started/syscalls1.d
    A examples/getting-started/tick.d
    A examples/getting-started/tick1.d
    A examples/getting-started/wrun.d

  Log Message:
  -----------
  examples: add a new set of scripts

This is a set of new example scripts.  These are basic programs to
demonstrate specific functionality.  For example to get an overview
of system calls executed, processes running, I/O statistics, etc.
There is also an example of a D script embedded in a shell script.

Signed-off-by: Ruud van der Pas <ruud.vanderpas at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 04690b50873887bbc5f992f78ad3d73a7a43ea18
      https://github.com/oracle/dtrace-utils/commit/04690b50873887bbc5f992f78ad3d73a7a43ea18
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-20 (Mon, 20 Oct 2025)

  Changed paths:
    A test/unittest/stack/tst.stack_fbt.r
    M test/unittest/stack/tst.stack_fbt.sh

  Log Message:
  -----------
  test: Clean up stack_fbt test

The idea behind the test is to check the stack() output for some fbt
probe for specific expected frames.  An attempt was made to specify the
exact stack that was expected, but there are too many variations among
kernel versions and so maintaining the test was difficult.  Loosen the
test to check for only a few expected frames.

The test was also checking that stack()'s first 3 frames matched
stack(3), but such a test is already provided by, for example,
    test/unittest/printf/tst.stack.d
    test/unittest/stack/tst.stack.d
So, drop the stack(3) stuff.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 4ff7a4c8c529c2dd10a26a958a8d8c22d426aca6
      https://github.com/oracle/dtrace-utils/commit/4ff7a4c8c529c2dd10a26a958a8d8c22d426aca6
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-20 (Mon, 20 Oct 2025)

  Changed paths:
    M test/unittest/cpc/tst.branches.x
    M test/unittest/cpc/tst.instructions.x
    M test/utils/cpc_get_events.sh
    M test/utils/perf_count_event.sh

  Log Message:
  -----------
  test: Use /usr/bin/perf for perf

The testsuite package has a dependency on the perf package.  But that
package installs perf in /usr/bin.  Meanwhile, there is a /sbin/perf,
which is likely to appear earlier in the search path for dtrace users.
That perf is a wrapper for an executable that might not exist, causing
some silent, unexpected behaviors with the test suite.

Change references to "perf" to be explicitly "/usr/bin/perf".

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 9dbd6228ad64985f4d44c10693d27e7d4c349704
      https://github.com/oracle/dtrace-utils/commit/9dbd6228ad64985f4d44c10693d27e7d4c349704
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-23 (Thu, 23 Oct 2025)

  Changed paths:
    M doc/userguide/reference/function_stack.md
    M doc/userguide/reference/function_ustack.md

  Log Message:
  -----------
  doc: Add rudimentary documentation for using [u]stack as a value

While we are at it, break up some of the super long source lines for
future maintainability of these files.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 859c927afca6240cfd7aebadfd4ff061c34c4b9d
      https://github.com/oracle/dtrace-utils/commit/859c927afca6240cfd7aebadfd4ff061c34c4b9d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_providers_sched.md

  Log Message:
  -----------
  doc: Add a space

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: bf2304bf3b800a8553585824626433dc35901718
      https://github.com/oracle/dtrace-utils/commit/bf2304bf3b800a8553585824626433dc35901718
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_providers_cpc.md

  Log Message:
  -----------
  doc: Add separator lines to cpc Markdown tables

Separator lines are needed so that Markdown renderers recognize that the
associated text should be rendered as a table.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 14c61dc3b5b3e6b60aa4486da69aaa0d6289c639
      https://github.com/oracle/dtrace-utils/commit/14c61dc3b5b3e6b60aa4486da69aaa0d6289c639
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_providers_cpc.md
    M doc/userguide/reference/dtrace_providers_dtrace.md
    M doc/userguide/reference/dtrace_providers_fbt.md
    M doc/userguide/reference/dtrace_providers_io.md
    M doc/userguide/reference/dtrace_providers_lockstat.md
    M doc/userguide/reference/dtrace_providers_pid.md
    M doc/userguide/reference/dtrace_providers_proc.md
    M doc/userguide/reference/dtrace_providers_profile.md
    M doc/userguide/reference/dtrace_providers_rawtp.md
    M doc/userguide/reference/dtrace_providers_sched.md
    M doc/userguide/reference/dtrace_providers_sdt.md
    M doc/userguide/reference/dtrace_providers_syscall.md

  Log Message:
  -----------
  doc: Convert stability attribute tables to Markdown for readability

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: a3ce0e4e220f20dc1791fcca16fa1819b2ca7cdd
      https://github.com/oracle/dtrace-utils/commit/a3ce0e4e220f20dc1791fcca16fa1819b2ca7cdd
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_builtin_variable_reference.md

  Log Message:
  -----------
  doc: Replace duplicate id

The id has already been defined above.  Replace the second definition.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: f16698075280375e8d5359e4c95851ca6ebb41a9
      https://github.com/oracle/dtrace-utils/commit/f16698075280375e8d5359e4c95851ca6ebb41a9
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/explanation/dtrace-components-and-terminology.md
    M doc/userguide/explanation/dtrace-concepts.md
    M doc/userguide/how-to/dtrace-guide.md
    M doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
    M doc/userguide/reference/d_program_syntax_reference.md
    M doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
    M doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
    M doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
    M doc/userguide/reference/dtrace-ref-Variables.md
    M doc/userguide/reference/dtrace_builtin_variable_reference.md
    M doc/userguide/reference/dtrace_command_reference.md
    M doc/userguide/reference/dtrace_providers.md
    M doc/userguide/reference/dtrace_providers_proc.md
    M doc/userguide/reference/dtrace_providers_sched.md
    M doc/userguide/reference/dtrace_runtime_options.md

  Log Message:
  -----------
  doc: Clean up dangling anchor links

Links within the User Guide can point to specific anchor tags within a
page by appending '#' to the page in the link.  A number of links have
the '#' but no tag.  That's okay, but tidy them up for a cleaner look.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: bbc780d589d1a7d70c60cec03c7a0264412ab3ca
      https://github.com/oracle/dtrace-utils/commit/bbc780d589d1a7d70c60cec03c7a0264412ab3ca
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_builtin_variable_reference.md

  Log Message:
  -----------
  doc: Fix anchor links for built-in variables

Anchor links (links pointing to specific locations within files) are
broken, at least for viewing the Markdown version of the DTrace User
Guide on github from common browsers, in at least two respects:

*)  The arcane ID names are displayed at the anchor sites.

*)  The links do not point to the specific locations within the files.

The problem is that the {#ID} syntax is not recognized.

Replace the {#ID} tags with more universal HTML <a id="ID"> tags.

This patch addresses the documentation on built-in variables.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: f00109dd6a83ae95120865dffa2c0b8dc872c1cf
      https://github.com/oracle/dtrace-utils/commit/f00109dd6a83ae95120865dffa2c0b8dc872c1cf
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace-ref-StaticallyDefinedTracingofUserApplications.md
    M doc/userguide/reference/dtrace_providers_cpc.md
    M doc/userguide/reference/dtrace_providers_dtrace.md
    M doc/userguide/reference/dtrace_providers_fbt.md
    M doc/userguide/reference/dtrace_providers_io.md
    M doc/userguide/reference/dtrace_providers_lockstat.md
    M doc/userguide/reference/dtrace_providers_pid.md
    M doc/userguide/reference/dtrace_providers_proc.md
    M doc/userguide/reference/dtrace_providers_profile.md
    M doc/userguide/reference/dtrace_providers_rawtp.md
    M doc/userguide/reference/dtrace_providers_sched.md
    M doc/userguide/reference/dtrace_providers_sdt.md
    M doc/userguide/reference/dtrace_providers_syscall.md

  Log Message:
  -----------
  doc: Fix anchor links for providers

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 262ab9e99e0fc0e904fa3b93cd5de7ffc473b412
      https://github.com/oracle/dtrace-utils/commit/262ab9e99e0fc0e904fa3b93cd5de7ffc473b412
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/explanation/dtrace-about.md
    M doc/userguide/explanation/dtrace-components-and-terminology.md

  Log Message:
  -----------
  doc: Fix anchor links for explanation/

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 1467a0ef5609a0da2bd618b1496bef23a12dec4b
      https://github.com/oracle/dtrace-utils/commit/1467a0ef5609a0da2bd618b1496bef23a12dec4b
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
    M doc/userguide/how-to/dtrace-howto-install-dtrace.md
    M doc/userguide/how-to/dtrace-howto-list-and-enable-probes.md
    M doc/userguide/how-to/dtrace-howto-use-predicates.md

  Log Message:
  -----------
  doc: Fix anchor links for how-to/

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 2e6d4c4dd90b88af1fdd321c09ecfa13fabbe781
      https://github.com/oracle/dtrace-utils/commit/2e6d4c4dd90b88af1fdd321c09ecfa13fabbe781
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/aggregation.md
    M doc/userguide/reference/compiler_options.md
    M doc/userguide/reference/d_program_syntax_reference_program_structure.md
    M doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
    M doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
    M doc/userguide/reference/dtrace-ref-StructsandUnions.md
    M doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
    M doc/userguide/reference/dtrace-ref-Variables.md
    M doc/userguide/reference/dtrace-ref-speculation.md
    M doc/userguide/reference/dtrace_command_desc.md
    M doc/userguide/reference/dtrace_command_exit_status.md
    M doc/userguide/reference/dtrace_command_operands.md
    M doc/userguide/reference/dtrace_command_options.md
    M doc/userguide/reference/dtrace_runtime_options.md
    M doc/userguide/reference/dynamic_runtime_options.md
    M doc/userguide/reference/setting_dtrace_compiler_and_runtime_options.md

  Log Message:
  -----------
  doc: Fix anchor links for reference/

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 06f12eb16fe6fdc60f907d61cbe5c1d1349617e1
      https://github.com/oracle/dtrace-utils/commit/06f12eb16fe6fdc60f907d61cbe5c1d1349617e1
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md

  Log Message:
  -----------
  doc: Clean up the table for string relational operators

The text referred to "Table 1", which is not otherwise identified.  It
included a link using an undefined ID.  Scrap both, especially since the
table immediately follows the text anyhow.  Clean that up.

Also, the "String Assignment" link was missing its anchor tag.  Add one.

While we are at it, for better readability and maintainability of the
source file:

- convert the table from HTML to Markdown

- introduce line breaks into the very long text line

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 6c4979414d6ac1ce3e4aa621cbd809046e810991
      https://github.com/oracle/dtrace-utils/commit/6c4979414d6ac1ce3e4aa621cbd809046e810991
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
    M doc/userguide/reference/dtrace_builtin_variable_reference.md

  Log Message:
  -----------
  doc: Link to "Character Escape Sequences" table

A link to this table did not work since it referenced an ID that did not
exist.  Add an anchor ID by the table and use it.

While we're at it, convert the table from HTML to Markdown and break up
some longer lines, improving readability and maintainability of the
Markdown source file.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 5709ab7b33a35bb044101d40083361985153c09c
      https://github.com/oracle/dtrace-utils/commit/5709ab7b33a35bb044101d40083361985153c09c
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace_providers_profile.md

  Log Message:
  -----------
  doc: Clean up profile unit table

There are two references to "Table 1" (which is not otherwise
identified), along with links to an undefined ID.  Rework these
references.

While we're at it, convert the table from HTML to Markdown and break up
some longer lines, improving readability and maintainability of the
Markdown source file.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: cee46e62089089dbf63310154aecbd901b00e74c
      https://github.com/oracle/dtrace-utils/commit/cee46e62089089dbf63310154aecbd901b00e74c
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/index.md
    M doc/userguide/reference/dtrace_builtin_variable_reference.md

  Log Message:
  -----------
  doc: Clean up undefined anchor links

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 0c484ff9bf6ec9a93dc17fad3996aba731a50e8f
      https://github.com/oracle/dtrace-utils/commit/0c484ff9bf6ec9a93dc17fad3996aba731a50e8f
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/index.md
    M doc/userguide/reference/dtrace_providers.md
    A doc/userguide/reference/dtrace_providers_ip.md

  Log Message:
  -----------
  doc: Add IP provider documentation

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>


  Commit: d86e3a6be200e77645cb0e883d9f4921a2c8fe5d
      https://github.com/oracle/dtrace-utils/commit/d86e3a6be200e77645cb0e883d9f4921a2c8fe5d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/index.md
    M doc/userguide/reference/dtrace_providers.md
    A doc/userguide/reference/dtrace_providers_tcp.md

  Log Message:
  -----------
  doc: Add TCP provider documentation

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>


  Commit: 4dc57047e9476cb0deae347c245106308f7645a2
      https://github.com/oracle/dtrace-utils/commit/4dc57047e9476cb0deae347c245106308f7645a2
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/index.md
    M doc/userguide/reference/dtrace_providers.md
    A doc/userguide/reference/dtrace_providers_udp.md

  Log Message:
  -----------
  doc: Add UDP provider documentation

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>


  Commit: a44f190f4d846b53074d3a2c1ef714019b2ef1b7
      https://github.com/oracle/dtrace-utils/commit/a44f190f4d846b53074d3a2c1ef714019b2ef1b7
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/index.md
    M doc/userguide/reference/dtrace_providers.md
    A doc/userguide/reference/dtrace_providers_rawfbt.md

  Log Message:
  -----------
  doc: Add rawfbt provider documentation

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 1d3bc505f90268b6de3707fa98f3e7e4e7b7f5de
      https://github.com/oracle/dtrace-utils/commit/1d3bc505f90268b6de3707fa98f3e7e4e7b7f5de
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
    M doc/userguide/reference/dtrace-ref-speculation.md
    M doc/userguide/reference/dtrace_providers_proc.md
    M doc/userguide/reference/dtrace_providers_sched.md
    M doc/userguide/reference/dtrace_stability_reference.md

  Log Message:
  -----------
  doc: Add blank line before section head so it is recognized

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 980a3de2c6f784d4c94484e842262ac6b5f7e885
      https://github.com/oracle/dtrace-utils/commit/980a3de2c6f784d4c94484e842262ac6b5f7e885
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    A llm/README.md
    M llm/llms-dtrace-complete.txt
    A llm/llms-dtrace-short.txt

  Log Message:
  -----------
  Update llms-txt and add README

Signed-off-by: Bruce McCulloch <bruce.mcculloch at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: a50561b085aa92b45dd2f4f294f396867d630d65
      https://github.com/oracle/dtrace-utils/commit/a50561b085aa92b45dd2f4f294f396867d630d65
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-10-24 (Fri, 24 Oct 2025)

  Changed paths:
    M NEWS
    M dtrace.spec

  Log Message:
  -----------
  Update NEWS and dtrace.spec for release 2.0.4

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>


Compare: https://github.com/oracle/dtrace-utils/compare/ad6cc1cbc741...a50561b085aa

To unsubscribe from these emails, change your notification settings at https://github.com/oracle/dtrace-utils/settings/notifications



More information about the DTrace-devel mailing list