a

adb(1)

adb(1)

On entry, the following named variables are set from the coreheaders in the cor®l. If cor®l does not appear to be a core ®le, these values are set from obj®l.

bThe base address of the data segment.

dThe data segment size.

sThe stack segment size.

tThe text segment size.

The following variables are set from obj®l.

eThe entry point.

mThe "magic" number as de®ned in <magic.h>.

Addresses

The ®le address associated with a written address is determined by a mapping described below; see $m. Both the obj®l mapping and the default cor®l mapping are represented by two triples (b1, e1, f1) and (b2, e2, f2). The initial mapping for a valid cor®l contains a triple for each segment (coreheader).

The ®le address corresponding to a written address is calculated as follows:

If

b1 <= address < e1, then ®le address = address + f1 b1.

Otherwise, if

b2 <= address < e2, then ®le address = address + f2 b2.

Otherwise, the requested address is not valid. For a valid cor®l, this pattern repeats as many times as there are segments (coreheaders) in the cor®l, rather than twice. If ? or / is followed by *, only the second triple is used, or (when using the initial mapping of a valid cor®l) only segments with a CORE_STACK coreheader.

The initial setting of both mappings is suitable for normal a.out and core ®les. If either ®le is not of the kind expected, adb sets b1 to 0, e1 to the maximum ®le size, and f1 to 0; in this way the entire ®le can be examined with no address translation.

adb keeps all appropriate values as signed 32-bit integers so that it can be used on large ®les.

EXTERNAL INFLUENCES

International Code Set Support

Single- and multi-byte character code sets are supported.

RETURN VALUE

adb comments about inaccessible ®les, syntax errors, abnormal termination of commands, etc. It echoes adb when there is no current command or format. Exit status is 0, unless the last command failed or

Section 18

− 6 −

HP-UX Release 11i: December 2000