[eresi-dev] 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:17:26 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