lkcd
[Top] [All Lists]

new lcrash features

To: lkcd@xxxxxxxxxxx
Subject: new lcrash features
From: "Andreas Herrmann" <AHERRMAN@xxxxxxxxxx>
Date: Thu, 16 Aug 2001 15:01:27 +0200
Cc: "Matt D. Robinson" <yakker@xxxxxxxxxxxxxx>, "Tom Morano" <tjm@xxxxxxx>
Importance: Normal
Sender: owner-lkcd@xxxxxxxxxxx
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


<Prev in Thread] Current Thread [Next in Thread>
  • new lcrash features, Andreas Herrmann <=