Using the crash(ADM) diagnostic tool

Using strings(C) to find kernel component

To determine the file in which the problematic function is located using the strings(C)command:

  1. Log in as root.

  2. Determine the names of the kernel component files that reference the functions that were called just before the system panicked. The following shell script searches for the sioopen( ) function; you can type this in at the shell. Note that the ``#'' and ``>'' characters are prompts from the root shell; do not type them in. Be sure to get the single quote marks exactly right!
       #for i in `find /etc/conf -name '*.o' -print`
       > do
       > string $i 2> /dev/null | grep sioopen > /dev/null && echo $i
       > done

  3. Write down the list of file names printed by the above command. For this example, you will get the output:

  4. Search for the file name in the /etc/perms files. For this example, type:
       egrep /etc/conf/pack.d/sio/Driver.o /etc/perms/*
    This will give as output:
       /etc/perms/inst:LINK f644 root/sys 1 ./etc/conf/pack.d/sio/Driver.o N04

  5. The LINK string after the colon indicates that this kernel routine is part of the link kit supplied as part of the operating system. If the file does not appear in the perms files, or if the package name that appears before the colon is part of a device driver not supplied or certified with SCO OpenServer, the problem may be with that driver.

Next topic: Using nm(CP) to find kernel component
Previous topic: Determining the kernel component that failed

© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 03 June 2005