Today I have checked in several files to sourceforge.
The changes affect the directory lkcdutils. Path names below are relative
to this directory.
Here is a list of the changed files (some files are mentioned several
times):
./configure
./get_bfd_version.c -> added
./lcrash/include/dis-asm.h
Support for different binutils versions while configuring lcrash
(needed for dis command for most platforms).
There was a change in a common structure in dis-asm.h and hence
the usage of libopcodes.a was influenced (binutils starting from
version 2.11 are affected).
This was leading to a SIGSEGV in lcrash, and causing dis command to
fail -
depending on which version of libopcode.a was installed on the system.
Lcrash works now with both versions of libopcodes.a.
./lcrash/arch/s390/lib/dis.c
./lcrash/arch/s390/lib/trace.c
./lcrash/include/arch-s390/trace.h
./libklib/include/asm-s390/kl_arch.h
s390 specific changes
./libklib/include/kl_btnode.h
./libklib/kl_btnode.c
Make usage of real AVL-tree. Reason for change: low performance of old
implementation of an balanced binary tree.
This changes are due to Michael Geselbracht.
./lcrash/cmds/Makefile
./lcrash/cmds/cmds.c
Changes needed for removal/introduction of old/new lcrash commands and
aliases.
./lcrash/include/lcrash.h
./lcrash/cmds/command.c
./lcrash/main.c
Introduction of an iteration threshold. Can be used to avoid endless
loops. Such loops can easily occur when broken next pointers are
followed in the dump
This threshold value can currently be changed by
commands walk and module (default is 10000). It is used in loops when
walking through chained lists (walk_structs()), and when reading
module
information (like module symbols) from the dump.
./lcrash/cmds/cmd_addtypes.c -> removed
./lcrash/cmds/cmd_namelist.c
Integrate handling of namelists in one command.
Use 'namelist -a' to add new namelists. 'addtypes' is an alias for
this.
./lcrash/cmds/cmd_sizeof.c
'sizeof -o struct.field' returns offset of field in struct. An
alias 'offset' exists for this.
Sure, this is not the best solution for an offset command, but as I
found out it
was the very easiest one. :)
./lcrash/cmds/cmd_walk.c
New feature to walk through 'list_head' structures instead of using
next
pointers. Support for iteration threshold.
./lcrash/cmds/cmd_symbol.c -> removed
./lcrash/cmds/cmd_symtab.c -> added
./lcrash/cmds/cmd_findsym.c
./lcrash/util.c
./libklib/include/kl_sym.h -> added
./libklib/include/klib.h
./libklib/kl_symbol.c
./libklib/klib.c
Support for multiple symbol tables. 'symbol' became obsolete when
'symtab' was introduced. An alias 'symbol' exists for 'findsym'.
With 'findsym -f' you can search for symbols comparing only the
first characters of all symbols (internally a strncmp()
is performed).
An additional symbol table (besides System.map) is loaded during
startup of lcrash. It contains exported kernel symbols and is
named __ksymtab__. As all other symbol tables, this table can be
removed and recreated
in lcrash using the 'symtab' command. Recreation of __ksymtab__
becomes necessary when
analyzing a live system and some modules are (remove and) added.
./libklib/include/asm-alpha/kl_sym.h -> removed
./libklib/include/asm-i386/kl_sym.h -> removed
./libklib/include/asm-ia64/kl_sym.h -> removed
./libklib/include/asm-s390/kl_sym.h -> removed
./libklib/include/kl_sym.h -> added
Because asm-*/kl_sym.h did not contain any arch dependent/specific
stuff,
one common file kl_sym.h is used for all platforms.
./lcrash/Makefile
./lcrash/module.c -> added
./lcrash/struct.c
./lcrash/include/lcrash.h
./libklib/kl_util.c
Support for struct module. Like task_struct the struct module has now
predifined print functions.
./lcrash/cmds/cmd_module.c -> added
./lcrash/include/lcrash.h
New command module for viewing loaded modules and to display exported
kernel/module symbols.
./lcrash/include/command.h
./lcrash/struct.c
Support for struct list_head in walk command.
./libklib/kl_stabs.c
Bug fix: st_member_offset should return negative value to indicate an
error.
Bug fix: sizeof command supports now also typedefs.
./lcrash/cmds/cmd_whatis.c
Bug fix: whatis command works now correct for typedefs of typedefs.
./libklib/include/kl_typeinfo.h
./lcrash/include/lcrash.h
Changed values of flags.
The revision before my changes in lkcdutils are tagged in the cvs
repository.
I used a sticky tag 'before_module_support'.
That means everyone is able to receive the former lcrash version (as of
20001/08/15) by using:
"cvs checkout -r before_module_support lkcdutils" (see lkcd sourceforge web
side for additional parameters)
It is even possible to work in that branch, if there are any conflicts with
the new stuff.
I plan to put another mail to the list to describe the new features a
little bit.
Sorry for the delay in checking in the new stuff.
This was due to an internal legal clearance process that we must pass when
putting new things to open source.
I know especially regarding module support of lcrash some people have
waited to look at the stuff
I have done ...
Regards,
Andreas
--
Linux for eServer Development
Tel : +49-7031-16-4640
Notes mail : Andreas Herrmann/GERMANY/IBM@IBMDE
email : aherrman@xxxxxxxxxx
|