Using strings(C) to find kernel component
To determine the file in which the problematic function
is located using the
strings(C)command:
-
Log in as root.
-
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
-
Write down the list of file names printed by the above command.
For this example, you will get the output:
/etc/conf/pack.d/sio/Driver.o
-
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
-
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
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003