WIP fixing profiling nginx in a container #4
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 is a draft, not ready for review yet.
I was attempting to use this tool to profile an nginx instance running in a container, but many of the ELF helpers don't understand how to deal with containerized paths.
The fix for this is relatively simple, we just prepend
/proc/PID/root
to the paths, to make them relative to the target pid's mount namespace.Since the helpers don't take a
pid
, for now I've hacked it by adding a static variable and storing this early on when we are looking for the lib / binary to profile.After these changes, I am able to profile an nginx instance running in a container, provided I have access to the root pid namespace.
I also discovered an issue with the makefile, which I will PR separately but is currently included in this branch.