[DTrace-devel] [oracle/dtrace-utils] 23cdaf: usdt parser: fix memory leak in provider and probe...

euloh noreply at github.com
Fri Nov 7 00:10:28 UTC 2025


  Branch: refs/heads/stable
  Home:   https://github.com/oracle/dtrace-utils
  Commit: 23cdaf54ce759b69d8db612d59e5f9bfebcb70bb
      https://github.com/oracle/dtrace-utils/commit/23cdaf54ce759b69d8db612d59e5f9bfebcb70bb
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-06-19 (Thu, 19 Jun 2025)

  Changed paths:
    M libcommon/usdt_parser_notes.c

  Log Message:
  -----------
  usdt parser: fix memory leak in provider and probe htabs

The prvmap and prbmap hashtable implementation was lacking code to
ensure that entries are freed when the hashtables are destroyed.  In
addition, the pvp->pmap hashtables were also not cleaned up.

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


  Commit: a5903f518dc1ad5d634f56e06fdbb56df0913f11
      https://github.com/oracle/dtrace-utils/commit/a5903f518dc1ad5d634f56e06fdbb56df0913f11
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M libdtrace/dt_btf.c
    M libdtrace/dt_impl.h
    M libdtrace/dt_open.c
    M libdtrace/dt_options.c

  Log Message:
  -----------
  options: add -xbtfpath option

Also move the initialization of BPF and BTF to dtrace_init() to ensure
that the -xbtfpath= option is processed before we try to access BTF
data.

Use -xbtfpath=none to disable the use of BTF data.

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


  Commit: 59063c82621356360b5d6c71430530c385b47316
      https://github.com/oracle/dtrace-utils/commit/59063c82621356360b5d6c71430530c385b47316
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M libdtrace/dt_module.c

  Log Message:
  -----------
  btf: do not try to generate CTF data if there is no BTF data

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


  Commit: f0e1424fa41b50b0c9382b2d7e2012a3c6fdbb8a
      https://github.com/oracle/dtrace-utils/commit/f0e1424fa41b50b0c9382b2d7e2012a3c6fdbb8a
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M libdtrace/dt_pragma.c

  Log Message:
  -----------
  dlibs: report missing CTF and BTF data for vmlinux

If the kernel is not compiled with CTF and/or BTF enabled, DTrace will
not work.  This used to result in an assert, which is rather harsh and
not user friendly.  We now report a nice error.

Doing this in the pragma 'depends on' handling may seem odd but that is
where the initial type data load is triggered.  If for some strange
reason no dlibs exist (and thus no 'depends on' are encountered), the
compiler will complain about missing type information anyway.

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


  Commit: 117c90ea3f353aa40c84ad9e14343d0b383a3c46
      https://github.com/oracle/dtrace-utils/commit/117c90ea3f353aa40c84ad9e14343d0b383a3c46
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M bpf/get_bvar.c

  Log Message:
  -----------
  Fix stack-skip counts for caller and stackdepth

Apparently, when we call the BPF get_stack() helper function,
it generally knows how many frames to skip to get the real kernel
stack.  For fentry/fexit, however, this is apparently not the case,
and commit bc65cb44d
("cg: allow providers to specify a skip count for stack retrieval")
added the ability to skip frames for fentry/fexit probes.

When this "skip" is needed, however, it must must be even deeper
when we descend further frames, such as when we call dt_bpf_*()
precompiled functions.

Add this support for dt_bpf_caller() and dt_bpf_stackdepth().
That is, if there are stack-skip frames, skip yet one more frame
when inside a bpf/get_bvar.c function.

Note that we declare the skip count volatile.  The compiler might
optimize code that uses the STACK_SKIP value, but we will subsequently
perform relocations that adjust this value.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: bcef7e17f4791d16c621da4979366d25bb38e844
      https://github.com/oracle/dtrace-utils/commit/bcef7e17f4791d16c621da4979366d25bb38e844
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M libdtrace/dt_prov_rawtp.c

  Log Message:
  -----------
  Add stack-skip frame count for rawtp provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: d1feb8af700d036ff176da965204aa2fe0fa020b
      https://github.com/oracle/dtrace-utils/commit/d1feb8af700d036ff176da965204aa2fe0fa020b
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    M test/unittest/sched/tst.stackdepth.d

  Log Message:
  -----------
  test: remove unnecessary "unstable" tag

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 842eabc0ef84ea3876e65894bf43401736320814
      https://github.com/oracle/dtrace-utils/commit/842eabc0ef84ea3876e65894bf43401736320814
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/check_caller_to_stack2.awk
    A test/unittest/variables/bvar/check_stackdepth_to_stack.awk
    A test/unittest/variables/bvar/tst.caller-fbt.d
    A test/unittest/variables/bvar/tst.caller-fbt.r
    A test/unittest/variables/bvar/tst.caller-fbt.r.p
    R test/unittest/variables/bvar/tst.caller2.d
    R test/unittest/variables/bvar/tst.caller2.r
    R test/unittest/variables/bvar/tst.caller2.r.p
    A test/unittest/variables/bvar/tst.stackdepth-fbt.d
    A test/unittest/variables/bvar/tst.stackdepth-fbt.r
    A test/unittest/variables/bvar/tst.stackdepth-fbt.r.p
    R test/unittest/variables/bvar/tst.stackdepth2.d
    R test/unittest/variables/bvar/tst.stackdepth2.r
    R test/unittest/variables/bvar/tst.stackdepth2.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for fbt provider

We will introduce a set of tests for the caller and stackdepth
built-in variables for a wide selection of providers.

For the caller test, we will essentially call
        stack(2);
        sym(caller);
and then compare the caller to the second stack frame using
the new script check_caller_to_stack2.awk.

For the stackdepth test, we will essentially call
        printf("%d\n", stackdepth);
        stack();
and then compare the stackdepth to the reported frames using
the new script check_stackdepth_to_stack.awk.

In this patch, introduce tests for the fbt provider, along with
the support scripts they need.  Subsequent patches will handle
other providers.

The old tst.caller2.d and tst.stackdepth2.d, which tested fbt,
become obsolete.  Remove them.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 4d44babf4a36c47496c4e77d701a302ef19a8923
      https://github.com/oracle/dtrace-utils/commit/4d44babf4a36c47496c4e77d701a302ef19a8923
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    R test/unittest/builtinvar/tst.caller.d
    A test/unittest/variables/bvar/tst.caller-dtrace.d
    A test/unittest/variables/bvar/tst.caller-dtrace.r
    R test/unittest/variables/bvar/tst.caller.d
    A test/unittest/variables/bvar/tst.stackdepth-dtrace.d
    A test/unittest/variables/bvar/tst.stackdepth-dtrace.r
    R test/unittest/variables/bvar/tst.stackdepth.d

  Log Message:
  -----------
  test: caller and stackdepth tests for dtrace provider

Also, a few old tests, which tested caller and stackdepth using the
dtrace provider, are now superfluous given the new, provider-named
tests.  The old tests were extremely lenient -- e.g., simply
checking that these built-in variables were not -1, even though
both variables are unsigned anyhow!

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 4350d2acee6e7629e20a953e6a59ddf1a7ad52b9
      https://github.com/oracle/dtrace-utils/commit/4350d2acee6e7629e20a953e6a59ddf1a7ad52b9
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/skip_rawtp_old.x
    A test/unittest/variables/bvar/tst.caller-rawtp.d
    A test/unittest/variables/bvar/tst.caller-rawtp.r
    A test/unittest/variables/bvar/tst.caller-rawtp.r.p
    A test/unittest/variables/bvar/tst.caller-rawtp.x
    A test/unittest/variables/bvar/tst.stackdepth-rawtp.d
    A test/unittest/variables/bvar/tst.stackdepth-rawtp.r
    A test/unittest/variables/bvar/tst.stackdepth-rawtp.r.p
    A test/unittest/variables/bvar/tst.stackdepth-rawtp.x

  Log Message:
  -----------
  test: caller and stackdepth tests for rawtp provider

Also, add skip_rawtp_old.x, to skip rawtp testing on older kernels
for the reasons described in the file.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 0badfcd086f822f0210da0ccdd92b89cafabf528
      https://github.com/oracle/dtrace-utils/commit/0badfcd086f822f0210da0ccdd92b89cafabf528
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-cpc.d
    A test/unittest/variables/bvar/tst.caller-cpc.r
    A test/unittest/variables/bvar/tst.caller-cpc.r.p
    A test/unittest/variables/bvar/tst.stackdepth-cpc.d
    A test/unittest/variables/bvar/tst.stackdepth-cpc.r
    A test/unittest/variables/bvar/tst.stackdepth-cpc.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for cpc provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 8b616886c4e8c9aa549b10efee101f1f3d3ecfd6
      https://github.com/oracle/dtrace-utils/commit/8b616886c4e8c9aa549b10efee101f1f3d3ecfd6
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-ip.d
    A test/unittest/variables/bvar/tst.caller-ip.r
    A test/unittest/variables/bvar/tst.caller-ip.r.p
    A test/unittest/variables/bvar/tst.caller-ip.t
    A test/unittest/variables/bvar/tst.stackdepth-ip.d
    A test/unittest/variables/bvar/tst.stackdepth-ip.r
    A test/unittest/variables/bvar/tst.stackdepth-ip.r.p
    A test/unittest/variables/bvar/tst.stackdepth-ip.t

  Log Message:
  -----------
  test: caller and stackdepth tests for ip provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 0e1ee6ca1b0f7adf53c230e3947e1701c20cdb50
      https://github.com/oracle/dtrace-utils/commit/0e1ee6ca1b0f7adf53c230e3947e1701c20cdb50
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    R test/unittest/builtinvar/tst.caller1.d
    A test/unittest/variables/bvar/tst.caller-profile.d
    A test/unittest/variables/bvar/tst.caller-profile.r
    A test/unittest/variables/bvar/tst.caller-profile.r.p
    A test/unittest/variables/bvar/tst.stackdepth-profile.d
    A test/unittest/variables/bvar/tst.stackdepth-profile.r
    A test/unittest/variables/bvar/tst.stackdepth-profile.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for profile provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 0a15fd0e636ca8bc2645ba8d3af64cb3751be919
      https://github.com/oracle/dtrace-utils/commit/0a15fd0e636ca8bc2645ba8d3af64cb3751be919
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-sched.d
    A test/unittest/variables/bvar/tst.caller-sched.r
    A test/unittest/variables/bvar/tst.caller-sched.r.p
    A test/unittest/variables/bvar/tst.stackdepth-sched.d
    A test/unittest/variables/bvar/tst.stackdepth-sched.r
    A test/unittest/variables/bvar/tst.stackdepth-sched.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for sched provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 4b29eafb866288cf57885b62447ce32cf3d1ad6e
      https://github.com/oracle/dtrace-utils/commit/4b29eafb866288cf57885b62447ce32cf3d1ad6e
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-proc.d
    A test/unittest/variables/bvar/tst.caller-proc.r
    A test/unittest/variables/bvar/tst.caller-proc.r.p
    A test/unittest/variables/bvar/tst.stackdepth-proc.d
    A test/unittest/variables/bvar/tst.stackdepth-proc.r
    A test/unittest/variables/bvar/tst.stackdepth-proc.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for proc provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: f2a056c905b0e5d2aadf73372ae16c5e1347a822
      https://github.com/oracle/dtrace-utils/commit/f2a056c905b0e5d2aadf73372ae16c5e1347a822
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-rawfbt.d
    A test/unittest/variables/bvar/tst.caller-rawfbt.r
    A test/unittest/variables/bvar/tst.caller-rawfbt.r.p
    A test/unittest/variables/bvar/tst.stackdepth-rawfbt.d
    A test/unittest/variables/bvar/tst.stackdepth-rawfbt.r
    A test/unittest/variables/bvar/tst.stackdepth-rawfbt.r.p

  Log Message:
  -----------
  test: caller and stackdepth tests for rawfbt provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: b6294ac56cb85981531e16d43739747ea913eac1
      https://github.com/oracle/dtrace-utils/commit/b6294ac56cb85981531e16d43739747ea913eac1
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/tst.caller-io.r
    A test/unittest/variables/bvar/tst.caller-io.r.p
    A test/unittest/variables/bvar/tst.caller-io.sh
    A test/unittest/variables/bvar/tst.caller-io.x
    A test/unittest/variables/bvar/tst.stackdepth-io.r
    A test/unittest/variables/bvar/tst.stackdepth-io.r.p
    A test/unittest/variables/bvar/tst.stackdepth-io.sh
    A test/unittest/variables/bvar/tst.stackdepth-io.x

  Log Message:
  -----------
  test: caller and stackdepth tests for io provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 162b818df69c3608cbc1757fdf30d29927306c36
      https://github.com/oracle/dtrace-utils/commit/162b818df69c3608cbc1757fdf30d29927306c36
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-06-25 (Wed, 25 Jun 2025)

  Changed paths:
    A test/unittest/variables/bvar/skip_lockstat_5.10.x
    A test/unittest/variables/bvar/tst.caller-lockstat.d
    A test/unittest/variables/bvar/tst.caller-lockstat.r
    A test/unittest/variables/bvar/tst.caller-lockstat.r.p
    A test/unittest/variables/bvar/tst.caller-lockstat.t
    A test/unittest/variables/bvar/tst.caller-lockstat.x
    A test/unittest/variables/bvar/tst.stackdepth-lockstat.d
    A test/unittest/variables/bvar/tst.stackdepth-lockstat.r
    A test/unittest/variables/bvar/tst.stackdepth-lockstat.r.p
    A test/unittest/variables/bvar/tst.stackdepth-lockstat.t
    A test/unittest/variables/bvar/tst.stackdepth-lockstat.x

  Log Message:
  -----------
  test: caller and stackdepth tests for lockstat provider

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 78343c73883f76af7e8c8b3c7be03e9d0074d819
      https://github.com/oracle/dtrace-utils/commit/78343c73883f76af7e8c8b3c7be03e9d0074d819
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-01 (Tue, 01 Jul 2025)

  Changed paths:
    M libcommon/usdt_parser_notes.c

  Log Message:
  -----------
  usdt parser: remove left-over debug statement

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


  Commit: a7c79febaa30e8d1d6feb5405ae8e934ee22d250
      https://github.com/oracle/dtrace-utils/commit/a7c79febaa30e8d1d6feb5405ae8e934ee22d250
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    M libcommon/usdt_parser_notes.c
    A test/unittest/usdt/tst.encoded_hyphens.r
    A test/unittest/usdt/tst.encoded_hyphens.sh

  Log Message:
  -----------
  usdt parser: handle encoded hyphens

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


  Commit: 354b21092372f48bab5afa5c5bab31ec1b407927
      https://github.com/oracle/dtrace-utils/commit/354b21092372f48bab5afa5c5bab31ec1b407927
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    M libcommon/usdt_parser_notes.c

  Log Message:
  -----------
  usdt parser: make sure prbmap is cleaned up in case of error

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


  Commit: 35989b4325a20a4441a57859086c376d632c8aca
      https://github.com/oracle/dtrace-utils/commit/35989b4325a20a4441a57859086c376d632c8aca
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-15 (Tue, 15 Jul 2025)

  Changed paths:
    M dtrace.spec

  Log Message:
  -----------
  spec: ensure the include/dtrace hierarchy is included in dtrace-devel

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


  Commit: fc085708eae024dcf47b22cd5dd4ed947ea600c0
      https://github.com/oracle/dtrace-utils/commit/fc085708eae024dcf47b22cd5dd4ed947ea600c0
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-15 (Tue, 15 Jul 2025)

  Changed paths:
    M include/dtrace/actions_defines.h
    M libdtrace/dt_cg.c
    M libdtrace/dt_grammar.y
    M libdtrace/dt_impl.h
    M libdtrace/dt_lex.l
    M libdtrace/dt_open.c
    M test/modules
    A test/unittest/actions/return/err.D_PROTO_ARG.str.d
    A test/unittest/actions/return/err.D_PROTO_ARG.str.r
    A test/unittest/actions/return/err.D_PROTO_ARG.void.d
    A test/unittest/actions/return/err.D_PROTO_ARG.void.r
    A test/unittest/actions/return/err.D_PROTO_LEN.missing_arg.d
    A test/unittest/actions/return/err.D_PROTO_LEN.missing_arg.r
    A test/unittest/actions/return/err.D_PROTO_LEN.too_many_args.d
    A test/unittest/actions/return/err.D_PROTO_LEN.too_many_args.r
    A test/unittest/actions/return/err.destructive.d
    A test/unittest/actions/return/err.destructive.r
    A test/unittest/actions/return/err.wrong-1.d
    A test/unittest/actions/return/err.wrong-1.r
    A test/unittest/actions/return/err.wrong-2.d
    A test/unittest/actions/return/err.wrong-2.r
    A test/unittest/actions/return/tst.destructive.d
    A test/unittest/actions/return/tst.destructive.r

  Log Message:
  -----------
  parser, cg: Implement the return() action

The return(n) action can be used for error injection by forcing a
given return value for a kernel function.

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


  Commit: a1c8df420d846a10a8ed46274a31cff105fca244
      https://github.com/oracle/dtrace-utils/commit/a1c8df420d846a10a8ed46274a31cff105fca244
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-15 (Tue, 15 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_provider.h

  Log Message:
  -----------
  provider, cg: add reject_clasue() callback

Future providers will require functionality to determine whether a
clause for one of its probes needs to be rejected for some reason.

Since the callback is invoked during trampoline creation, rejection
must result in a compilation error.  The callback is responsible for
this.  If it returns, the clause is accepted.

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


  Commit: 626b1d9eb6c227c7401e57f1a15a2c2bd951a61a
      https://github.com/oracle/dtrace-utils/commit/626b1d9eb6c227c7401e57f1a15a2c2bd951a61a
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-15 (Tue, 15 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_errtags.h
    M libdtrace/dtrace.h

  Log Message:
  -----------
  cg: reject clauses using return() by default

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


  Commit: ee8c066e8a52dbf74c730c2708579b72a0d543d7
      https://github.com/oracle/dtrace-utils/commit/ee8c066e8a52dbf74c730c2708579b72a0d543d7
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-16 (Wed, 16 Jul 2025)

  Changed paths:
    M libdtrace/dt_prov_fbt.c
    A test/unittest/actions/return/err.not_allowed-1.d
    A test/unittest/actions/return/err.not_allowed-1.r
    A test/unittest/actions/return/err.not_allowed-2.d
    A test/unittest/actions/return/err.not_allowed-2.r
    A test/unittest/actions/return/err.not_allowed-3.d
    A test/unittest/actions/return/err.not_allowed-3.r
    A test/unittest/actions/return/tst.override-getpid-entry.r
    A test/unittest/actions/return/tst.override-getpid-entry.r.p
    A test/unittest/actions/return/tst.override-getpid-entry.sh
    A test/unittest/actions/return/tst.override-getpid-return.r
    A test/unittest/actions/return/tst.override-getpid-return.r.p
    A test/unittest/actions/return/tst.override-getpid-return.sh

  Log Message:
  -----------
  rawfbt: selectively allow return() in clauses

The return() action is only allowed in clauses associated with a rawfbt
probe on a function listed in /sys/kernel/debug/error_injection/list.
Use a reject_clause() callback in the rawfbt provider to enforce this.

The list of allowed function is only initialized the first time it is
needed, and its content will be stored in a hashtable for faster
lookup beyond the first.

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


  Commit: b46b8bd1c169f7eb880e0a32c1297565ceb6fa89
      https://github.com/oracle/dtrace-utils/commit/b46b8bd1c169f7eb880e0a32c1297565ceb6fa89
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_cg.h
    M libdtrace/dt_prov_io.c
    M libdtrace/dt_prov_ip.c
    M libdtrace/dt_prov_proc.c
    M libdtrace/dt_prov_sched.c
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  cg: move get_member() to dt_cg.c

It will be used by both dt_prov_ip.c and dt_prov_tcp.c.  Updated the
dt_cg_ctf_offsetof() function to provide the load/store operand size
if needed sp that the new dt_cg_tramp_get_member() can use that rather
doing its own type lookup, etc.

Updated all uses of dt_cg_ctf_offsetof() and dt_cg_tramp_get_member().

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


  Commit: 963aee42b9a80128e0fa1d4c233ffaee6fe84282
      https://github.com/oracle/dtrace-utils/commit/963aee42b9a80128e0fa1d4c233ffaee6fe84282
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_parser.c
    M libdtrace/dt_parser.h

  Log Message:
  -----------
  parser: add dt_node_is_tstring()

Returns 1 if the given node has a tstring associated with it.  Internal
change to make implementing optimized tstring-handling easier.

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


  Commit: 98f9c6c1b0baca06106aa5e94da2e4821eb172b5
      https://github.com/oracle/dtrace-utils/commit/98f9c6c1b0baca06106aa5e94da2e4821eb172b5
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c

  Log Message:
  -----------
  cg: validate tstring alloc/free

Rather than indiscriminately resetting tstring allocations at the
beginning of a compilation, actually verify that alloc/free of
tstrings is done correctly, i.e. that none are left allocated after
compilation is done.

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


  Commit: 5b20226bc930becbcbcf171ded3a195411bd6b5e
      https://github.com/oracle/dtrace-utils/commit/5b20226bc930becbcbcf171ded3a195411bd6b5e
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_impl.h
    A test/unittest/codegen/tst.tstring_ternary_mix.d
    A test/unittest/codegen/tst.tstring_ternary_mix.r
    A test/unittest/codegen/tst.tstring_ternary_nested.d
    A test/unittest/codegen/tst.tstring_ternary_nested.r

  Log Message:
  -----------
  cg: optimize ternary expressions for strings

If either side of a ternary expression has a tstring value, it can be
re-used to store the value of the ternary expression, reducing the
need for tstring allocation, especially in nested ternaries.

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


  Commit: 59ed0bd094d39b266a13888c8ea98d9bfcb6f989
      https://github.com/oracle/dtrace-utils/commit/59ed0bd094d39b266a13888c8ea98d9bfcb6f989
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_parser.c
    M libdtrace/dt_parser.h

  Log Message:
  -----------
  tstring: fix leaks

Temporary strings were not being freed in various places.

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


  Commit: 52a37e910c4bfb3a006c04f9c7a85c26f1f37dee
      https://github.com/oracle/dtrace-utils/commit/52a37e910c4bfb3a006c04f9c7a85c26f1f37dee
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M test/unittest/operators/tst.ternary.d
    M test/unittest/operators/tst.ternary.r

  Log Message:
  -----------
  test/operators: extend ternary tests to cover inet_ntoa*()s

inet_ntoa*() require temporary strings and ternary operators
need temporaries for left and right; ensure ternary ops succeed
with inet_ntoa*()s.

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


  Commit: 068e4aa24b07cb312889edcf5d25f8229298c474
      https://github.com/oracle/dtrace-utils/commit/068e4aa24b07cb312889edcf5d25f8229298c474
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/ip.d
    M libdtrace/net.d

  Log Message:
  -----------
  providers: move network-generic definitions to net.d

tcp.d and ip.d both need some of these generic definitions so move them
to the net.d library they both depend on.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 0fa93b3ac071586ca422205c69df9cd9a30eba9f
      https://github.com/oracle/dtrace-utils/commit/0fa93b3ac071586ca422205c69df9cd9a30eba9f
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M libdtrace/Build
    A libdtrace/dt_prov_tcp.c
    M libdtrace/dt_provider.c
    M libdtrace/dt_provider.h
    M libdtrace/net.d
    M libdtrace/tcp.d

  Log Message:
  -----------
  tcp: new provider

Based upon various fbt probe points support TCP send, receive,
state-change, accept-established, accept-refused, connect-request,
connect-established and connect-refused probes.

A few tweaks were needed to tcp.d to support the probes fully.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 2af32c404565bae248de9a1e40458e22589ed4c1
      https://github.com/oracle/dtrace-utils/commit/2af32c404565bae248de9a1e40458e22589ed4c1
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

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

  Log Message:
  -----------
  dlibs: sync ip.d, net.d and tcp.d

Sync dlibs with libdtrace versions.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: b8cc16369ebfbeb5370344fccfa6ed39878efbaa
      https://github.com/oracle/dtrace-utils/commit/b8cc16369ebfbeb5370344fccfa6ed39878efbaa
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-22 (Tue, 22 Jul 2025)

  Changed paths:
    M test/unittest/tcp/test.x

  Log Message:
  -----------
  unittest/tcp: update test.x

Now that the tcp provider is supported, update test.x.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: a73ac678a068323100db6598d0bba40ac2558e27
      https://github.com/oracle/dtrace-utils/commit/a73ac678a068323100db6598d0bba40ac2558e27
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M libdtrace/dt_lex.l
    A test/unittest/lexer/tst.boc-in-line-comment.d
    A test/unittest/lexer/tst.boc-in-line-comment.r
    A test/unittest/lexer/tst.eoc-in-line-comment.d
    A test/unittest/lexer/tst.eoc-in-line-comment.r
    A test/unittest/lexer/tst.eof-in-line-comment.d
    A test/unittest/lexer/tst.eof-in-line-comment.r
    A test/unittest/lexer/tst.lc-in-line-comment.d
    A test/unittest/lexer/tst.lc-in-line-comment.r
    A test/unittest/lexer/tst.line-comment.d
    A test/unittest/lexer/tst.line-comment.r

  Log Message:
  -----------
  lexer: support // comments

Suggested-by: Ruud van der Pas <ruud.vanderpas at oracle.com>
Suggested-by: Alan Maguire <alan.maguire at oracle.com>
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>
Tested-by: Alan Maguire <alan.maguire at oracle.com>


  Commit: a1eea5722dcad5af53646a66faa4173731a1ff37
      https://github.com/oracle/dtrace-utils/commit/a1eea5722dcad5af53646a66faa4173731a1ff37
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

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

  Log Message:
  -----------
  dlibs: use explicit vmlinux`major_names

It is better to use explicit module`symbol references in dlibs so as
to avoid loading modules needlessly.

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


  Commit: cbf42fac2bc85767bd9f171c288d05068b020e2e
      https://github.com/oracle/dtrace-utils/commit/cbf42fac2bc85767bd9f171c288d05068b020e2e
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M test/unittest/ip/tst.ipv6localicmp.r.p
    M test/unittest/proc/tst.signals.r.p
    M test/unittest/providers/rawfbt/tst.synthetic-entry.r.p
    R test/unittest/providers/rawfbt/tst.synthetic-return.r.p
    A test/unittest/providers/rawfbt/tst.synthetic-return.r.p
    M test/unittest/ustack/tst.ustack25_pid.r.p
    M test/unittest/vars/tst.ucaller.r.p

  Log Message:
  -----------
  test: change .r.p files from /bin/sh to /bin/bash

Some tests that use features that assume that /bin/sh is bash, which
is not guaranteed in all distributions.

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


  Commit: e7eaa621694426be72e21feaae395ded3e83c2b1
      https://github.com/oracle/dtrace-utils/commit/e7eaa621694426be72e21feaae395ded3e83c2b1
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-23 (Wed, 23 Jul 2025)

  Changed paths:
    M test/unittest/disasm/tst.vartab-bvar.sh

  Log Message:
  -----------
  test: sdt:task::task_rename takes only 4 args on newer kernels

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


  Commit: c4b6043d3607cd88f2099b6759ec624b562989d7
      https://github.com/oracle/dtrace-utils/commit/c4b6043d3607cd88f2099b6759ec624b562989d7
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-07-24 (Thu, 24 Jul 2025)

  Changed paths:
    M libdtrace/dt_aggregate.c
    M libdtrace/dt_bpf.c
    M libdtrace/dt_impl.h
    M libdtrace/dt_open.c

  Log Message:
  -----------
  Cache per-CPU agg map IDs

The dt_bpf_map_lookup_fd(dtp->dt_aggmap_fd, &cpu) call that is used to
snap or truncate aggregations takes a few milliseconds, which seems all
right.  For large systems (e.g., 100 CPUs) and many truncations (e.g.,
tst.trunc.d, etc.), however, a trunc() might end up costing a minute on
the consumer side, which is unreasonable and causes such tests to time
out.  The run time is due almost exclusively to looking up the per-CPU
agg map ID.

Cache the per-CPU agg map IDs.

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


  Commit: c0d49436c33281ca4ca6fa1befc03e6ad10512d4
      https://github.com/oracle/dtrace-utils/commit/c0d49436c33281ca4ca6fa1befc03e6ad10512d4
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-07-24 (Thu, 24 Jul 2025)

  Changed paths:
    M test/unittest/aggs/tst.trunc.d
    M test/unittest/aggs/tst.truncquant.d

  Log Message:
  -----------
  test: Convert tick-* probes to ioctl:entry for tst.trunc[quant].d

Historically, many tests have used tick-* probes to get multiple
probe firings, but those probes can be unreliable, depending on
how a kernel is configured.  Tests that required very many probe
firings have been converted to ioctl:entry.  Tests that required
very few have been left alone.

Convert more of these tests.  They normally pass, but with erratic
execution time and sometimes time out.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: f085ecf2fbb0d7b96c1ca5035d242171f354356b
      https://github.com/oracle/dtrace-utils/commit/f085ecf2fbb0d7b96c1ca5035d242171f354356b
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-07-24 (Thu, 24 Jul 2025)

  Changed paths:
    M test/unittest/aggs/tst.multicpus.sh

  Log Message:
  -----------
  test: Mimic dtrace arithmetic more closely for avg/stddev

The multicpus test checks that data from multiple CPUs is aggregated
properly.  Operations like avg() and stddev() require division.
DTrace uses integer division, while awk does not.

Change the awk check to truncate intermediate results after division.

In practice, intermediate results are typically integer values anyhow.
So the test has generally passed.  Non-integer values could arise if,
for example, CPUs are not numbered consecutively.  More typically,
there may be a problem that the profile probe is not firing on every
expected CPU.  So a test failure probably was a sign of a problem,
but that's a different problem, one beyond the scope of this test.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 0bbfa567230a5b779b2815402cb55c2fc49078a3
      https://github.com/oracle/dtrace-utils/commit/0bbfa567230a5b779b2815402cb55c2fc49078a3
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-24 (Thu, 24 Jul 2025)

  Changed paths:
    R test/demo/struct/kstat.d
    R test/demo/struct/kstat.t

  Log Message:
  -----------
  demo: remove demo script depending on non-Linux OS features

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


  Commit: 59108e0ae9de1e46a2618149ce2395dae4005f60
      https://github.com/oracle/dtrace-utils/commit/59108e0ae9de1e46a2618149ce2395dae4005f60
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M include/Build

  Log Message:
  -----------
  install: add installation of libdtrace header file to install target

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


  Commit: e3eecff2be8d7392330bdbbf5a88a694629257e5
      https://github.com/oracle/dtrace-utils/commit/e3eecff2be8d7392330bdbbf5a88a694629257e5
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M GNUmakefile

  Log Message:
  -----------
  Update the VERSION in the GNUmakefile

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


  Commit: d4c34e9a3199f7509293a5c20b975f379baa3b84
      https://github.com/oracle/dtrace-utils/commit/d4c34e9a3199f7509293a5c20b975f379baa3b84
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M libdtrace/dt_bpf.c
    M libdtrace/dt_btf.c
    M libdtrace/dt_btf.h
    M libdtrace/dt_prov_fbt.c

  Log Message:
  -----------
  btf: fix symbol BTF ID lookup

The logic to perform a BTF ID lookup for a symbol did not guard against
BTF data not having been loaded for the module that contains the symbol.

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


  Commit: 1ceca59160ba1ab3a28d4f93abf6a36fea5a6854
      https://github.com/oracle/dtrace-utils/commit/1ceca59160ba1ab3a28d4f93abf6a36fea5a6854
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M libdtrace/dt_bpf.c
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  Free the DIFO for a probe once it is loaded

When a lot of probes are being probed, keeping all DIFO around consumes
a lot of memory.  Once the BPF program is loaded, the DIFO can be freed.

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


  Commit: 6642cf0c84de770b93a235581183a644664513a5
      https://github.com/oracle/dtrace-utils/commit/6642cf0c84de770b93a235581183a644664513a5
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-07-28 (Mon, 28 Jul 2025)

  Changed paths:
    M runtest.sh
    R test/unittest/ip/get.ipv4remote.pl
    R test/unittest/ip/get.ipv6remote.pl
    M test/unittest/ip/tst.ipv4remoteicmp.sh
    M test/unittest/ip/tst.ipv4remotetcp.sh
    M test/unittest/ip/tst.ipv4remoteudp.sh
    M test/unittest/ip/tst.ipv6remoteicmp.sh
    M test/unittest/tcp/tst.ipv4remotetcp.sh
    M test/unittest/tcp/tst.ipv4remotetcpstate.sh
    M test/unittest/udp/tst.ipv4remoteudp.sh
    A test/utils/get_remote.sh

  Log Message:
  -----------
  test/utils: add more reliable "get remote address" approach

The current approach of looking for remote addresses
is brittle and fails in many environments; it checks the
default route gateway and looks for open ports in the TCP
case.

We can however achieve the same goal reliably by creating
a network namespace on the system and configuring either
IPv4 or IPv6 addresses on the namespaced and local veth
interfaces that support communication between namespaces.
If a tcp port is required, start sshd to listen on that port.

Teardown of network namespaces is managed in the toplevel runtest.sh to
ensure that network namespaces are removed after test completion for all
cases: success, failure and timeout.

Move the get_remote.sh script to test/utils also as it
seems a more natural location.

One issue - this cannot be run on a local system with
a VPN running as the VPN connection is pretty aggressive
in disconnecting/reconnecting when spotting a link-up event
associated with the global netns side of the veth.  However
in my experience the remote IP tests do not work reliably
in that environment anyway.

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


  Commit: 936f7e5a0ba4a742580953c986899a10dde64dd2
      https://github.com/oracle/dtrace-utils/commit/936f7e5a0ba4a742580953c986899a10dde64dd2
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M libproc/Pcontrol.c

  Log Message:
  -----------
  libproc: make Psystem_daemon() detect modern systemd properly

Psystem_daemon() is used when carrying out shortlived grabs to detect
whether a process is too risky to carry out invasive grabs of (you wouldn't
usually want to stop syslogd or, God forbid, try to ptrace PID 1, unless
explicitly requested via -p: the process just coming up in routine probe
firing is not enough).

This has two code paths: a reliable one for systemd systems (which checks to
see if the process is in the system slice, which contains precisely and only
system daemons), and an unreliable one for other systems (which does the old
Unix approach of consdering anything in the user uid range or with a TTY or
with open standard FDs to TTYs to be not system daemons, and everything else
to possibly be one).

We were checking to see if a system was systemd by looking for the systemd
cgroup hierarchy name in any of the victim process's cgroups.  This was
reliable back in the days of cgroups v1, but alas in v2 where systemd runs
all the cgroups if it runs any and there are no longer multiple hierarchies,
systemd no longer names its cgroups this way and the test fails, causing us
to fall back to the unreliable pre-systemd approach.

Use a more reliable approach to detect systemd, the same approach used by
sd_booted() in libsystemd; check for the existence of the
/run/systemd/system directory.  Fix slice detection to work in the absence
of a systemd hierarchy name (but keep it working when a hierarchy name
*is* present, for older systems), and everything else works unchanged.

We also arrange to fall back to the old code for any processes that are
entirely outside of systemd management: this covers kernel threads,
the occasional process that is part of systemd itself, and also processes
running using Delegate= to give over their subtree's cgroup management to
something else.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 8fee290763aaa12288dc7da762882d8fa7e4a1cc
      https://github.com/oracle/dtrace-utils/commit/8fee290763aaa12288dc7da762882d8fa7e4a1cc
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.onlyenabled.r
    M test/unittest/usdt/tst.onlyenabled.sh

  Log Message:
  -----------
  test: Make the USDT "only enabled" test more stringent

What if a program has an is-enabled probe without the corresponding
parent probe?  It should at least compile, and we test that.

Add more checks to the test:
- the is-enabled branch is not taken when run without dtrace
- the parent USDT probe is listed with "dtrace -l"
- the is-enabled branch is not taken even when run with dtrace
    if the parent probe is not enabled
- the is-enabled branch is taken when run with dtrace
    and the parent probe is enabled;  however, the parent probe
    does not fire since it is not in the test trigger

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: c5d9395763bdce843f36ad14d9ea4a25fe3569c3
      https://github.com/oracle/dtrace-utils/commit/c5d9395763bdce843f36ad14d9ea4a25fe3569c3
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/usdt/tst.enable_pid.sh
    A test/unittest/usdt/tst.enable_pid.x

  Log Message:
  -----------
  test: Wait for output to flush out in enable_pid

Our luck with this test has been quite good, but it sometimes fails
to show its last lines of output.  That is, we send a USR1 to the
trigger processes to set off the final output and we immediately
cat the output files.  If there is any delay in handling the signal,
the last output will be missing.

Have the processes terminate themselves when their last output is
flushed; then wait for those processes.  Also, skip testing altogether if
there is only a single processor to run the two, hard-spinning processes.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


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

  Changed paths:
    M GNUmakefile

  Log Message:
  -----------
  bpf: compile BPF library functions with -ffreestanding

Per Jose, we should be compiling our BPF code with -ffreestanding to
ensure that BPF-specific standard header files are used instead of
host-specific ones.

References:
https://gcc.gnu.org/PR121259
https://bugs.gentoo.org/959876

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Sam James <sam at gentoo.org>
Tested-by: Sam James <sam at gentoo.org>


  Commit: b3f9fd31e173b0372c65a33dc166fe18c75d3091
      https://github.com/oracle/dtrace-utils/commit/b3f9fd31e173b0372c65a33dc166fe18c75d3091
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/aggs/tst.ustack.r
    A test/unittest/aggs/tst.ustack.r.p

  Log Message:
  -----------
  test: Suppress some white space

The test suite turns pointers into "{ptr}" so that results
comparisons will not be sensitive to particular pointer offset
values.

If these offsets change in width -- say, from 0xf0 to 0x100 --
the amount of white space in the postprocessed output can change.

Add additional postprocessing to a test that sometimes fails due
to this problem.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: c42d8c095086adb2597f869d6a8143b68d01fe27
      https://github.com/oracle/dtrace-utils/commit/c42d8c095086adb2597f869d6a8143b68d01fe27
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/pid/tst.manypids.sh

  Log Message:
  -----------
  test: Extend timeout for many-pids test

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 90c51681fd5e347543f02dfc7925f92f133c9080
      https://github.com/oracle/dtrace-utils/commit/90c51681fd5e347543f02dfc7925f92f133c9080
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M INCOMPATIBILITIES
    M cmd/dtrace.c
    A test/unittest/dtrace-util/tst.ListProbes.r
    A test/unittest/dtrace-util/tst.ListProbes.sh

  Log Message:
  -----------
  Make sure all probes are listed in default case

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


  Commit: 633e1c217336bd6d2e18022e8371ac2e047e4b21
      https://github.com/oracle/dtrace-utils/commit/633e1c217336bd6d2e18022e8371ac2e047e4b21
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  Optimize USDT discovery a little

We want to reduce the performance cost of USDT discovery if possible.

Specifically, a number of statements -- with probe descriptions such as
"dtrace:::BEGIN" that could never specify USDT probes -- will not get
their clause flags set with DT_CLSFLAG_USDT_EXCLUDE.  So these statements
get considered unnecessarily during periodic probe discovery.

Therefore:

*)  Expand ignore_clause(dtp, n, uprp) to support the case uprp==NULL.
    This case is independent of any knowledge of a specific underlying
    probe.

*)  During probe discovery, check ignore_clause(dtp, i, NULL).  This
    sets the DT_CLSFLAG_USDT_[INCLUDE|EXCLUDE] flag and allows faster
    exclusion of statements that do not need to be reconsidered.

To take advantage of this optimization, users should specify providers.
E.g., instead of "BEGIN" (which could conceivably be a USDT probe),
specify "dtrace:::BEGIN".

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 1cd56071dc6ee552cbd9fdf2465522084d5de557
      https://github.com/oracle/dtrace-utils/commit/1cd56071dc6ee552cbd9fdf2465522084d5de557
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M libdtrace/dt_bpf.c
    M libdtrace/dt_cg.c
    M libdtrace/dt_impl.h
    A test/unittest/options/err.no-w-or-destructive2.d
    A test/unittest/options/err.no-w-or-destructive2.r
    R test/unittest/usdt/err.Z_no-w.r
    R test/unittest/usdt/err.Z_no-w.sh

  Log Message:
  -----------
  Need -w for destructive actions, even if clause is not used

If a clause includes a destructive action but -w is not used, dtrace
should not start up, even if the clause is ignored (due to -Z).
Solaris treated this as a runtime error.  We should do the same.

The test err.Z_no-w.sh was misguided and is replaced by a more
direct test.

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


  Commit: 4f58b864a0e61b6ea70465f7e65d3ca64278f533
      https://github.com/oracle/dtrace-utils/commit/4f58b864a0e61b6ea70465f7e65d3ca64278f533
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M include/dtrace/pid.h
    M libdtrace/dt_pid.c
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  support stapsdt ELF-note-defined static probes

As well as using dtrace -G to generate USDT probes, programs and
libraries may have added static probes via stapsdt ELF notes.

Read ELF notes from binaries from /proc/ maps associated with processes
and parse them to retrieve uprobe address and argument-related info
to create the associated uprobe.

Probe arguments can be either constants, register values or dereferences
or dereferences from register values (plus offset), identical to the
updated USDT ELF note handling.

A new provider - stapsdt - implements this support, as stapsdt probes do
not dynamically register themselves with DTrace.  This makes them less
powerful than DTrace-based USDT probes, but they do exist in programs and
libraries so should be supported.

As well as supporting ELF-note stapsdt defined probes in programs and
libraries, this patch supports dynamically-created probes that
are created via libstapsdt [1].  libstapsdt allows dynamic languages
like python to declare and fire probes by dynamically creating
a memfd-based shared library containing ELF notes for the probes.
With these changes we can also trace these probes.  This is very
useful since libstapsdt has python, NodeJS, go and luaJIT bindings.

[1] https://github.com/linux-usdt/libstapsdt

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 5d4758679e16b52aea0361c4162cec6b6f714101
      https://github.com/oracle/dtrace-utils/commit/5d4758679e16b52aea0361c4162cec6b6f714101
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/sdt_notes.h
    A test/unittest/usdt/tst.stapsdt-notes.r
    A test/unittest/usdt/tst.stapsdt-notes.sh

  Log Message:
  -----------
  selftests/usdt: add test for stapsdt note-defined probe firing, args

Add test identical to the args tests to verify probe firing and
arg retrieval work for stapsdt notes-defined STAP_PROBEn() probes.
Need a copy of the sdt.h file which is public domain, so add it
in the test directory.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 5771baf4b55eb703e7be05306a6bbd87aa2350f3
      https://github.com/oracle/dtrace-utils/commit/5771baf4b55eb703e7be05306a6bbd87aa2350f3
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.stapsdt-notes-lib.r
    A test/unittest/usdt/tst.stapsdt-notes-lib.sh

  Log Message:
  -----------
  selftests/usdt: add test for stapsdt notes in shared library

To ensure stapsdt notes are found/fire for shared libraries, create
a shared library and trace the stapsdt probes in it.  To ensure the
library is loaded when DTrace has started, call it early in the
program lifetime and sleep until DTrace starts; at that point
trace the probes with the pid and ensure they fire with expected args.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 28d9dae5be730d23fa32690e6e5e665e1422be36
      https://github.com/oracle/dtrace-utils/commit/28d9dae5be730d23fa32690e6e5e665e1422be36
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.stapsdt-notes-args.r
    A test/unittest/usdt/tst.stapsdt-notes-args.sh

  Log Message:
  -----------
  selftests/usdt: add test covering different forms of stapsdt note args

Add a test exercising various arg types supported by stapsdt notes;
register values, register + offset and constants.  The test generates
a binary with probes represented as follows on x86_64:

Displaying notes found in: .note.stapsdt
  Owner                 Data size       Description
  stapsdt              0x00000048       NT_STAPSDT (SystemTap probe descriptors)
    Provider: test_prov
    Name: args
    Location: 0x0000000000400557, Base: 0x00000000004005f8, Semaphore: 0x0000000000000000
    Arguments: -4 at -4(%rbp) 8@%rax 8@%rdx -4@$18

Verify we get expected data for the probe arguments.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: b88e1e4b49c534e32d5ed08739dad90f16a143ca
      https://github.com/oracle/dtrace-utils/commit/b88e1e4b49c534e32d5ed08739dad90f16a143ca
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.stapsdt-notes-pie.sh

  Log Message:
  -----------
  selftests/usdt: add test for stapsdt note-defined probe firing in -fPIE binary

Add test identical to the binary test ensuring that -fPIE is specified
in CFLAGS; this verifies that compilers that use such flags by default
(as is the case for Debian) can instrument stapsdt notes.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 22932a9875ecd01a4d299b869a80ab05ff0f8c7c
      https://github.com/oracle/dtrace-utils/commit/22932a9875ecd01a4d299b869a80ab05ff0f8c7c
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.stapsdt-notes-isenabled.r
    A test/unittest/usdt/tst.stapsdt-notes-isenabled.sh

  Log Message:
  -----------
  selftests/usdt: add is-enabled stapsdt tests using semaphores

Is-eanbled probes are implemented using semaphores where the
semaphore address is specified in the ELF notes and passed
in at probe creation time to have the kernel reference-count
probes; this allows us to have argument assembly code that
only gets executed when the stapsdt probe is in use.

Test is-enabled probes and ensure that the kernel-controlled
semaphore is not incremented for disabled probes.  Also test
that provider/probe names with double-underscores are converted
to dashes, i.e. one__probe because :one-probe.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 900d08cc01a0a02f2615098de3261f32d25b785e
      https://github.com/oracle/dtrace-utils/commit/900d08cc01a0a02f2615098de3261f32d25b785e
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    A test/unittest/usdt/tst.stapsdt-notes-l.sh
    A test/unittest/usdt/tst.stapsdt-notes-lv.sh

  Log Message:
  -----------
  test: add -l and -lv tests for stapsdt probes

The stapsdt support in DTrace provides limited support for argument data
for probes.  The number of arguments passed to a probe and their native
type (signed or unsigned int of size 1, 2, 4, or 8 bytes) is discoverable.

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


  Commit: 631747acd38a6ba63d2ace67b2cb976ca152cd09
      https://github.com/oracle/dtrace-utils/commit/631747acd38a6ba63d2ace67b2cb976ca152cd09
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M libdtrace/dt_pid.c
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  Fix various memory leaks related to stapsdt and usdt probes

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


  Commit: 907a03a814bf803fb5e1f23469134c007776c04b
      https://github.com/oracle/dtrace-utils/commit/907a03a814bf803fb5e1f23469134c007776c04b
  Author: Nick Alcock <nick.alcock at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/utils/Build

  Log Message:
  -----------
  test: install get_remote.sh

Otherwise this produces horrible output for every test run in
the entire testsuite when the testsuite is installed from an RPM.

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>


  Commit: 6cfa1d0143b877527d1b4b72ff39950340123fd7
      https://github.com/oracle/dtrace-utils/commit/6cfa1d0143b877527d1b4b72ff39950340123fd7
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/codegen/tst.tstring_ternary_nested.r

  Log Message:
  -----------
  test: Fix tstring_ternary_nested .r file

In commit 5b20226bc ("cg: optimize ternary expressions for strings"),
new tests were added.  Fix the apparent typo that is in one of them.

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


  Commit: a8b7c77942c3dcc7394b3b82801c830eb0bf2483
      https://github.com/oracle/dtrace-utils/commit/a8b7c77942c3dcc7394b3b82801c830eb0bf2483
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/disasm/tst.vartab-bvar.sh

  Log Message:
  -----------
  test: Remove errant debug statement

In commit e7eaa6216
("test: sdt:task::task_rename takes only 4 args on newer kernels"),
a debug statement was apparently added and left in, causing mismatch
with the .r results file.  Remove the statement.

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


  Commit: 5c639877bfb8da46855f8a23af3d07282424b173
      https://github.com/oracle/dtrace-utils/commit/5c639877bfb8da46855f8a23af3d07282424b173
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-06 (Wed, 06 Aug 2025)

  Changed paths:
    M test/unittest/actions/return/tst.override-getpid-entry.r.p
    M test/unittest/actions/return/tst.override-getpid-entry.sh
    M test/unittest/actions/return/tst.override-getpid-return.r.p
    M test/unittest/actions/return/tst.override-getpid-return.sh

  Log Message:
  -----------
  test: Fix post processing of return-action override-pid tests

In commit ee8c066e8 ("rawfbt: selectively allow return() in clauses"),
tests were introduced to check that return values are overwritten.  A
pid check value is output and used to facilitate comparisons to a .r
results file.

The post processing logic was flawed in two respects:

1 The check value was being pulled from the "01" entry.  Therefore,
  the "00" entry, typically appearing first, would not be converted.

2 Values were not sorted.  Sometimes this means the disorder just
  described would be avoided and the test would pass.  Mostly,
  it means that behavior can be erratic.

Sort results and use the "00" pid value for converting test results.
Add $dt_flags to the $dtrace line while we're at it.

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


  Commit: fb5a118124af9f752326dc52d823a28c1bbd6554
      https://github.com/oracle/dtrace-utils/commit/fb5a118124af9f752326dc52d823a28c1bbd6554
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-11 (Mon, 11 Aug 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    A test/unittest/variables/inline/tst.procfs-cwd.d
    A test/unittest/variables/inline/tst.procfs-root.d
    A test/unittest/variables/inline/tst.sched-chip.d
    A test/unittest/variables/inline/tst.sched-cpu.d
    A test/unittest/variables/inline/tst.sched-lgrp.d
    A test/unittest/variables/inline/tst.sched-pset.d

  Log Message:
  -----------
  vars: ensure 'cwd' and 'root' work and test other inline vars

Inline variable declarations that provide a tstring value were not
ensuring that tstring data got propagated correctly.

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


  Commit: fa94aae1da96f38066891f66870645d42cec4198
      https://github.com/oracle/dtrace-utils/commit/fa94aae1da96f38066891f66870645d42cec4198
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-11 (Mon, 11 Aug 2025)

  Changed paths:
    M libdtrace/dt_prov_uprobe.c
    A test/unittest/pid/tst.multi-return.d
    A test/unittest/pid/tst.multi-return.r

  Log Message:
  -----------
  Add function name to underlying return probes

In commit 35a4f05c2
("Add support for pid function "-" with absolute offset"),
function names were removed from underlying probe descriptions.
That was so that pid absolute offset probes (pid$pid:a.out:-:$absoff),
with function "-", could sit on the same underlying probes as
pid$pid:$mod:$fun:entry, pid$pid:$mod:$fun:$off, and USDT probes.

While that made sense for those probes, it did not make sense for pid
return probes:  their underlying probes, all with probe name "return",
are no longer distinguishable.  Further, there was no need for any such
change, since no other probes will have the same underlying return probe.

Name underlying return probes with function name.

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


  Commit: 9a4cd7999fab6670c0a6b34df84b49c2feeae3f3
      https://github.com/oracle/dtrace-utils/commit/9a4cd7999fab6670c0a6b34df84b49c2feeae3f3
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-11 (Mon, 11 Aug 2025)

  Changed paths:
    M libdtrace/dt_aggregate.c
    M libdtrace/dt_aggregate.h
    M libdtrace/dt_consume.c
    M libdtrace/dtrace.h
    M test/unittest/options/tst.aggrate-slow.d

  Log Message:
  -----------
  Snapshot aggregations just in time

Currently, dtrace periodically calls dtrace_work(), which in turn calls
dtrace_consume(), which among other things calls dtrace_aggregate_snap().
But aggregations are kept in entirety in the kernel's BPF maps.  There
is no need to snapshot the aggregations into user space unless we're
actually going to do something with aggregations.

Snapshot aggregations just in time -- that is, if there is a clear(),
trunc(), or printa() or if aggregations are to be printed at the end
of a dtrace session.

Skip the aggrate-slow test.  Just-in-time snapshots mean the semantics
of aggrate have changed.  A fast aggrate means nothing.  A slow aggrate
means we are supposed to use stale aggregation data, which would be
baffling.  A future patch is advised to deprecate aggrate entirely.

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


  Commit: 4e8c23df7a3bfbea431a8e63399c67cfee659dc4
      https://github.com/oracle/dtrace-utils/commit/4e8c23df7a3bfbea431a8e63399c67cfee659dc4
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-11 (Mon, 11 Aug 2025)

  Changed paths:
    M bpf/get_dvar.c
    A test/unittest/assocs/tst.collision.d

  Log Message:
  -----------
  dvar: ensure dynamic variables cannot overwrite eachother

As Eugene discovered, it was possible for dynamic variables (elements
of associative arrays and TLS variables) to overwrite eachother.  The
problem turns out to be due to the implementation of the BPF helper
bpf_map_update_elem().  In order for the update to be seen as an atomic
operation, it does not update the value of the map element in-place but
instead allocates a new element and places it in front of the old one
before it removes the old one.  The result is that the address of the
map element changes as a result of the bpf_map_update_elem() call.

Fortunately, we can just assign the address of the map element in the
value that we obtained using bpf_map_lookup_elem() because that gives
us a pointer to the map value, and we can assign directly into it.

In other words, we do not need the 2nd bpf_map_update_elem() anyway,
and since that was the culprit, removing it resolves the issue.

Test included.

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


  Commit: 564efa04c98ae749897cafb5421e1b6fd9c7c109
      https://github.com/oracle/dtrace-utils/commit/564efa04c98ae749897cafb5421e1b6fd9c7c109
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-12 (Tue, 12 Aug 2025)

  Changed paths:
    A test/unittest/sdt/tst.args-3.d
    A test/unittest/sdt/tst.args-3.r
    A test/unittest/sdt/tst.args-3.x
    A test/unittest/sdt/tst.args-4.d
    A test/unittest/sdt/tst.args-4.r
    A test/unittest/sdt/tst.args-4.x
    R test/unittest/sdt/tst.args.d
    R test/unittest/sdt/tst.args.r

  Log Message:
  -----------
  test: adjust sdt.tst.args.d for task_rename tracepoint differences

As of kernel 6.14, the task_rename tracepoint provides only 3 arguments
rather than 4 (the pid got dropped).

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


  Commit: 84cc72b83cf668cac50e27ea2d2819cebab00991
      https://github.com/oracle/dtrace-utils/commit/84cc72b83cf668cac50e27ea2d2819cebab00991
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-12 (Tue, 12 Aug 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    A test/unittest/error/tst.trace_string.d

  Log Message:
  -----------
  Pad strings in the output buffer with NUL bytes after terminating byte

The consumer checks if there are non-NUL bytes after the terminating
NUL byte to decide whether to print the contents of the output buffer
as a string or as raw bytes.  So, for strings, make sure that the
string is padded with NUL bytes.

A robust test that shows the problem can be hard to devise.  Some tests
encounter the problem.  This patch adds another test that might show
the problem.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 9de4acfd1c49089887a5b6fcbccd4b16204c9e60
      https://github.com/oracle/dtrace-utils/commit/9de4acfd1c49089887a5b6fcbccd4b16204c9e60
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M test/unittest/actions/trace/tst.array-char-multi-nul.d
    M test/unittest/actions/trace/tst.array-char-str-multi-nul.d
    M test/unittest/actions/trace/tst.array-char-str-no-nul.d
    M test/unittest/actions/trace/tst.array-char-str.d
    M test/unittest/actions/trace/tst.array-char-unprintable.d

  Log Message:
  -----------
  test: fix typos and clarify assertions

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


  Commit: 421d58afe1393e4edf38f81e50667722a2a7184a
      https://github.com/oracle/dtrace-utils/commit/421d58afe1393e4edf38f81e50667722a2a7184a
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M test/unittest/actions/trace/tst.array.d
    M test/unittest/actions/trace/tst.array.r

  Log Message:
  -----------
  test: improve test condition

Test with content that could be interpreted as a string if the consumer
handles things wrong.

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


  Commit: c7d9f2fea3e8d7af63e7915dabaaf1b537963c38
      https://github.com/oracle/dtrace-utils/commit/c7d9f2fea3e8d7af63e7915dabaaf1b537963c38
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M test/unittest/actions/trace/tst.struct-1-byte.r

  Log Message:
  -----------
  test: fix expected output for tst.struct-1-byte.d

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


  Commit: 8e6924a643f00609c7cfc3008031b590f85cee46
      https://github.com/oracle/dtrace-utils/commit/8e6924a643f00609c7cfc3008031b590f85cee46
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M libdtrace/dt_consume.c
    A test/unittest/actions/trace/tst.str-empty.d
    A test/unittest/actions/trace/tst.str-empty.r

  Log Message:
  -----------
  trace: handle the empty string in a sensible way

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>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>


  Commit: 2cc19c55c52bbe3b1161bb43d5d08e8eed11120a
      https://github.com/oracle/dtrace-utils/commit/2cc19c55c52bbe3b1161bb43d5d08e8eed11120a
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M libdtrace/dt_bpf.c
    M libdtrace/dt_cg.c
    M test/unittest/codegen/tst.str_const_length.d
    M test/unittest/codegen/tst.str_data_size.d
    M test/unittest/codegen/tst.str_store_var.d
    M test/unittest/funcs/inet_ntoa6/tst.inet_ntoa6.strsize_10.r
    M test/unittest/funcs/strjoin/tst.strjoin-bordercases.d
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size-2.d
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size-3.d
    M test/unittest/funcs/strjoin/tst.strjoin-capped-size.d
    M test/unittest/funcs/strjoin/tst.strjoin_nonDPTR.d
    A test/unittest/funcs/strlen/tst.capped-size.d
    R test/unittest/funcs/strlen/tst.capped-sizw.d
    M test/unittest/funcs/strtok/tst.strtok_long.d
    M test/unittest/funcs/strtok/tst.strtok_long.r
    M test/unittest/funcs/substr/tst.substr-stored-len.d
    M test/unittest/funcs/substr/tst.substr-strsize.d
    M test/unittest/funcs/substr/tst.substr_nonDPTR.d
    M test/unittest/funcs/tst.basename_nonDPTR.d
    M test/unittest/funcs/tst.inet_ntoa_nonDPTR.d
    M test/unittest/funcs/tst.lltostr-short.d
    M test/unittest/variables/tvar/tst.str-size.d

  Log Message:
  -----------
  string: ensure string size is handled correctly

A string is defined as a character array of size strsize.  Strings
that are less that strsize in length are terminated by a NUL byte.
This implies that the NUL byte is part of the array and therefore,
strsize is indeed the size of the array and not the maximum number
of characters in the string.

Tests are adjusted to reflect this behaviour.

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


  Commit: d96bf293af145ba9f9abed1f4ee118f8a2b1c441
      https://github.com/oracle/dtrace-utils/commit/d96bf293af145ba9f9abed1f4ee118f8a2b1c441
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-14 (Thu, 14 Aug 2025)

  Changed paths:
    M bpf/get_dvar.c

  Log Message:
  -----------
  bpf: force generating code that all verifiers accept

The compiler could optimize val = *valp in a way where the verifier on
older kernels would complain.  We use inline assembler to force the
not optimize this expression and instead to always read the value as a
scalar.

The kernel gained support for using map_value addresses read from the
stack with commit cd17d38f8b28f ("bpf: Permits pointers on stack for
helper calls") which first appeared in kernel 5.11.

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


  Commit: 8248f62f2c1c7ab83016d4bc74ce49637fc939df
      https://github.com/oracle/dtrace-utils/commit/8248f62f2c1c7ab83016d4bc74ce49637fc939df
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-15 (Fri, 15 Aug 2025)

  Changed paths:
    M libdtrace/dt_prov_uprobe.c

  Log Message:
  -----------
  uprobe: do not call populate_args() for pid probes

Only USDT (regular and is-enabled) probes need populate_args().

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


  Commit: ee2bd34655e4b9077a4b5c49cc30a553dd07b929
      https://github.com/oracle/dtrace-utils/commit/ee2bd34655e4b9077a4b5c49cc30a553dd07b929
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-15 (Fri, 15 Aug 2025)

  Changed paths:
    M test/unittest/actions/return/err.destructive.d
    M test/unittest/actions/return/tst.destructive.d

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

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


  Commit: 4f222aef5792eafa69b920a3e8f193b84dd1994d
      https://github.com/oracle/dtrace-utils/commit/4f222aef5792eafa69b920a3e8f193b84dd1994d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-15 (Fri, 15 Aug 2025)

  Changed paths:
    M libdtrace/dt_consume.c

  Log Message:
  -----------
  Use a consistent type for dtrace_consume()

For a long time, the type of dtrace_consume() has been
- int                 according to libdtrace/dtrace.h
- dtrace_workstatus_t according to libdtrace/dt_consume.c

With some recent compilers, however, this triggers the warning (redacted
here):

    libdtrace/dt_consume.c:3041:1: warning: conflicting types
    for ‘dtrace_consume’ due to enum/integer mismatch;
    have ‘dtrace_workstatus_t(...)’ [-Wenum-int-mismatch]
     3041 | dtrace_consume(...)
          | ^~~~~~~~~~~~~~
    In file included from libdtrace/dt_impl.h:14,
                     from libdtrace/dt_consume.c:16:
    libdtrace/dtrace.h:210:12: note: previous declaration of
    ‘dtrace_consume’ with type ‘int(...)’
      210 | extern int dtrace_consume(...)
          |            ^~~~~~~~~~~~~~

which is a nuisance.

Note that dtrace_consume() is called from only one site, where its
value is compared to DTRACE_WORKSTATUS_ERROR, which is an argument
for the dtrace_workstatus_t type.

On the other hand, dtrace_consume() is defined to return a variety
of values, like 0, dt_set_errno(), and dt_consume_cpu(), all of which
are int, but also DTRACE_WORKSTATUS_OKAY, DTRACE_WORKSTATUS_ERROR,
and rval, all of which are dtrace_workstatus_t.  But then rval itself
is set to dtrace_workstatus_t dt_consume_begin() or int
dt_consume_cpu().  So, there is simply no consistency here.

Having the prototype be dtrace_workstatus_t requires some amount
of code refactoring.

Just change the definition to int and clean up the warning.

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


  Commit: 321bf3fea1ac0481f51f588017e3bb363b7be5c3
      https://github.com/oracle/dtrace-utils/commit/321bf3fea1ac0481f51f588017e3bb363b7be5c3
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-08-18 (Mon, 18 Aug 2025)

  Changed paths:
    M COMMANDLINE-OPTIONS
    A test/unittest/preprocessor/tst.predefined.r
    A test/unittest/preprocessor/tst.predefined.sh

  Log Message:
  -----------
  test: Add test for predefined preprocessor definitions

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


  Commit: 7c4dca15d94a94c603f1ba6bccb13d16ab49551f
      https://github.com/oracle/dtrace-utils/commit/7c4dca15d94a94c603f1ba6bccb13d16ab49551f
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-18 (Mon, 18 Aug 2025)

  Changed paths:
    M libdtrace/Build
    M libdtrace/dt_impl.h
    M libdtrace/dt_open.c
    M libdtrace/dt_subr.c
    A libdtrace/dt_version.c
    M libdtrace/dt_version.h

  Log Message:
  -----------
  Refactor the versioning handling system (code movement)

Consolidate all versioning related code into dt_version.c and
dt_version.h, as a first step to refactoring how versioning info
is managed in the DTrace code base.

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


  Commit: de80c1ff1d8034f1c1c7ae0a1b1a32e58c56b081
      https://github.com/oracle/dtrace-utils/commit/de80c1ff1d8034f1c1c7ae0a1b1a32e58c56b081
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-18 (Mon, 18 Aug 2025)

  Changed paths:
    M GNUmakefile
    M libdtrace/.gitignore
    M libdtrace/Build
    M libdtrace/dt_version.h
    A libdtrace/mkvers
    A libdtrace/versions.list
    M test/unittest/dtrace-util/tst.APIVersion.d
    M test/unittest/dtrace-util/tst.APIVersion.r
    A test/unittest/dtrace-util/tst.APIVersion.r.p
    M test/unittest/options/tst.version.r
    M test/unittest/options/tst.version.sh

  Log Message:
  -----------
  Refactor the versioning handling system (consolidate data)

Rather than having multiple data items that need to be updated whenever
a new version is released, a single entry in versions.list will now be
all that is needed.  The mkvers script generates the necessary defines,
and is also used to return the most recent release version to be used
in GNUmakefile.

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


  Commit: a48a76472546c395334f985326b916da077ad8f7
      https://github.com/oracle/dtrace-utils/commit/a48a76472546c395334f985326b916da077ad8f7
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-08-29 (Fri, 29 Aug 2025)

  Changed paths:
    M libdtrace/Build
    M libdtrace/mkvers

  Log Message:
  -----------
  version: fix DTrace version string

Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: 294b90a49baadf524a3e150395875be1e445302b
      https://github.com/oracle/dtrace-utils/commit/294b90a49baadf524a3e150395875be1e445302b
  Author: Ruud van der Pas <ruud.vanderpas at oracle.com>
  Date:   2025-09-02 (Tue, 02 Sep 2025)

  Changed paths:
    A examples/README.md
    A examples/fcalls.d
    A examples/io-cast-net.d
    A examples/io-stats.d
    A examples/sched-simple.d
    A examples/sched-stats.d
    A examples/thread-ids.d
    A examples/var-scope.d

  Log Message:
  -----------
  examples: include a first set of scripts and a README file

Add 7 example scripts and a README file.

2025-08-28  Ruud van der Pas  <ruud.vanderpas at oracle.com>

	* examples/fcalls.d: List and count function calls.
	* examples/io-cast-net.d: Show how to use wildcards.
	* examples/io-stats.d: Display I/O characteristics.
	* examples/sched-simple.d: Count on/off the CPU.
	* examples/sched-stats.d: Extensive scheduler statistics.
	* examples/thread-ids.d: Mapping of thread IDs.
	* examples/var-scope.d: Demonstrate scoping rules.
	* examples/README.md: Brief description of all examples.

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


  Commit: 4f4d05ba7c621c30b8daff54dbf0ef1535117efc
      https://github.com/oracle/dtrace-utils/commit/4f4d05ba7c621c30b8daff54dbf0ef1535117efc
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-02 (Tue, 02 Sep 2025)

  Changed paths:
    M examples/README.md
    A examples/language_features/000intro-hello-world.d
    A examples/language_features/001intro-ERROR-probe.d
    A examples/language_features/002intro-global-variables.d
    A examples/language_features/003intro-C-like.d
    A examples/language_features/004intro-ternary.d
    A examples/language_features/005intro-strings.d
    A examples/language_features/006intro-associative.d
    A examples/language_features/007intro-this-variables.d
    A examples/language_features/008intro-self-variables.d
    A examples/language_features/009intro-pragmas.d
    A examples/language_features/010intro-external-variables.d
    A examples/language_features/011intro-preprocessor.d
    A examples/language_features/012intro-predicates.d
    A examples/language_features/100list_probes.sh
    A examples/language_features/101count_probes_by_provider.sh
    A examples/language_features/102list_probe_arguments.sh
    A examples/language_features/110provider_profile.d
    A examples/language_features/120provider_proc.d
    A examples/language_features/130provider_sched_on_off_cpu.d
    A examples/language_features/131provider_sched_enqueue_dequeue.d
    A examples/language_features/140provider_syscall.d
    A examples/language_features/150provider_fbt.d
    A examples/language_features/160provider_sdt_rawtp.sh
    A examples/language_features/170provider_lockstat.sh
    A examples/language_features/171provider_io.d
    A examples/language_features/172provider_ip.d
    A examples/language_features/180provider_cpc.d
    A examples/language_features/200built-in-variables-probe.d
    A examples/language_features/201built-in-variables-timestamps.d
    A examples/language_features/202built-in-variables-args.d
    A examples/language_features/203built-in-variables-process-info.d
    A examples/language_features/204built-in-variables-uregs.d
    A examples/language_features/300actions-exit.sh
    A examples/language_features/301actions-print.d
    A examples/language_features/302actions-strings.d
    A examples/language_features/303actions-strings-paths.d
    A examples/language_features/304actions-system.d
    A examples/language_features/305actions-progenyof.d
    A examples/language_features/306actions-speculations.d
    A examples/language_features/307actions-callstack.d
    A examples/language_features/310actions-alloca-copy.d
    A examples/language_features/311actions-rand.d
    A examples/language_features/500aggregations-intro.d
    A examples/language_features/501aggregations-names-keys.d
    A examples/language_features/502aggregations-basic-funcs.d
    A examples/language_features/503aggregations-stack.d
    A examples/language_features/504aggregations-printa.d
    A examples/language_features/505aggregations-quantize.d
    A examples/language_features/506aggregations-clear-trunc.d
    A examples/language_features/507aggregations-trunc5.d
    A examples/language_features/508aggregations-normalize.d

  Log Message:
  -----------
  examples: Add "language features" demo scripts

The idea is to have lots of short scripts, each illustrating a
D language feature.

The numbering scheme serves two purposes:

*)  the scripts are more or less in ascending order
    of difficulty, although that's admittedly a tricky
    concept in such a multi-dimensional space

*)  there is some grouping of themes -- e.g.,
    "introduction", "providers", "built-in variables", etc.

The combination of comments and code is intended to help either
a human user or an AI bot to learn how to use the D language.

Other examples have been based on functional objectives (doing
simple but useful tasks).  These new examples are based on language
features.  A future set of examples could be based on errors!  That
is, the scripts generate errors of different sorts that we would
illustrate (and explain how to fix).

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


  Commit: 205b718e60a78ec742982d243be277d9d019878d
      https://github.com/oracle/dtrace-utils/commit/205b718e60a78ec742982d243be277d9d019878d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-04 (Thu, 04 Sep 2025)

  Changed paths:
    M libdtrace/dt_prov_ip.c

  Log Message:
  -----------
  Convert ip6_finish_output to rawfbt

With commit fe2101e55 ("fbt: implement based on fentry/fexit probes")
test/unittest/ip/tst.ipv6localicmp.sh started to fail.  The problem
appears to be that fbt::ip6_finish_output:entry, which is needed for
ip:::send, does not fire.

Use rawfbt for this probe to revert back to kprobes in this case.

Other fbt probes may also be impacted, but this case showed up in testing.

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


  Commit: 2ac25e06153636fc07b156886ab79dc736012e55
      https://github.com/oracle/dtrace-utils/commit/2ac25e06153636fc07b156886ab79dc736012e55
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_cg.c

  Log Message:
  -----------
  cg: fix offset for > 8 bit bitfields in dt_cg_ctf_offsetof()

The tcp provider uses dt_cg_tramp_get_member() to retrieve the
offset of the sk_protocol field in struct sock.  However it
returns the wrong value on UEK6 since it is an 8-bit bitfield.
>From pahole we see:

	unsigned int               __sk_flags_offset[0]; /*   560     0 */
	unsigned int               sk_padding:1;         /*   560: 0  4 */
	unsigned int               sk_kern_sock:1;       /*   560: 1  4 */
	unsigned int               sk_no_check_tx:1;     /*   560: 2  4 */
	unsigned int               sk_no_check_rx:1;     /*   560: 3  4 */
	unsigned int               sk_userlocks:4;       /*   560: 4  4 */
	unsigned int               sk_protocol:8;        /*   560: 8  4 */

In other words it is really at offset 561 but because we just
lookup the member offset and not the member type offset we get the
wrong value for the sk_protoocol.

This in turn causes tcp state-change probes (and in-progress UDP
probes) to not fire since we verify that sk_protocol == IPPROTO_TCP.

The fix is to look up the member _type_ offset and add it to the
bit offset we get for the member itself.  With this in place the
state-change probes fire, but the local tcp tests still fail due
to separate issues with the tcp:::accept-established probe.

This issue is not seen on more recent kernels because sk_protocol
becomes a __u16 as the number of protocols exceeds 256.

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


  Commit: 8b21972fd58b26ee72a65b1eab258c7ce72b534d
      https://github.com/oracle/dtrace-utils/commit/8b21972fd58b26ee72a65b1eab258c7ce72b534d
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_prov_tcp.c

  Log Message:
  -----------
  tcp provider: use __ip_queue_xmit() as it is non-static on 5.4

On older kernels - 5.4 to be precise - ip_queue_xmit() is a static
function, so it is better to instrument __ip_queue_xmit() as it
is extern so not prone to optimization on 5.4 and later kernels.
With this change, the following previously-failing-on-UEK6U3 tcp tests
pass (and continue to pass when tested on an upstream kernel):

tst.ipv4localtcp.sh
tst.ipv4remotetcp.sh
tst.ipv6localtcp.sh

More work is required to fix up the tcpstate tests for UEK6U3.

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


  Commit: c08a5fcf23555c21af73e193b49e34dc5dfe1c5f
      https://github.com/oracle/dtrace-utils/commit/c08a5fcf23555c21af73e193b49e34dc5dfe1c5f
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M dlibs/aarch64/5.11/ip.d
    M dlibs/aarch64/5.11/tcp.d
    M dlibs/aarch64/5.12/ip.d
    M dlibs/aarch64/5.12/tcp.d
    M dlibs/aarch64/5.14/ip.d
    M dlibs/aarch64/5.14/tcp.d
    M dlibs/aarch64/5.16/ip.d
    M dlibs/aarch64/5.16/tcp.d
    M dlibs/aarch64/5.2/ip.d
    M dlibs/aarch64/5.2/tcp.d
    M dlibs/aarch64/5.6/ip.d
    M dlibs/aarch64/5.6/tcp.d
    M dlibs/aarch64/6.1/ip.d
    M dlibs/aarch64/6.1/tcp.d
    M dlibs/aarch64/6.10/ip.d
    M dlibs/aarch64/6.10/tcp.d
    M dlibs/x86_64/5.11/ip.d
    M dlibs/x86_64/5.11/tcp.d
    M dlibs/x86_64/5.12/ip.d
    M dlibs/x86_64/5.12/tcp.d
    M dlibs/x86_64/5.14/ip.d
    M dlibs/x86_64/5.14/tcp.d
    M dlibs/x86_64/5.16/ip.d
    M dlibs/x86_64/5.16/tcp.d
    M dlibs/x86_64/5.2/ip.d
    M dlibs/x86_64/5.2/tcp.d
    M dlibs/x86_64/5.6/ip.d
    M dlibs/x86_64/5.6/tcp.d
    M dlibs/x86_64/6.1/ip.d
    M dlibs/x86_64/6.1/tcp.d
    M dlibs/x86_64/6.10/ip.d
    M dlibs/x86_64/6.10/tcp.d
    M libdtrace/dt_prov_tcp.c
    M libdtrace/ip.d
    M libdtrace/tcp.d

  Log Message:
  -----------
  tcp provider: support tcp:::accept-established in absence of skb

On a 5.4 kernel, the function we instrument for tcp:::accept-established
(tcp_init_transfer()) does not have a struct sk_buff * as argument;
that does not appear until 5.10.  As a result we need to fake up
the IP and TCP headers from the TCP socket.  We can reuse existing
code (ensuring to mark accept-established correctly as an _INBOUND
probe) once we fix up references in ip.d to be arg6 and not arg7 (this
parameter is used to mark a probe point as inbound, outbound or as a
state change).  We need to ensure that args[2] is translated from
a __dtrace_tcp_void_ip_t * to get this to work for the IP header.

For the TCP header we need a similar solution; add a
__dtrace_tcp_void_tcp_t type and translate from either the tcp header
passed in (if non-null) or use arg3 (the socket) to fill out the TCP
header info.  We can get the ports, seq/ack and because we know that
only accept-established is used we know the flags will just be an
ACK.

With this in place (along with previous fixes for the TCP provider)
the TCP state-related tests finally pass on a 5.4 kernel.

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


  Commit: 3f41d21e8f1e432dd21999d5f11c8b219d8ba8ff
      https://github.com/oracle/dtrace-utils/commit/3f41d21e8f1e432dd21999d5f11c8b219d8ba8ff
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M dlibs/aarch64/5.11/udp.d
    M dlibs/aarch64/5.12/udp.d
    M dlibs/aarch64/5.14/udp.d
    M dlibs/aarch64/5.16/udp.d
    M dlibs/aarch64/5.2/udp.d
    M dlibs/aarch64/5.6/udp.d
    M dlibs/aarch64/6.1/udp.d
    M dlibs/aarch64/6.10/udp.d
    M dlibs/x86_64/5.11/udp.d
    M dlibs/x86_64/5.12/udp.d
    M dlibs/x86_64/5.14/udp.d
    M dlibs/x86_64/5.16/udp.d
    M dlibs/x86_64/5.2/udp.d
    M dlibs/x86_64/5.6/udp.d
    M dlibs/x86_64/6.1/udp.d
    M dlibs/x86_64/6.10/udp.d
    M libdtrace/Build
    A libdtrace/dt_prov_udp.c
    M libdtrace/dt_provider.c
    M libdtrace/dt_provider.h
    M libdtrace/udp.d
    M test/unittest/dtrace-util/tst.ListProbes.r
    M test/unittest/dtrace-util/tst.ListProbes.sh
    M test/unittest/udp/test.x

  Log Message:
  -----------
  udp: new provider

Support UDP send and receive, using raw fbt probes; since
udp.d changes sync dlibs also.  Update test.x provider check
for udp, and add udp to expected providers.

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


  Commit: 68467655069fa3782a19fd5f350b8c9fa38bf5c2
      https://github.com/oracle/dtrace-utils/commit/68467655069fa3782a19fd5f350b8c9fa38bf5c2
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M test/unittest/udp/tst.ipv4remoteudp.sh

  Log Message:
  -----------
  test/unittest/udp: enable IPv4 remote udp test

It just tests send so we can send to remote address
and verify probe firing.

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


  Commit: 79a3a50b4db78d2a723fcd9dd95c3928a3cc0c48
      https://github.com/oracle/dtrace-utils/commit/79a3a50b4db78d2a723fcd9dd95c3928a3cc0c48
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M test/unittest/dtrace-util/tst.APIVersion.r

  Log Message:
  -----------
  test: Update DTrace version string

Commit a48a76472 ("version: fix DTrace version string") changed
the DTrace version string without addressing associated testing.

Update the test suite to match the version string change.

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


  Commit: 4a6c00af779d7238e3746cbfcfcbbaa5783ae6a4
      https://github.com/oracle/dtrace-utils/commit/4a6c00af779d7238e3746cbfcfcbbaa5783ae6a4
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_provider_tp.c

  Log Message:
  -----------
  Clean up unused argsz

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 9da4c706160dead898ac0d0b93115269debb7baf
      https://github.com/oracle/dtrace-utils/commit/9da4c706160dead898ac0d0b93115269debb7baf
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_provider_tp.c

  Log Message:
  -----------
  Defer stripping out "__data_loc" until we know that is useful

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: d39385d2ce42ab2ee118b682b0940c6a1f2baa61
      https://github.com/oracle/dtrace-utils/commit/d39385d2ce42ab2ee118b682b0940c6a1f2baa61
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_provider_tp.c

  Log Message:
  -----------
  Add more robust mechanism to skip tracepoint common fields

In dt_tp_event_info(), we parse tracepoint format files -- e.g.,
/sys/kernel/debug/tracing/events/*/*/format.  Specifically, we
are interested in the argument descriptions found in the file,
but we are interested in skipping over "common fields."

The mechanism we used for this purpose was, in dt_provider_tp.c,
to hardwire the number of fields to skip to SKIP_FIELDS_COUNT=4,
assuming the common fields would always be type, flags, pid, and
preempt_count.

This is hardly a robust mechanism.  For example, consider
    https://kernel.googlesource.com/pub/scm/linux/kernel/git/rt/
        linux-rt-devel/+/refs/tags/v5.9.1-rt20-patches/patches/
        preempt-lazy-support.patch
which introduces a preempt_lazy_count common field (on top of
others).  Recent dtrace testing on RHCK 5.14 indicates widespread
test failures due to this problem.

Implement a more robust mechanism.

Specifically, instead of skipping a hardwired (SKIP_FIELDS_COUNT=4)
number of common fields, look for "common_" names.  E.g., in
kernel/trace/trace_events.c in trace_define_common_fields(), we
see the macro __common_field() is used to define common fields,
and the names are prepended with "common_".

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>


  Commit: 523407e29261feeb2f47f99af78ec4a1d2435fda
      https://github.com/oracle/dtrace-utils/commit/523407e29261feeb2f47f99af78ec4a1d2435fda
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_pid.c

  Log Message:
  -----------
  stapsdt: fix out-of-bounds access when provider name is not specified

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


  Commit: fe1f1cd05abe77266b1754c8c8f57ef69216eb9d
      https://github.com/oracle/dtrace-utils/commit/fe1f1cd05abe77266b1754c8c8f57ef69216eb9d
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    M libdtrace/dt_printf.c

  Log Message:
  -----------
  printf: fake type node is only needed for aggregation printing

Regular printf validation was passing DTRACEACT_AGGREGATION as kind
argument, even though the action was not doing anything with
aggregations.  Pass DTRACEACT_NONE instead because the argument is not
used in that case.

Also, do not populate the fake type node if the validation is called
for anything other than aggregations.

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


  Commit: 13a8428d31f4a066cebe26e9864f6d2110760176
      https://github.com/oracle/dtrace-utils/commit/13a8428d31f4a066cebe26e9864f6d2110760176
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_parser.c
    A test/unittest/funcs/alloca/tst.alloca-arith.d
    M test/unittest/funcs/alloca/tst.alloca-funcs.d
    M test/unittest/funcs/alloca/tst.alloca-funcs.r

  Log Message:
  -----------
  alloca: fix subtraction of two alloca pointers

The subtraction of two alloca pointers should not be receiving the
ALLOCA taint because it is an integer value (of type ptrdiff_t).

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


  Commit: 394fb55a75c6de9e7c74282eb8f6dca314fa73a3
      https://github.com/oracle/dtrace-utils/commit/394fb55a75c6de9e7c74282eb8f6dca314fa73a3
  Author: Kris Van Hees <kris.van.hees at oracle.com>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M libdtrace/dt_cg.c
    A test/unittest/actions/trace/tst.alloca.d
    A test/unittest/actions/trace/tst.alloca.r
    A test/unittest/actions/trace/tst.alloca.r.p

  Log Message:
  -----------
  trace: print alloca pointers as actual pointer values

Because alloca pointers are stored internally as offsets into the
scratchmem area, they were printed as small integers.  They are
now printed as actual pointer values into kernel space.

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


  Commit: edfbf0ddd973e39afb7006e9c3f77e97eada68a4
      https://github.com/oracle/dtrace-utils/commit/edfbf0ddd973e39afb7006e9c3f77e97eada68a4
  Author: Elena Zannoni <elena.zannoni at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M examples/fcalls.d
    M examples/io-cast-net.d
    M examples/io-stats.d
    M examples/language_features/000intro-hello-world.d
    M examples/language_features/001intro-ERROR-probe.d
    M examples/language_features/002intro-global-variables.d
    M examples/language_features/003intro-C-like.d
    M examples/language_features/004intro-ternary.d
    M examples/language_features/005intro-strings.d
    M examples/language_features/006intro-associative.d
    M examples/language_features/007intro-this-variables.d
    M examples/language_features/008intro-self-variables.d
    M examples/language_features/009intro-pragmas.d
    M examples/language_features/010intro-external-variables.d
    M examples/language_features/011intro-preprocessor.d
    M examples/language_features/012intro-predicates.d
    M examples/language_features/100list_probes.sh
    M examples/language_features/101count_probes_by_provider.sh
    M examples/language_features/102list_probe_arguments.sh
    M examples/language_features/110provider_profile.d
    M examples/language_features/120provider_proc.d
    M examples/language_features/130provider_sched_on_off_cpu.d
    M examples/language_features/131provider_sched_enqueue_dequeue.d
    M examples/language_features/140provider_syscall.d
    M examples/language_features/150provider_fbt.d
    M examples/language_features/160provider_sdt_rawtp.sh
    M examples/language_features/170provider_lockstat.sh
    M examples/language_features/171provider_io.d
    M examples/language_features/172provider_ip.d
    M examples/language_features/180provider_cpc.d
    M examples/language_features/200built-in-variables-probe.d
    M examples/language_features/201built-in-variables-timestamps.d
    M examples/language_features/202built-in-variables-args.d
    M examples/language_features/203built-in-variables-process-info.d
    M examples/language_features/204built-in-variables-uregs.d
    M examples/language_features/300actions-exit.sh
    M examples/language_features/301actions-print.d
    M examples/language_features/302actions-strings.d
    M examples/language_features/303actions-strings-paths.d
    M examples/language_features/304actions-system.d
    M examples/language_features/305actions-progenyof.d
    M examples/language_features/306actions-speculations.d
    M examples/language_features/307actions-callstack.d
    M examples/language_features/310actions-alloca-copy.d
    M examples/language_features/311actions-rand.d
    M examples/language_features/500aggregations-intro.d
    M examples/language_features/501aggregations-names-keys.d
    M examples/language_features/502aggregations-basic-funcs.d
    M examples/language_features/503aggregations-stack.d
    M examples/language_features/504aggregations-printa.d
    M examples/language_features/505aggregations-quantize.d
    M examples/language_features/506aggregations-clear-trunc.d
    M examples/language_features/507aggregations-trunc5.d
    M examples/language_features/508aggregations-normalize.d
    M examples/sched-simple.d
    M examples/sched-stats.d
    M examples/thread-ids.d
    M examples/var-scope.d

  Log Message:
  -----------
  Add license and copyright information to the examples


  Commit: 7147201e20d63bbae86079b7e6331fa718434557
      https://github.com/oracle/dtrace-utils/commit/7147201e20d63bbae86079b7e6331fa718434557
  Author: Elena Zannoni <elena.zannoni at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    A doc/userguide/explanation/dtrace-about.md
    A doc/userguide/explanation/dtrace-components-and-terminology.md
    A doc/userguide/explanation/dtrace-concepts.md
    A doc/userguide/how-to/dtrace-guide.md
    A doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
    A doc/userguide/how-to/dtrace-howto-install-dtrace.md
    A doc/userguide/how-to/dtrace-howto-list-and-enable-probes.md
    A doc/userguide/how-to/dtrace-howto-use-predicates.md
    A doc/userguide/index.md
    A doc/userguide/reference/aggregation.md
    A doc/userguide/reference/aggregation_avg.md
    A doc/userguide/reference/aggregation_count.md
    A doc/userguide/reference/aggregation_llquantize.md
    A doc/userguide/reference/aggregation_lquantize.md
    A doc/userguide/reference/aggregation_max.md
    A doc/userguide/reference/aggregation_min.md
    A doc/userguide/reference/aggregation_quantize.md
    A doc/userguide/reference/aggregation_stddev.md
    A doc/userguide/reference/aggregation_sum.md
    A doc/userguide/reference/compiler_options.md
    A doc/userguide/reference/d_program_syntax_reference.md
    A doc/userguide/reference/d_program_syntax_reference_program_structure.md
    A doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
    A doc/userguide/reference/dtrace-ref-DefaultAction.md
    A doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
    A doc/userguide/reference/dtrace-ref-StaticallyDefinedTracingofUserApplications.md
    A doc/userguide/reference/dtrace-ref-StructsandUnions.md
    A doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
    A doc/userguide/reference/dtrace-ref-Variables.md
    A doc/userguide/reference/dtrace-ref-cleanpath.md
    A doc/userguide/reference/dtrace-ref-link-ntop.md
    A doc/userguide/reference/dtrace-ref-speculation.md
    A doc/userguide/reference/dtrace_builtin_variable_reference.md
    A doc/userguide/reference/dtrace_command_desc.md
    A doc/userguide/reference/dtrace_command_exit_status.md
    A doc/userguide/reference/dtrace_command_operands.md
    A doc/userguide/reference/dtrace_command_options.md
    A doc/userguide/reference/dtrace_command_reference.md
    A doc/userguide/reference/dtrace_functions.md
    A doc/userguide/reference/dtrace_providers.md
    A doc/userguide/reference/dtrace_providers_cpc.md
    A doc/userguide/reference/dtrace_providers_dtrace.md
    A doc/userguide/reference/dtrace_providers_fbt.md
    A doc/userguide/reference/dtrace_providers_io.md
    A doc/userguide/reference/dtrace_providers_lockstat.md
    A doc/userguide/reference/dtrace_providers_pid.md
    A doc/userguide/reference/dtrace_providers_proc.md
    A doc/userguide/reference/dtrace_providers_profile.md
    A doc/userguide/reference/dtrace_providers_rawtp.md
    A doc/userguide/reference/dtrace_providers_sched.md
    A doc/userguide/reference/dtrace_providers_sdt.md
    A doc/userguide/reference/dtrace_providers_syscall.md
    A doc/userguide/reference/dtrace_runtime_options.md
    A doc/userguide/reference/dtrace_stability_reference.md
    A doc/userguide/reference/dynamic_runtime_options.md
    A doc/userguide/reference/function_alloca.md
    A doc/userguide/reference/function_basename.md
    A doc/userguide/reference/function_bcopy.md
    A doc/userguide/reference/function_clear.md
    A doc/userguide/reference/function_commit.md
    A doc/userguide/reference/function_copyin.md
    A doc/userguide/reference/function_copyinstr.md
    A doc/userguide/reference/function_copyinto.md
    A doc/userguide/reference/function_copyout.md
    A doc/userguide/reference/function_copyoutstr.md
    A doc/userguide/reference/function_denormalize.md
    A doc/userguide/reference/function_dirname.md
    A doc/userguide/reference/function_discard.md
    A doc/userguide/reference/function_exit.md
    A doc/userguide/reference/function_freopen.md
    A doc/userguide/reference/function_ftruncate.md
    A doc/userguide/reference/function_func.md
    A doc/userguide/reference/function_getmajor.md
    A doc/userguide/reference/function_getminor.md
    A doc/userguide/reference/function_htonl.md
    A doc/userguide/reference/function_htonll.md
    A doc/userguide/reference/function_htons.md
    A doc/userguide/reference/function_index.md
    A doc/userguide/reference/function_inet_ntoa.md
    A doc/userguide/reference/function_inet_ntoa6.md
    A doc/userguide/reference/function_inet_ntop.md
    A doc/userguide/reference/function_lltostr.md
    A doc/userguide/reference/function_mod.md
    A doc/userguide/reference/function_mutex_owned.md
    A doc/userguide/reference/function_mutex_owner.md
    A doc/userguide/reference/function_mutex_type_adaptive.md
    A doc/userguide/reference/function_mutex_type_spin.md
    A doc/userguide/reference/function_normalize.md
    A doc/userguide/reference/function_ntohl.md
    A doc/userguide/reference/function_ntohll.md
    A doc/userguide/reference/function_ntohs.md
    A doc/userguide/reference/function_print.md
    A doc/userguide/reference/function_printa.md
    A doc/userguide/reference/function_printf.md
    A doc/userguide/reference/function_progenyof.md
    A doc/userguide/reference/function_raise.md
    A doc/userguide/reference/function_rand.md
    A doc/userguide/reference/function_rindex.md
    A doc/userguide/reference/function_rw_iswriter.md
    A doc/userguide/reference/function_rw_read_held.md
    A doc/userguide/reference/function_rw_write_held.md
    A doc/userguide/reference/function_setopt.md
    A doc/userguide/reference/function_speculate.md
    A doc/userguide/reference/function_speculation.md
    A doc/userguide/reference/function_stack.md
    A doc/userguide/reference/function_strchr.md
    A doc/userguide/reference/function_strjoin.md
    A doc/userguide/reference/function_strlen.md
    A doc/userguide/reference/function_strrchr.md
    A doc/userguide/reference/function_strstr.md
    A doc/userguide/reference/function_strtok.md
    A doc/userguide/reference/function_substr.md
    A doc/userguide/reference/function_sym.md
    A doc/userguide/reference/function_system.md
    A doc/userguide/reference/function_trace.md
    A doc/userguide/reference/function_tracemem.md
    A doc/userguide/reference/function_uaddr.md
    A doc/userguide/reference/function_ufunc.md
    A doc/userguide/reference/function_umod.md
    A doc/userguide/reference/function_ustack.md
    A doc/userguide/reference/function_usym.md
    A doc/userguide/reference/runtime_options.md
    A doc/userguide/reference/setting_dtrace_compiler_and_runtime_options.md
    A doc/userguide/reference/unimplemented_functions.md

  Log Message:
  -----------
  Initial commit of the user guide in markdown format

Signed-off-by: Elena Zannoni <elena.zannoni at oracle.com>


  Commit: fdcab087f71aba66a710bcdc6807c65bf13354ac
      https://github.com/oracle/dtrace-utils/commit/fdcab087f71aba66a710bcdc6807c65bf13354ac
  Author: Eugene Loh <eugene.loh at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M test/unittest/error/tst.argv-corruption-by-error.d

  Log Message:
  -----------
  test: Add trigger for more predictable run time

The test had no trigger and so waited haphazardly for the write:entry
probe to fire.  This typically worked, but led to variable run times
and even, though rarely, a test timeout and failure.

Add a trigger for more reproducible and typically shorter run times.

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


  Commit: bb37d5219f76c58e5dbcc9a02054066320ae883d
      https://github.com/oracle/dtrace-utils/commit/bb37d5219f76c58e5dbcc9a02054066320ae883d
  Author: Elena Zannoni <elena.zannoni at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M dtrace.spec

  Log Message:
  -----------
  Make sure the doc dir is cleaned up on RPM uninstall

Add to the RPM file list the entire dtrace doc directory, not just its
contents.

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


  Commit: 7b3a44719d539044b8508b7d8bebcbef011059ac
      https://github.com/oracle/dtrace-utils/commit/7b3a44719d539044b8508b7d8bebcbef011059ac
  Author: Alan Maguire <alan.maguire at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M libdtrace/dt_grammar.y
    A test/unittest/enum/err.EnumMissingSymbol-1.d
    A test/unittest/enum/err.EnumMissingSymbol-2.d
    A test/unittest/enum/err.EnumMissingSymbol-3.d
    A test/unittest/enum/tst.EnumTrailingComma.d

  Log Message:
  -----------
  enum: support declarations with a trailing comma

When doing python tracing, it was recently observed that #include'ing
a file with enum declarations with trailing commas fails; this is
due to the D grammar being strict about the last enumerator value
not having a trailing comma.  So

enum foo {
	BAR,
	BAZ
};

is permitted, but

enum foo {
	BAR,
	BAZ,
};

is not.  The latter pattern is used quite frequently in #include
files, especially where conditional compilation of some enum
values is done.

Relax this constraint and add a test to validate that D compilation
succeeds with the trailing comma in an enum declaration.

Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: 96fe578eee6d65d86dccbf5c657ba6e54a99eec7
      https://github.com/oracle/dtrace-utils/commit/96fe578eee6d65d86dccbf5c657ba6e54a99eec7
  Author: Elena Zannoni <elena.zannoni at oracle.com>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M Build

  Log Message:
  -----------
  Add the userguide to the install step

Signed-off-by: Elena Zannoni <elena.zannoni at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  Commit: ad6cc1cbc7415e097f4f6b3031a960b194cf255b
      https://github.com/oracle/dtrace-utils/commit/ad6cc1cbc7415e097f4f6b3031a960b194cf255b
  Author: Bruce McCulloch <bruce.mcculloch at oracle.com>
  Date:   2025-09-22 (Mon, 22 Sep 2025)

  Changed paths:
    A llm/llms-dtrace-complete.txt

  Log Message:
  -----------
  Add LLM context file.

Signed-off-by: Bruce McCulloch <bruce.mcculloch at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>


  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>


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

  Changed paths:
    M dtrace.spec
    M libdtrace/versions.list

  Log Message:
  -----------
  Bump up the version to 2.0.4

Note that test/unittest/preprocessor/tst.predefined.sh checks that the
__SUNW_D_VERSION preprocessor symbol is consistent with the "dtrace -vV"
message, and both of them simply use the last entry of versions.list and
therefore will be consistent for in-tree builds.

When RPM packages are built from the .spec file, however, _DT_VERSION,
used for the "dtrace -vV" "This is" message, comes from the .spec file.

Append a 2.0.4 entry to versions.list.

Remove the VERSION=%{version} from dtrace.spec build's make line, so
that the version of the implementation is defined by the source code
itself.  The version in the spec file should be only the version of the
packaging.

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


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

  Changed paths:
    M dtrace.spec

  Log Message:
  -----------
  Add more Orabugs to dtrace.spec

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


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

  Changed paths:
    M doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
    M doc/userguide/reference/dtrace-ref-Variables.md
    M doc/userguide/reference/dtrace_providers_io.md
    M doc/userguide/reference/dtrace_providers_lockstat.md
    M doc/userguide/reference/dtrace_providers_proc.md

  Log Message:
  -----------
  doc: Add blank line before bold text so it is rendered correctly

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


Compare: https://github.com/oracle/dtrace-utils/compare/6b7ccc9d662f...59a49ce9d4a3

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