-
-
Notifications
You must be signed in to change notification settings - Fork 339
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
Improve DWARF5 support and refactor #3565
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
5ab5d52
to
8fb26b8
Compare
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.
Please also extract column value when it's available
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
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.
Please check also the columns information extraction where available, likely it will be easier to do in the same PR since it's a big refactoring anyway.
This also could be helpful if you haven't seen it yet: https://gcc.gnu.org/wiki/DebugFission |
9ebc275
to
c649ba0
Compare
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.
One more thing, once you finished the refactoring, I recommend running afl++ fuzzer with DWARF v2-v5 seeds from our testsuite and your own files, to catch obvious bugs at the early stage. Likely most obvious crashes will happen in less than an hour of fuzzing.
https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md
These tests also could be helpful: https://github.com/davea42/libdwarf-regressiontests |
This comment was marked as resolved.
This comment was marked as resolved.
For the record, no need to think about them in this PR, but could be nice to handle them somehow in the future:
For now please just check the doc and think if they can be accomodated in the current architecture at some point in future. |
and update test ppc64
and reorder stack and reg var
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
@imbillow please also rebase on top of the latest dev, especially important since there is upgraded capstone. |
Please update tests output too:
|
You can run bindgen linter locally to check for all errors at once:
|
@imbillow could you please open a new PR once you rebase? This was reviewed so much that it's hard to get track of the things? |
@imbillow please update Doxygen for this function in /**
* \brief Use parsed DWARF function info from Sdb in the function analysis
* XXX right now we only save parsed name and variables, we can't use signature now
* XXX refactor to be more readable
* \param analysis
* \param dwarf_sdb
*/
RZ_API void
rz_analysis_dwarf_integrate_functions(RzAnalysis *analysis, RzFlag *flags) {
rz_return_if_fail(analysis && analysis->debug_info);
ht_up_foreach(analysis->debug_info->function_by_addr, dwarf_integrate_function, analysis);
} There is no SDB anymore |
I should have rebased the latest dev branch, is there something wrong? |
My bad, just cached reference state. After removing |
OK |
Your checklist for this pull request
Detailed description
.debug_loclists
parse_dwarf_location
fromdwarf_process.c
todwarf.c
.debug_rnglists
.debug_addr
Test plan
Add tests for dwarf5
Closing issues
closes #3548
closes #3535
closes #1004
closes #3541
partially addresses #3581
...
See also https://gcc.gnu.org/wiki/DebugFission