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

Use maps::parse_filtered() for process symbolization #985

Merged
merged 1 commit into from
Feb 6, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Use maps::parse_filtered() for process symbolization
In general not all entries in /proc/[pid]/maps are of interest to us and
we perform some pre-filtering based on somewhat coarse grained criteria.
However, for one reason or another we didn't do that in the
symbolization logic, only when normalizing. Having failed to surface why
that is, exactly, let's switch over to using the filtered version
nonetheless, as none of our tests fail with the filtered version. Do so
should speed up things a bit and make follow-on changes easier to
digest.

Signed-off-by: Daniel Müller <deso@posteo.net>
d-e-s-o committed Feb 6, 2025
commit 01e7200312219f3f2ccb9f21fc9def69e5f48f60
2 changes: 1 addition & 1 deletion src/symbolize/symbolizer.rs
Original file line number Diff line number Diff line change
@@ -898,7 +898,7 @@ impl Symbolizer {
perf_map: bool,
map_files: bool,
) -> Result<Vec<Symbolized>> {
let mut entry_iter = maps::parse(pid)?;
let mut entry_iter = maps::parse_filtered(pid)?;
let entries = |_addr| entry_iter.next();

let mut handler = SymbolizeHandler {