-
Notifications
You must be signed in to change notification settings - Fork 5
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
[PROF-9088] Fix symbolization for binaries with compressed debug information #395
Conversation
…mation Ensure we retry without using debug information when symbolization fails
Benchmark results for collatzParameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. See unchanged results
|
Benchmark results for BadBoggleSolver_runParameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. See unchanged results
|
- Add an option to compress debug sections - Compress debug sections for some of the simple_malloc tests
|
||
explicit BlazeSymbolizerWrapper(std::string elf_src, bool inlined_fns) | ||
: opts(create_opts(inlined_fns)), | ||
static blaze_symbolizer_opts create_opts_no_debug() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you need to change blaze_symbolizer_opts
, calling blaze_symbolize_elf_virt_offsets
with blaze_symbolize_src_elf.debug_syms
set to false should be enough.
.demangle = false, | ||
.reserved = {}}; | ||
} | ||
explicit BlazeSymbolizerWrapper(std::string elf_src, bool inlined_fns, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consecutive bool arguments are error prone
blaze_symbolizer_opts opts; | ||
std::unique_ptr<blaze_symbolizer, BlazeSymbolizerDeleter> _symbolizer; | ||
ddprof::HeterogeneousLookupStringMap<std::string> _demangled_names; | ||
std::string _elf_src; | ||
bool _visited{true}; | ||
bool _use_debug; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
public members don't need an underscore prefix
const blaze_result *blaze_res = nullptr; | ||
if (!_disable_symbolization) { | ||
while (retry_symbolization && !_disable_symbolization) { | ||
const auto it = _symbolizer_map.find(file_id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the inner loop could be refactored into another function
@nsavoire I 100% agree with your comments, I will fix this in the evening. I'll merge just to get new numbers and look out for other issues. |
What does this PR do?
Ensure we retry without using debug information when symbolization fails
Motivation
Ensure we symbolize Go binaries
Additional Notes
This is pending an upstream fix in blazesym
How to test the change?
The change is tested through simple_malloc