crash extension modules
Crash extension modules are required to #include the defs.h file from the top-level directory of crash source tree. There are three suggested manners for building a module:
  1. Hand-compile the module's .so shared object file like this:

      $ gcc -nostartfiles -shared -rdynamic -o <module>.so <module>.c -fPIC -D<machine-type> $(TARGET_CFLAGS)

    where <machine-type> is X86, X86_64, IA64, PPC64, S390 or S390X, and where $(TARGET_CFLAGS) is -D_FILE_OFFSET_BITS=64 on 32-bit architectures, and -m64 on ppc64.

    As a convenience, the crash utility's crash-<release>.src.rpm package builds a crash-devel sub-package, which installs defs.h into /usr/include/crash/defs.h.

  2. Alternatively, copy the module's .c source file to the crash-<release>/extensions subdirectory. Then, from the top-level crash-<release> directory, enter:

      $ make extensions

    If the default compile line does not suffice, create an accompanying .mk makefile with the same prefix as the .c file, copy it to the crash-<release>/extensions subdirectory, and enter the same make extensions command as above.

  3. Lastly, some extension modules that do have both <module>.c and <module>.mk files may be built without the crash source tree if the defs.h file is located in the current directory or in the /usr/include/crash directory:

      $ make -f <module>.mk

To add the module's command(s) to a running crash session, enter:

  crash> extend <path-to>/<module>.so

The command(s) registered by the extension module will appear in the crash help menu. The module can be installed automatically if the extend command above is entered in either ./.crashrc or $HOME/.crashrc.

module commands   comments
echo.c echo
  • Provided primarily as a template for writing new extension modules.
  • This module is contained within the crash source package.
  • Author: anderson@redhat.com
snap.c
snap.mk
snap
  • This experimental command takes a snapshot of physical memory and creates an ELF vmcore. The default vmcore is a kdump-style dumpfile, but a netdump-style may be optionally created. It supports the x86, x86_64, ia64 and ppc64 architectures only, i.e., those that currently have kdump/netdump capability. All caveats regarding the taking of a "live" memory snapshot apply, such as the constantly-changing state of the kernel's slab subsystem or process set while the dump is taking place.

    The module also serves as an example of an extension module that can be built in all three manners:

    1. Copy snap.c to the crash-<release>/extensions subdirectory, and from the top-level crash-<release> directory, and enter:
        $ make extensions
    2. Copy both snap.c and snap.mk to the crash-<release>/extensions subdirectory, and from the top-level crash-<release> directory, and enter:
        $ make extensions
    3. Copy snap.c, snap.mk, and defs.h into any directory. The defs.h file may also be located in the /usr/include/crash directory, as would be the case if the crash-devel sub-package had been installed. Then enter:
        $ make -f snap.mk

  • This module will be contained within the crash source package after crash version 4.0-8.9.
  • Author: anderson@redhat.com
sial.c
sial.mk
load
unload
edit
  • This module is a prerequisite for the loading of SIAL scripts.
  • Upon installing the sial.so object file with extend, any SIAL scripts located in the /usr/share/sial/crash or $HOME/.sial directories will be loaded automatically.
  • This module and its makefile are contained within the crash source package.
  • Author: lucchouina@yahoo.com
dminfo.c dminfo
  • Device Mapper information.
  • This module is contained within the crash source package.
  • Author: NEC Japan
spu.c spuctx
spus
spurq
  • Commands for viewing Cell/B.E. SPU's data
  • Requires kernel version >= 2.6.23-rc1
  • Prior to installing it, it is necessary to load the debuginfo symbols of the spufs kernel module:
      crash> mod -s spufs
  • This module is part of IBM Software Development Kit (SDK) for Multicore Acceleration since Version 3.0.
  • Author: luciojhc@br.ibm.com
pykdump epython
crashinfo
xportshow
  • Execute Python scripts in crash environment
  • Gather basic data
  • View networking information
  • See Project page for more details
  • Author: Alex Sidorenko asid@hp.com
 
crash SIAL scripts
SIAL scripts require no compilation, but they do require that the sial.so extension module be pre-loaded with extend, because sial.so provides the load command required to load SIAL scripts. To add the module to a running crash session, enter:

  crash> extend <path-to>/sial.so

The module can be installed automatically if the extend command above is entered in either ./.crashrc or $HOME/.crashrc.

SIAL scripts may be located anywhere. However, upon loading the sial.so module, SIAL scripts located in the /usr/share/sial/crash or $HOME/.sial directories will be loaded automatically. The command(s) contained in a loaded SIAL script will appear in the crash help menu.

The libsial README and README.sial files contain information regarding the format of SIAL scripts.

script commands   comments
ps.c sps
  • Alternative to native "ps" command.
  • Verified only on 2.6.14 kernel; useful as a command template.
  • Author: lucchouina@yahoo.com
files.c sfiles
  • Emulation of the native "files" command.
  • Verified only on 2.6.14 kernel; useful as a command template.
  • Author: lucchouina@yahoo.com
crash Python scripts
Pykdump scripts require no Python installed, but they do require the mpykdump.so extension module pre-loaded with extend. mpykdump.so provides built-in Python intepreter and needed pure Python libraries as well as Python bindings to crash. Loading the extension registers 'epython' command which can be used to execute Python programs.

To minimize the extension size, only parts of Python standard library are included in the extension file. If you need anything extra (e.g. XML/RPC) please contact the author.

The mpykdump.so extension file is a shared library with ZIP-archive appended at the end of it. You can use standard ZIP command to view the contents of it and add your own Python programs. In addition to generic epython command, two useful programs are included in the extension (see Wiki documentation on SF site for more details):

crashinfo
  • Print a brief summary of the dump running some tests
  • Using additional options, do other things (Swiss Army Knife approach - instead of many separate programs, use one with many options)
  • Author: asid@hp.com
xportshow
  • Print networking connections, routing tables etc. - similar to netstat
  • Author: asid@hp.com