Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "DSDP/DD/DisassemblyView"
(→Requirements) |
(→Requirements) |
||
Line 6: | Line 6: | ||
− | == Requirements == | + | == User Requirements == |
− | + | ||
− | + | '''Disassembly display''' | |
− | * | + | *Disassembly view |
− | ** | + | **Ability to switch between pure disassembly mode and mixed mode |
− | ** | + | **Context menu with check state to indicate the current display mode |
− | ** | + | *Editor (mixed mode view) |
− | * | + | **Switch between source mode and mixed mode |
− | * | + | **context menu with check state to indicate the current display mode |
− | ** | + | *Disassembly Memory Render [https://bugs.eclipse.org/bugs/show_bug.cgi?id=27892 bug 27892] |
− | * | + | *Showing source and disassembly side by side (do we still need this???) |
− | + | *Module view<br><br> | |
− | + | ||
− | + | '''Extensible data input stream [https://bugs.eclipse.org/bugs/show_bug.cgi?id=145635 bug 145635]''' | |
− | + | *Target memory block | |
− | + | *External binary file<br><br> | |
− | + | ||
− | * | + | '''Ability to view beyond the current stackframe in the disassembly view''' |
− | * | + | *It should be possible to scroll up and scroll down of the current view by line, page, and dragging the scroll bar thumb |
− | * | + | *There should be an address combo-box to allow the user to enter the start address, i.e main, 0x0badf00d |
− | ** | + | **The combo-box should have a history of the previous start addresses<br><br> |
− | * | + | |
− | * | + | '''Refresh display content if the visible display data has changed [https://bugs.eclipse.org/bugs/show_bug.cgi?id=138920 Bug 138920]'''<br> |
− | * | + | ''i.e Memory content on the target changed''<br><br> |
− | * | + | |
− | + | '''In-place editing of the opCode'''<br> | |
− | * | + | ''This should causes any disassembly display that is viewing the current disassemble region to update to reflect the change''<br><br> |
− | + | ||
− | * | + | '''Follow PC location and if PC is out of the current viewing address, than update the view to show the PC''' |
− | * | + | *There should be an option to disable this feature<br><br> |
− | * | + | |
− | * | + | '''The view should not be blank out when target is running'''<br><br> |
− | * | + | |
− | ** | + | '''Ability to set software breakpoint, hardware breakpoint, and any breakpoint provided by the debugger''' |
− | ** | + | *Double clicks in the left margin to set software breakpoint [''Default action''] |
− | * | + | *Context menu to set hardware breakpoint and additional breakpoint type provided by the debugger |
+ | *Ability to set multiple breakpoint at the same address | ||
+ | *Ability to set multiple breakpoint at the same source location | ||
+ | *Ability to resize the left margin to show multiple breakpoint icons | ||
+ | *Icon should have different representation based on the breakpoint type, condition, and action<br><br> | ||
+ | |||
+ | '''An icon to indicate to the user opCode might not be valid [https://bugs.eclipse.org/bugs/show_bug.cgi?id=86882 Bug 86882]'''<br> | ||
+ | ''On some target, it is not possible to locate the valid start address if the user scroll around in the view''<br> | ||
+ | ''Program might have hold, it is not always continuous''<br><br> | ||
+ | |||
+ | '''The presentation of the disassembly display should be configurable [https://bugs.eclipse.org/bugs/show_bug.cgi?id=80209 Bug 80209]''' | ||
+ | *There should be an option to show interleaved assembly text and symbol for quick reference<br> | ||
+ | *The display column should be a user configurable option<br><br> | ||
+ | |||
+ | '''Ability to change the PC location''' | ||
+ | *Run to cursor | ||
+ | *Set PC to cursor<br><br> | ||
+ | |||
+ | '''Multipe PC indicators ''(target can have multiple addresses for a single execution packet)''''' | ||
+ | *In the editor, it should have a different PC indicator for source and disassembly text<br><br> | ||
+ | |||
+ | '''Copy text to clipboard'''<br><br> | ||
+ | |||
+ | '''Print support''' | ||
+ | *Disassembly view | ||
+ | **Print selected text | ||
+ | **Print a user defined region | ||
+ | **Print visible area | ||
+ | *Editor | ||
+ | **Print current viewing editor window<br><br> | ||
+ | |||
+ | '''Automatic open the disassembly window if there is no source [https://bugs.eclipse.org/bugs/show_bug.cgi?id=81353 Bug 81353]'''<br><br> | ||
+ | |||
+ | |||
+ | == API Requrements == | ||
+ | *There should be an API to configure to blank out the view when target running, it is upto the debugger to support this feature | ||
+ | *There should be an API to configure to disable disassemble [https://bugs.eclipse.org/bugs/show_bug.cgi?id=122013 Bug 122013] | ||
+ | *There should be an API to change the forground color and background color for each line of text | ||
== Design Notes == | == Design Notes == |
Revision as of 12:05, 22 June 2006
This is the Disassembly Sub-group
Lead: Patrick Chuong (TI)
Members: Wind River
User Requirements
Disassembly display
- Disassembly view
- Ability to switch between pure disassembly mode and mixed mode
- Context menu with check state to indicate the current display mode
- Editor (mixed mode view)
- Switch between source mode and mixed mode
- context menu with check state to indicate the current display mode
- Disassembly Memory Render bug 27892
- Showing source and disassembly side by side (do we still need this???)
- Module view
Extensible data input stream bug 145635
- Target memory block
- External binary file
Ability to view beyond the current stackframe in the disassembly view
- It should be possible to scroll up and scroll down of the current view by line, page, and dragging the scroll bar thumb
- There should be an address combo-box to allow the user to enter the start address, i.e main, 0x0badf00d
- The combo-box should have a history of the previous start addresses
- The combo-box should have a history of the previous start addresses
Refresh display content if the visible display data has changed Bug 138920
i.e Memory content on the target changed
In-place editing of the opCode
This should causes any disassembly display that is viewing the current disassemble region to update to reflect the change
Follow PC location and if PC is out of the current viewing address, than update the view to show the PC
- There should be an option to disable this feature
The view should not be blank out when target is running
Ability to set software breakpoint, hardware breakpoint, and any breakpoint provided by the debugger
- Double clicks in the left margin to set software breakpoint [Default action]
- Context menu to set hardware breakpoint and additional breakpoint type provided by the debugger
- Ability to set multiple breakpoint at the same address
- Ability to set multiple breakpoint at the same source location
- Ability to resize the left margin to show multiple breakpoint icons
- Icon should have different representation based on the breakpoint type, condition, and action
An icon to indicate to the user opCode might not be valid Bug 86882
On some target, it is not possible to locate the valid start address if the user scroll around in the view
Program might have hold, it is not always continuous
The presentation of the disassembly display should be configurable Bug 80209
- There should be an option to show interleaved assembly text and symbol for quick reference
- The display column should be a user configurable option
Ability to change the PC location
- Run to cursor
- Set PC to cursor
Multipe PC indicators (target can have multiple addresses for a single execution packet)
- In the editor, it should have a different PC indicator for source and disassembly text
Copy text to clipboard
Print support
- Disassembly view
- Print selected text
- Print a user defined region
- Print visible area
- Editor
- Print current viewing editor window
- Print current viewing editor window
Automatic open the disassembly window if there is no source Bug 81353
API Requrements
- There should be an API to configure to blank out the view when target running, it is upto the debugger to support this feature
- There should be an API to configure to disable disassemble Bug 122013
- There should be an API to change the forground color and background color for each line of text
Design Notes
Showing disassembly in the editor is the preferred solution, and it should be implemented as a contribution to an editor view an extension point or something similar (Mikhail Khodjaiants).
Additional Notes
There are pros and cons for showing disassembly text in the editor (source base) and in a standalone view (address base).
- Address base
- Pros: Allows user to scroll through the entire program address space and also see the related source line without having to browse the source file.
- Cons: Source line might not match the order of the source line in the editor. This is the case when the compiler optomized your code or your code is located in fragmented memory address.
- Source base
- Pros: User can quickly corrolate the source with the opCode generated by the compiler. Reading highlevel C/C++ code is much easier than assembly code, and user has the option to flip to mixed mode to see the generated assembly code. Reusing the editor's syntax highlight scheme.
- Cons: It is not possible to scroll through the entire program address, you are lock in to the current opened file.
When source file is modified during debugging, we need to have visual indication to the user that the source doesn't match the mixed mode, and it is required to recompile and restart the session. Is this common sense to embedded devloper? Do we need to have a requirement?