Attach to duplicated USDT markers #1341
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for duplicated USDT markers. Duplication in
this context means identical provider and name. See the runtime
test for an example of how this can occur.
With this change, bpftrace will generate separate programs for each
duplicated marker. We need to generate separate programs because the
location of the usdt arguments may not be the same in each call site.
The later runtime test does not reproduce this behavior but I've
observed this happening in production before.
Note that a good portion of this PR is light refactoring work. Someone
(probably me) should really refactor the probe generation code. It's
excruciatingly difficult to reason about and extremely easy to make
mistakes. Maybe it could be made better by passing a metadata struct
around instead of trying to guess section names.
Checklist
docs/reference_guide.md
CHANGELOG.md