Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect ProbeSpecifier #25

Open
trombonehero opened this issue Feb 16, 2018 · 2 comments
Open

Incorrect ProbeSpecifier #25

trombonehero opened this issue Feb 16, 2018 · 2 comments
Labels

Comments

@trombonehero
Copy link
Contributor

<ProbeSpecifier> ::= <Identifier>

This part of the grammar says that a ProbeIdentifier is a colon-separated list of Identifiers, but that precludes:

  • wildcards (e.g., perl*:::*-entry)
  • specifiers that omit components but keep the colons (e.g., zfs::arc-shrink)
  • specifiers without colons (e.g., entry)
@trombonehero
Copy link
Contributor Author

@dstolfa : ^

@dstolfa
Copy link
Contributor

dstolfa commented Feb 16, 2018

The full definition of ProbeSpecifier is:

<ProbeSpecifier> ::= <Identifier>
                   | [ <Identifier> ] `:' [ <Identifier> ]
                   | [ <Identifier> ] `:' [ <Identifier> ] `:' [ <Identifier> ]
                   | [ <Identifier> ] `:' [ <Identifier> ] `:' [ <Identifier> ] `:' [ <Identifier> ]

In general, I might have overlooked something, but my understanding is as follows:

  • For wildcards, I've overlooked the possibility of using '+', '*' and the likes. This should be fixed.
  • Specifiers that omit components but keep colons such as zfs::arc-shrink are actually treated as :zfs::arc-shrink and should be handled by the case where we have 3 optionally specified <Identifier>s separated by colons, which is the third case syntactically (or if transformed to "canonical" form beforehand e.g. :zfs::arc-shrink by the fourth case) unless I'm missing something.
  • As for specifiers without colons, that should be handled by the first case, as something like entry matches <Identifier>, and if transformed to the "canonical" form :::entry, matches the fourth case with 4 optional identifiers separated by colons.

If I have overlooked anything else other than the wildcards (or my understanding of the syntax isn't correct), I'm happy to fix it as soon as I have the correct understanding of it :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants