Disassembling support in Nemiver



Hello,

I have been spending many week ends on the disassembling support in
Nemiver. Things are starting to be visible now so I thought I'd start
talking a bit about what I have.

At the moment when debugging a program the user can switch to an assembly
view by clicking on debug --> switch to assembly. This disassembles a
portion of code centered around the address represented by the current
value of the instruction pointer. The user can then normally step into
the assembly code and set breakpoints by clicking in the left hand
margin of the editing widget. While stepping, the debugger automatically
fetches more asm instructions as they are needed and feeds them into the
asm view progressively.
The user can switch back to source view by clicking on "debug" --> "switch
to source".
One nice side effect of this is that when stepping or breaking at an
address for which we don't have the source code handy -- e.g. because
there was no debug info for that portion of code, or because the
source code is not present on accessible storage -- the debugger
automatically shows the assembly instead of emitting annoying error
messages about missing debug info or missing source files.

What is missing is (in no particular order):
* Stepping assembly instruction per assembly instruction.
  - At the moment, the user can only step source line per source line,
    even though she sees the progress in the asm view.
* Setting breakpoints at a given instruction address using the
  breakpoint setting dialog.
  - At the moment the user can only set breakpoints in the asm view by
  clicking on the left hand side margin of the asm view.
* Supporting mixed asm/source disassembling. This would be pretty cool
  because it would show directly in the asm view which source code
  corresponds to which set of asm instructions.
  - At the moment, the user can only either see the source code, or the
    pure asm instructions. Not both inter-mixed.
* Assembly text highlighting. Someone (who said me?) needs to provide a
  a gtksourceview language spec for assembly so that the asm instruction
  views would be syntax highlighted.

I consider what was done as being pretty much the back-end and front-end
foundation work needed to support this disassembly features. The size of
the changes done so far is roughly around 5K lines of code, representing
both new code and re-organizing of the existing infrastructure.
I therefore expect the remaining tasks to be easier to execute now.
But hey, who knows :-)

The whole thing is in the "asm-support" branch in git. To try it out:

git clone git://git.gnome.org/nemiver.git nemiver.git
cd nemiver.git
./autogen.sh
make
sudo make install

And then probably send an email to this mailing list about what you
don't like :-)

I'll try to spend the coming week ends on the remaining tasks of this
asm-support effort.

Thank you for reading so far.

        Dodji


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]