[eresi-dev] [Well-indented repost] Kernsh alpha + A list of useful small & easy features to be implemented in ERESI
Julien Vanegue
jv274 at cam.ac.uk
Thu Jul 26 15:22:25 UTC 2007
HI guys,
We are currently improving the 0.8 branch. As said on the
irc channel, we now have the very first alpha version of
kernsh-eresi in the CVS. It is known to work on linux 2.6
but aims at being more portable in the near future.
Kernsh-eresi is still an alpha version as some bugs are
identified and the code is not yet commented and completely
cleaned. It is however already much cleaner than any
previous kernsh version. It can already script into the kernel
memory for read/write objects registered in the eresi type
system, and this directly in the eresi language. The author
of kernsh-eresi (pouik) will announce the first stable version
of kernsh on linux when we reach kernsh beta-1.
Beside the advances on kernsh, you probably have seen
the birth of the evarista static analyzer as well in the cvs.
It has a very minimal C code base, as it aims to be entirely
implemented in the eresi language. For now the "template"
backend is for sparc (see sparc2lir.esh). The syntax is definitive
but the transformation system is not yet operational, so dont try
to use it. It should hopefully be usable before the end of the
month, as the same time we should have kernsh beta.
I profit from this email also to call for ERESI contributors for
various small and easy to implement features that would be
very useful to everyone. Those features are not reported on
the BTS. They are:
* Improvement of the completion using readline. The code
of this stands in libui/readln.c . The idea is that we should not
have a simple pool of words to be completed but a set of
sets of word to be activated for completion when the current
line reaches a certain state. Actually we already have those
multiple sets of words (one for symbols, one for commands,
one for objects, etc) but they are currently all activated at the
same time, which does not help beginner ERESI programmers
to know how they can continue the current line, as -everything-
is proposed by completion whatever the state of the line.
* A new command "dump" (syntax: dump format addr|symbol)
This command should do the same than gdb : x/... . We dont have
that command for now, but only X and D commands which
respectively dump in hexadecimal and disassemble at a given
address or symbol. That should be quite easy to code as all
the API is already there. Just a front end eresi command should
be added. Anyone ?
* We should have the ability to script the debugger directly from
the unix shell command line instead of having to execute the debugger
and then do "source scriptname.esh". Scripting directly from the
UNIX shell is already provided by all other tools (elfsh, etrace,
evarista, not sure for kernsh ?). Its more subtle to support this for
e2dbg as the embedded debugger needs to be loaded first in the target
process before we can script it. However, since we have a debugger
client (not embedded) that acts as an interface, and a debugger server
that is embedded, it is certainly possible to handle the command line
script in the client side, and send it to the server side once it has been
loaded. This would be another nice feature for all of those who are
tired by the limitations of gdb scripts (bad performances and lack of
integration in the ELF format).
* Finally, we still need someone to port the --enable-network extension
of ERESI. This extension always worked, but it has been untested for
a while, has never been used in the debugger (only from elfsh), and
I doubt it still even compile now. It has been disabled in the ./configure
file until we find a contributor to take care of it. This extension is
really
powerful as it brings a pool of around 10 commands that are all oriented
on communicating between eresi nodes on the network, which has
implications in the embedded debugging of distributed systems, and more.
Once again, a contributor is wanted here.
Thats all for now.
Enjoy the ERESI framework
Julien Vanegue
More information about the eresi-dev
mailing list