| Summary: | edc - disassembly - add error recovery for unreadable memory, display as single pseudo-mnemonic | ||
|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Kirk Beitz <kirk.beitz> |
| Component: | cdt-debug-edc | Assignee: | Ken Ryall <ken.ryall> |
| Status: | RESOLVED FIXED | QA Contact: | Ken Ryall <ken.ryall> |
| Severity: | normal | ||
| Priority: | P3 | Flags: | kirk.beitz:
review?
|
| Version: | 7.0.1 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Attachments: | |||
|
Description
Kirk Beitz
Created attachment 178904 [details]
updated patch to add error recovery for unreadable memory, display as single pseudo-mnemonic
implemented some suggestions from ed swartz regarding alignment that helped significantly reduce the number of "buffer underflow" pseudo-mnemonics displayed (to zero in the testing i did despite trying to force them to appear).
cleaned up some additional edge cases clarified by the alignment adjustment fixes.
Comment on attachment 178864 [details]
add error recovery for unreadable memory, display as single pseudo-mnemonic
forgot to obsolete the original with the attachment of the update patch.
Created attachment 179175 [details] patch containing error recovery and pseudoInstruction generation only patch 178904 (updated patch to add error recovery…) was out of date, and the patch had grown bloated and inter-related with other issues. those issues are now found in the following edc bugzilla proposals: - Bug 325677 : Show Function Offsets not working - Bug 325678 : ARM disassembly : improve view output by pre-checking alignment - Bug 325679 : new CodeBufferUnderflowException and semantics the patch that remains is for clarification purposes only, because - it cannot apply cleanly without the above patches in place first - it also cannot apply cleanly without the following merges still TBD - Bug 325149 : context and environment params added for stepping reqmts - Bug 325150 : refactor ARMDisassembly to fix missing/duplicate lines - it will cause a runtime infinite loop if applied without the changes - Bug 325277 : add IInstruction#getSize() to eclipse.cvs.HEAD - Bug 325676 : add IInstructionWithSize#getSize() to cdt 7.0.2 cvs branch the contents of the patch are a newly refactored function in Disassembly.java named fillDisassemblyViewInstructions() that can be called from handleSuccess() callbacks of DRMs in order to populate the array to be passed back to DisassemblyBackendDsf#insertisassembly(). fillDisassemblyViewInstructions() uses the new CodeBufferUnderflowException() to help recover from parsing errors, and also to recover from backend reads resulting in buffers of unreadable memory. it uses the new utility function pseudoInstruction() to populate the disassembly view with a smaller footprint of text describing underflow and unreadable memory blocks. a modified version of the attached patch has been tested together with other changes mentioned in this comment in the ARM debugger, and is planned for later merge together at the same time. Created attachment 179200 [details]
updated patch containing only error recovery and pseudoInstr generation
further testing on x86 revealed cases that needed to be adjusted.
resolved with 2010.oct.04 edc merge commits by ken.ryall@nokia.com |