Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 324462

Summary: edc - ARM - disassembly - fix several bugs with refactoring of ARMDisassembly and Disassembly
Product: [Tools] CDT Reporter: Kirk Beitz <kirk.beitz>
Component: cdt-debug-edcAssignee: Ken Ryall <ken.ryall>
Status: RESOLVED FIXED QA Contact: Ken Ryall <ken.ryall>
Severity: normal    
Priority: P3    
Version: 7.0   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
fix several bugs with refactoring of ARMDisassembly.java and Disassembly.java cdtdoug: iplog+

Description Kirk Beitz CLA 2010-09-03 13:45:41 EDT
Created attachment 178183 [details]
fix several bugs with refactoring of ARMDisassembly.java and Disassembly.java

the attached patch re-factors ARMDisassembly.java and Disassembly.java

the goals, in order of importance:

- fix several bugs viewing ARM disassembly not appearing in edc windows debugger
  - view stops updating until the user closes and re-opens the view
  - scrolling back would result in disassembly without mixed source
  - mixed source with inline code would semi-arbitrarily mix code incorrectly
  - stepping through a long function or scrolling down would stop mixing source
  - the correct line number would be mixed in from the wrong file

- re-use portions of the code known to work for Disassembly.java by making them protected and thus visible to ARMDisassembly.java and other extending classes (this applies most specifically to new function ARMDisassembly#getStartAddressForLineEntryContainingAddress() ).

- bulletproof the calls from NPEs could due to requests for services that might arrive just after the service manager shuts down with the end of debugging

- eliminate other redundant code (one ARMDisassembly @override was identical; the code extracted to new protected mixSource() was not part of other problems, but was also identical; the code establishing status for a missing disassembler or unreadable was essentially identical, but the ARMDisassembly code could not see the new property values due to access restriction across plugins).

- avoid confusion between class member and local function variables named thumbMode by renaming the class member currentlyProcessingThumbMode.
Comment 1 Kirk Beitz CLA 2010-10-06 22:45:23 EDT
resolved with 2010.oct.04 edc merge commits by ken.ryall@nokia.com