Fix import of trace event files where B/E events' args don't match #321
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.
In #273, I changed
CallTreeProfileBuilder.leaveFrame
to fail hard when you request to leave a frame different from the one at the top of the stack. It turns out we were intentionally doing this for trace event imports, becauseargs
are part of the frame key, and we want to allow profiles to be imported where the"B"
and"E"
events have differingargs
field.This PR fixes the import code to permissively allow the
"args"
field to not match between the"B"
and"E"
fields.A note on intentional differences between speedscope and chrome://tracing
chrome://tracing
will close whichever frame is at the top when it gets an"E"
event, regardless of whether the name or the args match. speedscope will ignore the event entirely if the"name"
field doesn't match, but will warn but still close the frame if the"name"
s match but the"args"
don't.speedscope
chrome://tracing