|Re: [dsdp-dd-dev] Re: [cdt-dev] Disassembly issues|
To move forward with the new disassembly implementation I need your feedback on the following proposals and issues.
1. Management of disassembly/source editors and source lookup
The only way to open a disassembly editor window is to use the "Open Disassembly" action from the Debug view's context menu or from the "Source Not Found" editor.
Once the disassembly editor is opened for a disassembly context it becomes the default editor for all elements that expose the same debug context.
There are two options on how to manage the source editors in this case:
a. always try to open the source editor in background if the source file is available
b. do not try to open the source editor. In this case to open it user has to close the disassembly editor and double click on the corresponding stack frame.
In both cases we need to maintain the IP position in the source editor if it is open, which means that we can not use the default ISourceDisplay adapter provided by the platform :(
2. Stepping mode selection
Currently there is a toggle action "Instruction Mode" to switch between the source and instruction modes. There have been requests to make the instruction mode default when the disassembly view has focus (doesn't seem to work anymore).
I would propose to replace the "Instruction Mode" action by the dropdown menu with the following choices:
a. "Context" - use the instruction mode if the disassembly window is open, otherwise use the source mode
b. "Source" - always use the source mode.
c. "Instruction" - always use the instruction mode
3. Preference pages
As the content of the disassembly viewer is provided by models the creation of preference pages becomes a problem. It seems that we need one global page for the preferences shared by all models and a special preference page for each model. It could be confusing for the end users.
4. CDI support
Currently, the CDI interfaces for disassembly are duplicates of the disassembly related gdb/mi commands. This is not sufficient to implement the efficient "infinite" scrolling which is a big challenge for assemblers with variable instruction size.
Does it make sense to add an API extensions for the cases when some additional information (like previous/next valid instruction address) is available from the backend?
Back to the top