[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Disassembly issues
|
At 06:17 AM 4/22/2008, Mikhail Khodjaiants wrote:
Content-Class:
urn:content-classes:message
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C8A46A.753B0AE3"
Hi all,
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 :(
Mikhail, I'd like to suggest a third option. Introduce a context menu
action in the new Disassembly editor labeled "Show source" (or
something to that effect). The action would close the Disassembly editor
and open the Source one. If that's not possible, I would go with (b), but
honestly, I'm not crazy about either alternative.
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
This sounds good to me.
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.
I don't think this will be too confusing.
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?
It makes sense to me. If we come up with even more advanced disassembly
features that not all backends can support, we'll just keep adding new
interfaces, and that will allow us to discover and exercise those
capabilities on the advanced backends.
John