[PATCH v2 32/59] docs/dyndbg: explain flags parse 1st

Jim Cromie posted 59 patches 9 months ago
There is a newer version of this series
[PATCH v2 32/59] docs/dyndbg: explain flags parse 1st
Posted by Jim Cromie 9 months ago
When writing queries to >control, flags are parsed 1st, since they are
the only required field, and they require specific compositions.  So
if the flags draw an error (on those specifics), then keyword errors
aren't reported.  This can be mildly confusing/annoying, so explain it
instead.

cc: linux-doc@vger.kernel.org
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
 Documentation/admin-guide/dynamic-debug-howto.rst | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/Documentation/admin-guide/dynamic-debug-howto.rst b/Documentation/admin-guide/dynamic-debug-howto.rst
index 8e2083605bd7..d2928884c92b 100644
--- a/Documentation/admin-guide/dynamic-debug-howto.rst
+++ b/Documentation/admin-guide/dynamic-debug-howto.rst
@@ -112,6 +112,16 @@ The match-spec's select *prdbgs* from the catalog, upon which to apply
 the flags-spec, all constraints are ANDed together.  An absent keyword
 is the same as keyword "*".
 
+Note: because the match-spec can be empty, the flags are checked 1st,
+then the pairs of keyword values.  Flag errs will hide keyword errs:
+
+  bash-5.2# ddcmd mod bar +foo
+  dyndbg: read 13 bytes from userspace
+  dyndbg: query 0: "mod bar +foo" mod:*
+  dyndbg: unknown flag 'o'
+  dyndbg: flags parse failed
+  dyndbg: processed 1 queries, with 0 matches, 1 errs
+
 A match specification is a keyword, which selects the attribute of
 the callsite to be compared, and a value to compare against.  Possible
 keywords are:::
-- 
2.49.0
Re: [PATCH v2 32/59] docs/dyndbg: explain flags parse 1st
Posted by Louis Chauvet 9 months ago

Le 20/03/2025 à 19:52, Jim Cromie a écrit :
> When writing queries to >control, flags are parsed 1st, since they are
> the only required field, and they require specific compositions.  So
> if the flags draw an error (on those specifics), then keyword errors
> aren't reported.  This can be mildly confusing/annoying, so explain it
> instead.
> 
> cc: linux-doc@vger.kernel.org
> Signed-off-by: Jim Cromie <jim.cromie@gmail.com>

Reviewed-by: Louis Chauvet <louis.chauvet@bootlin.com>

I think this could be merged outside this series.

> ---
>   Documentation/admin-guide/dynamic-debug-howto.rst | 10 ++++++++++
>   1 file changed, 10 insertions(+)
> 
> diff --git a/Documentation/admin-guide/dynamic-debug-howto.rst b/Documentation/admin-guide/dynamic-debug-howto.rst
> index 8e2083605bd7..d2928884c92b 100644
> --- a/Documentation/admin-guide/dynamic-debug-howto.rst
> +++ b/Documentation/admin-guide/dynamic-debug-howto.rst
> @@ -112,6 +112,16 @@ The match-spec's select *prdbgs* from the catalog, upon which to apply
>   the flags-spec, all constraints are ANDed together.  An absent keyword
>   is the same as keyword "*".
>   
> +Note: because the match-spec can be empty, the flags are checked 1st,
> +then the pairs of keyword values.  Flag errs will hide keyword errs:
> +
> +  bash-5.2# ddcmd mod bar +foo
> +  dyndbg: read 13 bytes from userspace
> +  dyndbg: query 0: "mod bar +foo" mod:*
> +  dyndbg: unknown flag 'o'
> +  dyndbg: flags parse failed
> +  dyndbg: processed 1 queries, with 0 matches, 1 errs
> +
>   A match specification is a keyword, which selects the attribute of
>   the callsite to be compared, and a value to compare against.  Possible
>   keywords are:::

-- 
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com