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

fix omnitrace print-* with libraries #94

Merged
merged 17 commits into from
Jul 21, 2022

Conversation

jrmadsen
Copy link
Collaborator

  • Enables support for omnitrace --print-available <type> -- <library>
    • this implies runtime instrumentation, which means dyninst tries to create a process, which fails bc library is not an exe
    • added check to first arg after -- for whether it is an executable or library
    • if library, implies binary-rewrite + --simulate --all-functions which shows all functions even if they aren't instrumentable in binary-rewrite mode (but might be in runtime instrumentation)
    • Closes Segfault printing available for libfabric on Crusher w/ v1.2.0 #91
  • modified the output directories of exes and libraries in the build tree to more closely resemble and installation
    • i.e. libraries are output to ${PROJECT_BINARY_DIR}/lib and exes are output to ${PROJECT_BINARY_DIR}/bin

@jrmadsen jrmadsen added bug fix Fixes a bug omnitrace-instrument Involves the omnitrace-instrument executable (binary instrumenter) cmake Modifies the CMake build system Dyninst Involves Dyninst labels Jul 19, 2022
@jrmadsen jrmadsen force-pushed the omnitrace-print-available-library branch from 71472c5 to 2face01 Compare July 19, 2022 07:19
- fix ODR violations in utility/procfs
- uniform find_package for all ROCm-based libraries
- throw exception instead of std::exit
- some ELF execs "think" they are libraries so only assume rewrite + simulate + all-functions if filename looks like library
- adds some test for --print-available -- <library>
@jrmadsen jrmadsen added examples Adds new example or modifies existing example roctracer GPU kernel tracing rocm-smi ROCm System Management Interface rocprofiler GPU kernel HW counters timemory Issue affects/involves timemory features/capabilities submodule Updates a git submodule labels Jul 19, 2022
- update module_function operator< and operator==
- add function_signature operator<
- refactor module_function ctor
- revert some previous changes w.r.t. simulate and include_unninstr
- refactor module_function ctor to avoid segfaults
- string_t -> std::string
- replace std::string with std::string_view in some places
- get_name(module_t*)
- get_name(procedure_t*)
- disable using both app_modules and app_functions
- new option: --parse-all-modules to iterate over app_modules
- removed some unused code w.r.t. debug info
- use dyninst insertInitCallback and insertFiniCallback if main not found
- fixed all issues with segmentation faults in --simulate --all-functions
@jrmadsen jrmadsen merged commit d04cbe8 into ROCm:main Jul 21, 2022
@jrmadsen jrmadsen deleted the omnitrace-print-available-library branch July 21, 2022 06:15
@jrmadsen jrmadsen restored the omnitrace-print-available-library branch July 21, 2022 06:46
@jrmadsen jrmadsen deleted the omnitrace-print-available-library branch July 21, 2022 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug fix Fixes a bug cmake Modifies the CMake build system Dyninst Involves Dyninst examples Adds new example or modifies existing example omnitrace-instrument Involves the omnitrace-instrument executable (binary instrumenter) rocm-smi ROCm System Management Interface rocprofiler GPU kernel HW counters roctracer GPU kernel tracing submodule Updates a git submodule timemory Issue affects/involves timemory features/capabilities
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Segfault printing available for libfabric on Crusher w/ v1.2.0
1 participant