[PATCH v2 06/20] doc: Clean up dangling anchor links

eugene.loh
2025-10-22T03:23:32Z

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@oracle.com>
---
.../dtrace-components-and-terminology.md | 10 +++----
doc/userguide/explanation/dtrace-concepts.md | 4 +--
doc/userguide/how-to/dtrace-guide.md | 8 ++---
.../dtrace-howto-create-a-dtrace-script.md | 2 +-
.../reference/d_program_syntax_reference.md | 16 +++++-----
.../dtrace-ref-DTraceSupportforStrings.md | 4 +--
.../dtrace-ref-PointersandScalarArrays.md | 2 +-
...dtrace-ref-TypesOperatorsandExpressions.md | 4 +--
.../reference/dtrace-ref-Variables.md | 4 +--
.../dtrace_builtin_variable_reference.md | 2 +-
.../reference/dtrace_command_reference.md | 8 ++---
doc/userguide/reference/dtrace_providers.md | 30 +++++++++----------
.../reference/dtrace_providers_proc.md | 2 +-
.../reference/dtrace_providers_sched.md | 2 +-
.../reference/dtrace_runtime_options.md | 14 ++++-----
15 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/doc/userguide/explanation/dtrace-components-and-terminology.md b/doc/userguide/explanation/dtrace-components-and-terminology.md
index be6c649d7..b187055a4 100644
--- a/doc/userguide/explanation/dtrace-components-and-terminology.md
+++ b/doc/userguide/explanation/dtrace-components-and-terminology.md
@@ -3,7 +3,7 @@

Learn about the different components and the terms used to describe them within the DTrace framework.

-DTrace is a framework that dynamically traces data into buffers that are read by the `dtrace` command line utility. The `dtrace` command line utility can run programs that can implement certain functions by compiling D programs to generate eBPF code that's loaded into the kernel. In practice, all interaction with DTrace is performed by using the `dtrace` command line utility. See [Install DTrace](../how-to/dtrace-howto-install-dtrace.md#) for information on how to install the command line utility.
+DTrace is a framework that dynamically traces data into buffers that are read by the `dtrace` command line utility. The `dtrace` command line utility can run programs that can implement certain functions by compiling D programs to generate eBPF code that's loaded into the kernel. In practice, all interaction with DTrace is performed by using the `dtrace` command line utility. See [Install DTrace](../how-to/dtrace-howto-install-dtrace.md) for information on how to install the command line utility.

**Parent topic:**[DTrace Concepts](../explanation/dtrace-concepts.md)

@@ -31,7 +31,7 @@ Output is displayed to show each of the different values that are used to refere
...
```

-See [List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md#) for more information on how to list and enable specific probes.
+See [List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md) for more information on how to list and enable specific probes.

Probes are made available by *providers*, which group particular kinds of instrumentation together. If a provider is related to source code, its probes might also include information about the piece of code that the probe relates to in a *module* and a *function* identifier. Therefore, a probe is identified by a *probe description*, grouped into four fields:

@@ -64,7 +64,7 @@ Some probes don't have a module or function identifier when they're listed. When
dtrace:::BEGIN
```

-Probes aren't required to have a module and function. The dtrace `BEGIN`, `END` and `ERROR` probes are good examples of this because these probes don't correspond to any specific instrumented program function or location. Instead, these probes are used for more abstract concepts, such as the idea of the end a tracing request. Other probes, such as those made available by the [Profile Provider](../reference/dtrace_providers_profile.md#) or the [CPC Provider](../reference/dtrace_providers_cpc.md#), also don't include module or function identifiers in their descriptions.
+Probes aren't required to have a module and function. The dtrace `BEGIN`, `END` and `ERROR` probes are good examples of this because these probes don't correspond to any specific instrumented program function or location. Instead, these probes are used for more abstract concepts, such as the idea of the end a tracing request. Other probes, such as those made available by the [Profile Provider](../reference/dtrace_providers_profile.md) or the [CPC Provider](../reference/dtrace_providers_cpc.md), also don't include module or function identifiers in their descriptions.

## D Programs {#concept_terms_programs}

@@ -119,12 +119,12 @@ The program probe description matches all system call functions at the entry poi

Although you could code an application to calculate an aggregation for a set of data, when many probes are firing concurrently, they can overwrite each other's updates to the aggregating variable or the calculation can become a serial bottleneck.

-DTrace aggregation functions apply to the data as it's traced, so that the dataset doesn't need to be stored and the aggregation is always available as events occur. In this way, aggregation functions are more efficient and exact, and avoid overwrites. See [Aggregations](../reference/aggregation.md#) for more information.
+DTrace aggregation functions apply to the data as it's traced, so that the dataset doesn't need to be stored and the aggregation is always available as events occur. In this way, aggregation functions are more efficient and exact, and avoid overwrites. See [Aggregations](../reference/aggregation.md) for more information.

## Speculation {#concept_terms_speculation}

While predicates can be used to filter out uninteresting events, they're only useful if you already know which events you need to filter. Because DTrace is often used to help debug particular system behaviors, DTrace includes a set of *speculation* functions that can be used to trace data speculatively.

-Speculation is used to trace quantities temporarily until particular information is known, at which case the data can be discarded or committed. By performing speculative tracing you can trace data until you know whether it's useful. For example, to trace data about events that might trigger a particular return code or error, you could speculatively trace all events and discard the trace data if it doesn't match the return code that you're interested in. See [Speculation](../reference/dtrace-ref-speculation.md#) for more information.
+Speculation is used to trace quantities temporarily until particular information is known, at which case the data can be discarded or committed. By performing speculative tracing you can trace data until you know whether it's useful. For example, to trace data about events that might trigger a particular return code or error, you could speculatively trace all events and discard the trace data if it doesn't match the return code that you're interested in. See [Speculation](../reference/dtrace-ref-speculation.md) for more information.

diff --git a/doc/userguide/explanation/dtrace-concepts.md b/doc/userguide/explanation/dtrace-concepts.md
index adb5413d3..6e2b91a65 100644
--- a/doc/userguide/explanation/dtrace-concepts.md
+++ b/doc/userguide/explanation/dtrace-concepts.md
@@ -5,8 +5,8 @@ Explore DTrace at a conceptual level and understand DTrace components and termin

The topics in this section are general and can help you to understand what DTrace is and how it works.

-- **[About DTrace](../explanation/dtrace-about.md#)**
+- **[About DTrace](../explanation/dtrace-about.md)**
DTrace is a powerful tracing tool that's available on Linux. DTrace has low overhead and is safe to use on production systems to analyze what a system is doing in real time.
-- **[DTrace Components and Terminology](../explanation/dtrace-components-and-terminology.md#)**
+- **[DTrace Components and Terminology](../explanation/dtrace-components-and-terminology.md)**
Learn about the different components and the terms used to describe them within the DTrace framework.

diff --git a/doc/userguide/how-to/dtrace-guide.md b/doc/userguide/how-to/dtrace-guide.md
index 137d62e3a..02863588b 100644
--- a/doc/userguide/how-to/dtrace-guide.md
+++ b/doc/userguide/how-to/dtrace-guide.md
@@ -8,12 +8,12 @@ Most of the information in this document is generic and applies to all flavors o

The topics in this section provide guidance on how to perform particular operations with DTrace and serve as an introduction to installing and using DTrace. By following steps in this guide, you can get started with DTrace immediately. After you have explored these topics, you can either review [DTrace Concepts](../explanation/dtrace-concepts.md) to get a better understanding of how DTrace works and how you can improve the way that you use it, or you can use the various references that are included to find out more about writing D programs that do what you need them to do.

-- **[Install DTrace](../how-to/dtrace-howto-install-dtrace.md#)**
+- **[Install DTrace](../how-to/dtrace-howto-install-dtrace.md)**

-- **[List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md#)**
+- **[List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md)**
DTrace providers publish available probes to DTrace so that you can enable them to perform functions when they fire. You can use the `dtrace` command to list all available probes or to enable a probe.
-- **[Create a DTrace Script](../how-to/dtrace-howto-create-a-dtrace-script.md#)**
+- **[Create a DTrace Script](../how-to/dtrace-howto-create-a-dtrace-script.md)**
Learn how to create a DTrace script to develop understanding of the D Programming language.
-- **[Use Predicates For Control Flow](../how-to/dtrace-howto-use-predicates.md#)**
+- **[Use Predicates For Control Flow](../how-to/dtrace-howto-use-predicates.md)**
For runtime safety, one major difference between D and other programming languages such as C, C++, and the Java programming language is the absence of control-flow constructs such as `if`-statements and loops. D program clauses are written as single straight-line statement lists that trace an optional, fixed amount of data. D does provide the ability to conditionally trace data and change control flow using logical expressions called *predicates*. This tutorial shows how to use predicates to control D programs.

diff --git a/doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md b/doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
index c4fcb4ed3..199649a9f 100644
--- a/doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
+++ b/doc/userguide/how-to/dtrace-howto-create-a-dtrace-script.md
@@ -3,7 +3,7 @@

Learn how to create a DTrace script to develop understanding of the D Programming language.

-Ensure that DTrace is installed on the system and that you can list and enable probes. See [Install DTrace](../how-to/dtrace-howto-install-dtrace.md#) and [List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md#).
+Ensure that DTrace is installed on the system and that you can list and enable probes. See [Install DTrace](../how-to/dtrace-howto-install-dtrace.md) and [List and Enable Probes](../how-to/dtrace-howto-list-and-enable-probes.md).

This tutorial provides successive steps toward developing a DTrace script that you can use on a system to gather useful information. You can use this tutorial as a framework to create other scripts for DTrace, in future.

diff --git a/doc/userguide/reference/d_program_syntax_reference.md b/doc/userguide/reference/d_program_syntax_reference.md
index cd1ad5c1b..862ce0322 100644
--- a/doc/userguide/reference/d_program_syntax_reference.md
+++ b/doc/userguide/reference/d_program_syntax_reference.md
@@ -3,20 +3,20 @@

This reference describes how to write D programs that can be used with DTrace to enable probes and perform operations.

-- **[Program Structure](../reference/d_program_syntax_reference_program_structure.md#)**
+- **[Program Structure](../reference/d_program_syntax_reference_program_structure.md)**
A D program consists of a set of clauses that describe the probes to enable, an optional predicate that controls when to run, and one or more statements that often describe some functionality to implement when the probe fires.
-- **[Types, Operators, and Expressions](../reference/dtrace-ref-TypesOperatorsandExpressions.md#)**
+- **[Types, Operators, and Expressions](../reference/dtrace-ref-TypesOperatorsandExpressions.md)**

-- **[Variables](../reference/dtrace-ref-Variables.md#)**
+- **[Variables](../reference/dtrace-ref-Variables.md)**

-- **[Pointers](../reference/dtrace-ref-PointersandScalarArrays.md#)**
+- **[Pointers](../reference/dtrace-ref-PointersandScalarArrays.md)**

-- **[Structs and Unions](../reference/dtrace-ref-StructsandUnions.md#)**
+- **[Structs and Unions](../reference/dtrace-ref-StructsandUnions.md)**

-- **[DTrace String Processing](../reference/dtrace-ref-DTraceSupportforStrings.md#)**
+- **[DTrace String Processing](../reference/dtrace-ref-DTraceSupportforStrings.md)**

-- **[Aggregations](../reference/aggregation.md#)**
+- **[Aggregations](../reference/aggregation.md)**

-- **[Speculation](../reference/dtrace-ref-speculation.md#)**
+- **[Speculation](../reference/dtrace-ref-speculation.md)**

diff --git a/doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md b/doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
index ea9dfa306..98f482c63 100644
--- a/doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
+++ b/doc/userguide/reference/dtrace-ref-DTraceSupportforStrings.md
@@ -31,7 +31,7 @@ In the next D statement, if `s` is of type `string`, the string type indicates t
trace(s);
```

-You can also perform lexical comparison of expressions of type string. See [String Comparison](dtrace-ref-DTraceSupportforStrings.md#).
+You can also perform lexical comparison of expressions of type string. See [String Comparison](dtrace-ref-DTraceSupportforStrings.md).

## String Constants {#dt_strcon_dlang}

@@ -80,7 +80,7 @@ Scalar type expressions, such as a pointer or integer, or a scalar array address

## String Comparison {#dt_strcomp_dlang}

-D overloads the binary relational operators and permits them to be used for string comparisons, as well as integer comparisons. The relational operators perform string comparison whenever both operands are of type `string` or when one operand is of type `string` and the other operand can be promoted to type `string`. See [String Assignment](dtrace-ref-DTraceSupportforStrings.md#) for a detailed description. See also [Table 1](dtrace-ref-DTraceSupportforStrings.md#dt_t14_dlang), which lists the relational operators that can be used to compare strings.
+D overloads the binary relational operators and permits them to be used for string comparisons, as well as integer comparisons. The relational operators perform string comparison whenever both operands are of type `string` or when one operand is of type `string` and the other operand can be promoted to type `string`. See [String Assignment](dtrace-ref-DTraceSupportforStrings.md) for a detailed description. See also [Table 1](dtrace-ref-DTraceSupportforStrings.md#dt_t14_dlang), which lists the relational operators that can be used to compare strings.



diff --git a/doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md b/doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
index c68982d40..da4b69333 100644
--- a/doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
+++ b/doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
@@ -53,7 +53,7 @@ dtrace: script '/tmp/badptr.d' matched 1 probe
dtrace: error on enabled probe ID 2 (ID 1: dtrace:::BEGIN): invalid address (0x0) in action #1 at BPF pc 156
```

-Notice that the D program moves past the error and continues to run; the system and all observed processes remain unperturbed. You can also add an `ERROR` probe to any script to handle D errors. For details about the DTrace error mechanism, see [ERROR Probe](dtrace_providers_dtrace.md#).
+Notice that the D program moves past the error and continues to run; the system and all observed processes remain unperturbed. You can also add an `ERROR` probe to any script to handle D errors. For details about the DTrace error mechanism, see [ERROR Probe](dtrace_providers_dtrace.md).

## Pointer and Array Relationship {#dt_ptrarel_dlang}

diff --git a/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md b/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
index 0e776867c..1a1549445 100644
--- a/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
+++ b/doc/userguide/reference/dtrace-ref-TypesOperatorsandExpressions.md
@@ -390,7 +390,7 @@ Type Name
16 bytes


-D also provides the special type `string` to represent ASCII strings. Strings are discussed in more detail in [DTrace String Processing](dtrace-ref-DTraceSupportforStrings.md#).
+D also provides the special type `string` to represent ASCII strings. Strings are discussed in more detail in [DTrace String Processing](dtrace-ref-DTraceSupportforStrings.md).

## Constants {#dt_consts_dlang}

@@ -664,7 +664,7 @@ Arithmetic in D can only be performed on integer operands or on pointers. Arithm

However, the DTrace execution environment does automatically check for and report division by zero errors resulting from improper use of the `/` and `%` operators. If a D program contains an invalid division operation that's detectable at compile time, a compile error is returned and the compilation fails. If the invalid division operation takes place at run time, processing of the current clause is quit, and the `ERROR` probe is activated. If the D program has no clause for the `ERROR` probe, the error is printed and tracing continues. Otherwise, the actions in the clause assigned to the `ERROR` probe are processed. Errors that are detected by DTrace have no effect on other DTrace users or on the OS kernel. You therefore don't need to be concerned about causing any damage if a D program inadvertently contains one of these errors.

-In addition to these binary operators, the `+` and `-` operators can also be used as unary operators, and these operators have higher precedence than any of the binary arithmetic operators. The order of precedence and associativity properties for all D operators is presented in [Operator Precedence](dtrace-ref-TypesOperatorsandExpressions.md#). You can control precedence by grouping expressions in parentheses \(`()`\).
+In addition to these binary operators, the `+` and `-` operators can also be used as unary operators, and these operators have higher precedence than any of the binary arithmetic operators. The order of precedence and associativity properties for all D operators is presented in [Operator Precedence](dtrace-ref-TypesOperatorsandExpressions.md). You can control precedence by grouping expressions in parentheses \(`()`\).

## Relational Operators {#dt_relatops_dlang}

diff --git a/doc/userguide/reference/dtrace-ref-Variables.md b/doc/userguide/reference/dtrace-ref-Variables.md
index da2130fa6..bc10071ca 100644
--- a/doc/userguide/reference/dtrace-ref-Variables.md
+++ b/doc/userguide/reference/dtrace-ref-Variables.md
@@ -15,7 +15,7 @@ D provides several variable types: scalar variables, associative arrays, scalar

where *name* is any valid D identifier and *expression* is any value or expression that the variable contains.

- DTrace includes several built-in scalar variables that can be referenced within D programs. The values of these variables are automatically populated by DTrace. See [DTrace Built-in Variable Reference](dtrace_builtin_variable_reference.md#) for a complete list of these variables.
+ DTrace includes several built-in scalar variables that can be referenced within D programs. The values of these variables are automatically populated by DTrace. See [DTrace Built-in Variable Reference](dtrace_builtin_variable_reference.md) for a complete list of these variables.

- **Associative Arrays**

@@ -29,7 +29,7 @@ D provides several variable types: scalar variables, associative arrays, scalar

Where *name* is any valid D identifier, *key* is a comma-separated list of one or more expressions, often as string values, and *expression* is the value that's contained by the array for the specified key.

- The type of each object that's contained in the array is also fixed for all elements in the array. You can use any of the assignment operators that are defined in [Types, Operators, and Expressions](dtrace-ref-TypesOperatorsandExpressions.md#) to change associative array elements, subject to the operand rules defined for each operator. The D compiler produces an appropriate error message if you try an incompatible assignment. You can use any type with an associative array key or value that can be used with a scalar variable.
+ The type of each object that's contained in the array is also fixed for all elements in the array. You can use any of the assignment operators that are defined in [Types, Operators, and Expressions](dtrace-ref-TypesOperatorsandExpressions.md) to change associative array elements, subject to the operand rules defined for each operator. The D compiler produces an appropriate error message if you try an incompatible assignment. You can use any type with an associative array key or value that can be used with a scalar variable.

You can reference values in an associative array by specifying the array name and the appropriate key.

diff --git a/doc/userguide/reference/dtrace_builtin_variable_reference.md b/doc/userguide/reference/dtrace_builtin_variable_reference.md
index 607c8f0dd..28b3001ae 100644
--- a/doc/userguide/reference/dtrace_builtin_variable_reference.md
+++ b/doc/userguide/reference/dtrace_builtin_variable_reference.md
@@ -325,7 +325,7 @@ The built-in variable `execname` references the name that was passed to `execve(
fileinfo_t fds[]
```

-The built-in `variable fds[]` is an array which has the files the current process has opened in a `fileinfo_t` array, indexed by file descriptor number. See [fileinfo\_t](dtrace_providers_io.md#).
+The built-in `variable fds[]` is an array which has the files the current process has opened in a `fileinfo_t` array, indexed by file descriptor number. See [fileinfo\_t](dtrace_providers_io.md).

## gid {#dt_ref_var_gid}

diff --git a/doc/userguide/reference/dtrace_command_reference.md b/doc/userguide/reference/dtrace_command_reference.md
index 90209d123..2c45d8e4b 100644
--- a/doc/userguide/reference/dtrace_command_reference.md
+++ b/doc/userguide/reference/dtrace_command_reference.md
@@ -3,12 +3,12 @@

The `dtrace` command is a generic front-end utility for the DTrace facility. The command implements an interface to invoke the D language compiler. The `dtrace` command can also retrieve buffered trace data from the DTrace kernel facility and includes a set of basic routines to format and print traced data.

-- **[About the dtrace Command](../reference/dtrace_command_desc.md#)**
+- **[About the dtrace Command](../reference/dtrace_command_desc.md)**
The `dtrace` command provides a generic interface to all the essential services that are provided by the DTrace facility.
-- **[dtrace Command Options](../reference/dtrace_command_options.md#)**
+- **[dtrace Command Options](../reference/dtrace_command_options.md)**

-- **[dtrace Command Operands](../reference/dtrace_command_operands.md#)**
+- **[dtrace Command Operands](../reference/dtrace_command_operands.md)**

-- **[dtrace Command Exit Status](../reference/dtrace_command_exit_status.md#)**
+- **[dtrace Command Exit Status](../reference/dtrace_command_exit_status.md)**

diff --git a/doc/userguide/reference/dtrace_providers.md b/doc/userguide/reference/dtrace_providers.md
index 6fd0fec6e..70fcb583f 100644
--- a/doc/userguide/reference/dtrace_providers.md
+++ b/doc/userguide/reference/dtrace_providers.md
@@ -3,30 +3,30 @@

DTrace exposes different providers that publish probes that are grouped together for particular instrumentation or functionality.

-- **[CPC Provider](../reference/dtrace_providers_cpc.md#)**
+- **[CPC Provider](../reference/dtrace_providers_cpc.md)**
The CPU performance counter \(`cpc`\) provider makes available probes that are associated with CPU performance counter events.
-- **[DTrace Provider](../reference/dtrace_providers_dtrace.md#)**
+- **[DTrace Provider](../reference/dtrace_providers_dtrace.md)**
The `dtrace` provider includes several probes that are specific to DTrace itself.
-- **[FBT Provider](../reference/dtrace_providers_fbt.md#)**
+- **[FBT Provider](../reference/dtrace_providers_fbt.md)**
The `fbt` \(Function Boundary Tracing\) provider includes probes that are associated with the entry to and return from most functions in the Linux kernel. Therefore, there could be tens of thousands of `fbt` probes.
-- **[IO Provider](../reference/dtrace_providers_io.md#)**
- The `io` provider makes available probes that relate to data input and output.
-- **[Lockstat Provider](../reference/dtrace_providers_lockstat.md#)**
+- **[IO Provider](../reference/dtrace_providers_io.md)**
+The `io` provider makes available probes that relate to data input and output.
+- **[Lockstat Provider](../reference/dtrace_providers_lockstat.md)**
The `lockstat` provider provides probes that can be used to study lock usage and contention.
-- **[Pid Provider](../reference/dtrace_providers_pid.md#)**
+- **[Pid Provider](../reference/dtrace_providers_pid.md)**
The `pid` provider traces a user process, both function `entry` and `return`, and an arbitrary instruction.
-- **[Proc Provider](../reference/dtrace_providers_proc.md#)**
+- **[Proc Provider](../reference/dtrace_providers_proc.md)**
The `proc` provider makes available the probes that pertain to the following activities: process creation and termination, LWP creation and termination, execution of new program images, and signal sending and handling.
-- **[Profile Provider](../reference/dtrace_providers_profile.md#)**
+- **[Profile Provider](../reference/dtrace_providers_profile.md)**
The `profile` provider includes probes that are associated with an interrupt that fires at some regular, specified time interval.
-- **[Rawtp Provider](../reference/dtrace_providers_rawtp.md#)**
+- **[Rawtp Provider](../reference/dtrace_providers_rawtp.md)**
The `rawtp` provider gives DTrace users access to the raw tracepoints exposed by the kernel tracing system, including access to the untranslated arguments of the associated tracepoint events.
-- **[Sched Provider](../reference/dtrace_providers_sched.md#)**
+- **[Sched Provider](../reference/dtrace_providers_sched.md)**
The `sched` provider makes available probes related to CPU scheduling.
-- **[SDT Provider](../reference/dtrace_providers_sdt.md#)**
- The Statically Defined Tracing \(SDT\) provider \(`sdt`\) creates probes at sites that a software programmer has formally designated. Thus, the SDT provider is chiefly of interest only to developers of new providers. Most users access SDT only indirectly by using other providers.
-- **[Syscall Provider](../reference/dtrace_providers_syscall.md#)**
+- **[SDT Provider](../reference/dtrace_providers_sdt.md)**
+The Statically Defined Tracing \(SDT\) provider \(`sdt`\) creates probes at sites that a software programmer has formally designated. Thus, the SDT provider is chiefly of interest only to developers of new providers. Most users access SDT only indirectly by using other providers.
+- **[Syscall Provider](../reference/dtrace_providers_syscall.md)**
The `syscall` provider makes available a probe at the entry to and return from every system call in the system.
-- **[USDT Provider](../reference/dtrace-ref-StaticallyDefinedTracingofUserApplications.md#)**
+- **[USDT Provider](../reference/dtrace-ref-StaticallyDefinedTracingofUserApplications.md)**
Use the USDT provider, for user space statically defined tracing, to instrument user space code with probes that are meaningful for an application.

diff --git a/doc/userguide/reference/dtrace_providers_proc.md b/doc/userguide/reference/dtrace_providers_proc.md
index 40903775d..6c1fa8ecf 100644
--- a/doc/userguide/reference/dtrace_providers_proc.md
+++ b/doc/userguide/reference/dtrace_providers_proc.md
@@ -130,7 +130,7 @@ No fundamental difference between a process and a thread that a process creates,

## proc Probe Arguments {#dt_ref_procargs_prov}

-The following table lists the argument types for the `proc` probes. See [proc Probes](dtrace_providers_proc.md#) for a description of the arguments. The `argN` are implementation specific. Use `args[]` to access the probe arguments.
+The following table lists the argument types for the `proc` probes. See [proc Probes](dtrace_providers_proc.md) for a description of the arguments. The `argN` are implementation specific. Use `args[]` to access the probe arguments.



diff --git a/doc/userguide/reference/dtrace_providers_sched.md b/doc/userguide/reference/dtrace_providers_sched.md
index 68bcdf715..f6d183708 100644
--- a/doc/userguide/reference/dtrace_providers_sched.md
+++ b/doc/userguide/reference/dtrace_providers_sched.md
@@ -245,7 +245,7 @@ Probe

### lwpsinfo\_t and psinfo\_t {#dt_ref_lwpsinfo_t_psinfo_t_sched_prov}

-The `lwpsinfo_t` and `psinfo_t` structures are described in [Proc Provider](dtrace_providers_proc.md#).
+The `lwpsinfo_t` and `psinfo_t` structures are described in [Proc Provider](dtrace_providers_proc.md).

### cpuinfo\_t {#dt_ref_cpuinfo_sched_prov}

diff --git a/doc/userguide/reference/dtrace_runtime_options.md b/doc/userguide/reference/dtrace_runtime_options.md
index b721f64e6..766709af2 100644
--- a/doc/userguide/reference/dtrace_runtime_options.md
+++ b/doc/userguide/reference/dtrace_runtime_options.md
@@ -5,19 +5,19 @@ DTrace uses reasonable default values and flexible default policies for runtime

Options that can be specified when running the `dtrace` utility can be categorized into three types:

-- [Compile-time Options](compiler_options.md#): affect the compilation process but might also affect runtime behavior.
+- [Compile-time Options](compiler_options.md): affect the compilation process but might also affect runtime behavior.

-- [Runtime Options](runtime_options.md#): affect the runtime behavior of DTrace but which are often set at compile time.
+- [Runtime Options](runtime_options.md): affect the runtime behavior of DTrace but which are often set at compile time.

-- [Dynamic Runtime Options](dynamic_runtime_options.md#): affect the runtime behavior of DTrace but which can be changed while tracing, by using the `[setopt](function_setopt.md)` function.
+- [Dynamic Runtime Options](dynamic_runtime_options.md): affect the runtime behavior of DTrace but which can be changed while tracing, by using the `[setopt](function_setopt.md)` function.

-- **[Setting DTrace Compile-time and Runtime Options](../reference/setting_dtrace_compiler_and_runtime_options.md#)**
+- **[Setting DTrace Compile-time and Runtime Options](../reference/setting_dtrace_compiler_and_runtime_options.md)**
You can tune DTrace by setting or enabling a selection of runtime or compiler options. You can set options by either using the `-x` command line switch when running the `dtrace` command, or by specifying `pragma` lines in D programs. If an option takes a value, follow the option name with an equal sign \(`=`\) and the option value.
-- **[Compile-time Options](../reference/compiler_options.md#)**
+- **[Compile-time Options](../reference/compiler_options.md)**
Compile-time options can control how DTrace programs are compiled into eBPF code that's loaded into kernel space.
-- **[Runtime Options](../reference/runtime_options.md#)**
+- **[Runtime Options](../reference/runtime_options.md)**
Runtime options can control how the DTrace utility behaves.
-- **[Dynamic Runtime Options](../reference/dynamic_runtime_options.md#)**
+- **[Dynamic Runtime Options](../reference/dynamic_runtime_options.md)**
Dynamic runtime options are specific to D programs themselves and are likely to change depending on program functionality and requirements.

--
2.47.3