adb: absolute debugger

An example: directory and inode dumps

This example illustrates how to create adb scripts to display the contents of a directory file and the inode map of a UNIX file system. The directory file is assumed to be named dir, and contains a variety of files. The UNIX file system is assumed to be associated with the device file /dev/src, and has the necessary permissions for you to read it.

To display a directory file, create an appropriate script, then start adb with the name of the directory, redirecting its input to the script.

First, create a script file named script. A directory file normally contains one or more entries. Each entry consists of an unsigned inumber and a 14-character filename. To display this information, add the following command to the script file:

This command displays one entry for each line, separating the number and filename with a tab. The display continues until the first five entries have been printed. If this command is placed at the beginning of the script, adb displays the strings as headings for the columns of numbers:
Once you have the script file, type:
   adb dir - <script
(The dash (-) is used to prevent adb from attempting to open a core file.) The adb program reads the commands from the script and displays the following:
   inumber	name
   652		.
   82		..
   5971		cap.c
   5323		cap
   0		pp
To display the inode table of a file system, you must create a new script, then start adb with the filename of the device associated with the file system (such as the hard disk drive).

The structure of an inode table entry is defined in the file /usr/include/sys/ino.h. Each inode entry includes:

The inode table starts at the address ``04000'' of the filesystem. This is the address of the beginning of block 2 of the file system.

Display the first entry by typing:

Several Newlines are inserted within the display to make it easier to read.

To use the script on the inode table of /dev/src, type:

   adb /dev/src - <script
(Again, the dash (-) is used to prevent an unwanted core file.) Each entry in the inode table display has the following form:
   LO.:	O4O755
   	046	03	03
   	640	0
   	0121	06	0	0	0	0	0		0
   	0	0	0	0	0	0	0		0
   	0	0	0	0	0	0	0		0
   	0	0	0	0	0	0	0		0
   	0	0	0	0	0	0	0		0
   	1986 Dec  4 13:55:49	1986 Nov 20 20:46:13	1986 Nov 20 20:46:13

Next topic: Patching binary files and memory
Previous topic: Computing numbers and displaying text

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003