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

Runtime instrumentation's defaults do not seem to match binary re-write's #144

Open
skyreflectedinmirrors opened this issue Aug 31, 2022 · 1 comment

Comments

@skyreflectedinmirrors
Copy link

skyreflectedinmirrors commented Aug 31, 2022

Discovered when looking at PIConGPU, doing a:

omnitrace -v 3 -- ./bin/picongpu

will pull in modules from libc, boost, OMPI, UCX, HIP, HSA, etc., etc.
Something like 46k functions over 270 modules.

Whereas doing a binary rewrite seems to default to only symbols defined in the main binary (in this case, ~4k functions in 1 module)

omnitrace -v 3 -o picongpu -- ./bin/picongpu

Given the sometimes fragility of dyninst, I think it would be a safer choice for both modes to default to the binary-rewrite's current behaviour, and allow the user to expand the instrumentation as desired afterwards.

Specifically for PIConGPU, doing runtime instrumentation pulls in symbols from boost, which causes dyninst to segfault.

@jrmadsen
Copy link
Collaborator

That's definitely an interesting idea

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

No branches or pull requests

2 participants