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 :(
IMO opening both disassembly and the editor seems like an overkill. It
may even be rather confusing to the user as well. It may also be
confusing to the user to keep the existing disassembly view as a view.
Perhaps it would be better to replace the disassembly view with a
memory rendering.
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?
Comments?
Ideas?
Thanks,
Mikhail
--
IMPORTANT NOTICE: The
contents of this email and any attachments are confidential and may
also be privileged. If you are not the intended recipient, please
notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information
in any medium. Thank you.
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev