adb man page on Ultrix

Man page or keyword search:  
man Server   3690 pages
apropos Keyword Search (all sections)
Output format
Ultrix logo
[printable version]

adb(1)									adb(1)

Name
       adb - interactive C program debugger

Syntax
       adb [-w] [-k] [-Idir] [objfil [corfil]]

Description
       The  command is a general purpose debugging program.  It may be used to
       examine files and to provide a controlled environment for the execution
       of UNIX programs.

       The  objfil is normally an executable program file, preferably contain‐
       ing a symbol table.  If it does not contain a  symbol  table  then  the
       symbolic	 features  of  cannot be used.	However, the file can still be
       examined.  The default for objfil is The corfil is assumed to be a core
       image  file  produced after executing objfil; the default for corfil is
       core.

       Requests to are read from the standard input and responses are  to  the
       standard output.	 If the -w flag is present then both objfil and corfil
       are created if necessary and opened for reading	and  writing  so  that
       files can be modified using

       The  -k	option	makes do UNIX kernel memory mapping; it should be used
       when core is a UNIX crash dump or

       The -I option specifies a directory where files to be read with or (see
       the EXPRESSIONS section) are sought.  The default directory is

       The command ignores QUIT; INTERRUPT causes return to the next command.

       In general requests to are of the form

		[address]  [, count] [command] [;]

       If address is present then dot is set to address.  Initially dot is set
       to 0.  For most commands count specifies how many times the command  is
       executed.  The default count is 1.  Address and count are expressions.

       The  interpretation of an address depends on its context.  If a subpro‐
       cess is being debugged then addresses are interpreted in the usual  way
       in  the	address	 space	of the subprocess.  If the operating system is
       being debugged either post-mortem or using the special file to interac‐
       tive  examine  and/or  modify memory the maps are set to map the kernel
       virtual addresses which start at 0x80000000.  For  further  details  of
       address mapping, see ADDRESSES.

Expressions
       .	   The value of dot.

       +	   The value of dot incremented by the current increment.

       ^	   The value of dot decremented by the current increment.

       "	   The last address typed.

       integer	   A  number.  The prefixes 0o and 0O (“zero oh”) force inter‐
		   pretation in octal radix; the  prefixes  0t	and  0T	 force
		   interpretation  in  decimal	radix;	the prefixes 0x and 0X
		   force interpretation in hexadecimal	radix.	 Thus  0o20  =
		   0t16	 =  0x10  =  sixteen.	If no prefix appears, then the
		   default radix is used; see the  $d  command.	  The  default
		   radix is initially hexadecimal.  The hexadecimal digits are
		   0123456789abcdefABCDEF with the obvious values.  Note  that
		   a  hexadecimal  number  whose  most significant digit would
		   otherwise be an alphabetic character must have a 0x (or 0X)
		   prefix (or a leading zero if the default radix is hexadeci‐
		   mal).

       integer.fraction
		   A 32 bit floating point number.

       ´cccc´	   The ASCII value of up to 4 characters.

       < name	   The value of name, which is either a	 variable  name	 or  a
		   register  name.   The  debugger maintains a number of vari‐
		   ables (see VARIABLES) named by single  letters  or  digits.
		   If  name  is a register name then the value of the register
		   is obtained from the system header in corfil.  The register
		   names are those printed by the $r command.

       symbol	   A  symbol  is  a  sequence  of upper or lower case letters,
		   underscores or digits, not  starting	 with  a  digit.   The
		   backslash  character	 \ may be used to escape other charac‐
		   ters.  The value of the symbol is taken from the symbol ta‐
		   ble in objfil.  An initial underscore (_) will be prepended
		   to symbol if needed.

       _ symbol	   In C, the true name of an external symbol  begins  with  _.
		   It may be necessary to use this name to distinguish it from
		   internal or hidden variables of a program.

       routine.name
		   The address of the variable name in the  specified  C  rou‐
		   tine.  Both routine and name are symbols.  If name is omit‐
		   ted the value is the address of the most recently activated
		   C  stack frame corresponding to routine.  This form is cur‐
		   rently broken on the VAX; local variables can  be  examined
		   only with

       (exp)	   The value of the expression exp.

       Monadic operators

       *exp	   The contents of the location addressed by exp in corfil.

       @exp	   The contents of the location addressed by exp in objfil.

       -exp	   Integer negation.

       ~exp	   Bitwise complement.

       #exp	   Logical negation.

       Dyadic operators are left associative and are less binding than monadic
       operators.

       e1+e2	   Integer addition.

       e1-e2	   Integer subtraction.

       e1*e2	   Integer multiplication.

       e1%e2	   Integer division.

       e1&e2	   Bitwise conjunction.

       e1|e2	   Bitwise disjunction.

       e1#e2	   E1 rounded up to the next multiple of e2.

Commands
       Most commands consist of a verb followed by a modifier or list of modi‐
       fiers.	The following verbs are available.  The commands question mark
       (?) and slash (/) may be followed by an asterisk (*); see the ADDRESSES
       section for further details.

       ?f	   Locations starting at address in objfil are printed accord‐
		   ing to the format f.	 dot is incremented by the sum of  the
		   increments for each format letter.

       /f	   Locations starting at address in corfil are printed accord‐
		   ing to the format f and dot is incremented as for  question
		   mark (?).

       =f	   The	value of address itself is printed in the styles indi‐
		   cated by the format f.  (For i format,  the	question  mark
		   (?) is printed for the parts of the instruction that refer‐
		   ence subsequent words.)

       A format consists of one or more characters that	 specify  a  style  of
       printing.   Each	 format character may be preceded by a decimal integer
       that is a repeat	 count	for  the  format  character.   While  stepping
       through	a format, dot is incremented by the amount given for each for‐
       mat letter.  If no format is given then the last format is  used.   The
       format letters available are as follows:

       o2	   Print  2  bytes  in octal.  All octal numbers output by are
		   preceded by 0.
       O4	   Print 4 bytes in octal.
       q2	   Print in signed octal.
       Q4	   Print long signed octal.
       d2	   Print in decimal.
       D4	   Print long decimal.
       x2	   Print 2 bytes in hexadecimal.
       X4	   Print 4 bytes in hexadecimal.
       u2	   Print as an unsigned decimal number.
       U4	   Print long unsigned decimal.
       f4	   Print the 32 bit value as a floating point number.
       F8	   Print double floating point.
       b1	   Print the addressed byte in octal.
       c1	   Print the addressed character.
       C1	   Print the addressed character  using	 the  standard	escape
		   convention  where  control characters are printed as ^X and
		   the delete character is printed as ^?.
       sn	   Print the addressed characters until a  zero	 character  is
		   reached.
       Sn	   Print a string using the ^X escape convention (see the for‐
		   mat C1 above).  n is the length of the string including its
		   zero terminator.
       Y4	   Print 4 bytes in date format.  For further information, see
       in	   Print  as  machine  instructions.  n is the number of bytes
		   occupied by the instruction.	 This style of printing causes
		   variables  1	 and  2	 to  be set to the offset parts of the
		   source and destination respectively.
       a0	   Print the value of  dot  in	symbolic  form.	  Symbols  are
		   checked  to	ensure	that  they have an appropriate type as
		   indicated below:

			/    local or global data symbol
			?    local or global text symbol
			=    local or global absolute symbol

       p4	   Print the addressed value in symbolic form using  the  same
		   rules for symbol lookup as a0.
       t0	   When	 preceded  by  an integer tabs to the next appropriate
		   tab stop.  For example, 8t moves to the  next  8-space  tab
		   stop.
       r0	   Print a space.
       n0	   Print a new line.
       "..."0	   Print the enclosed string.
       ^	   Dot	is  decremented	 by the current increment.  Nothing is
		   printed.
       +	   Dot is incremented by 1.  Nothing is printed.
       -	   Dot is decremented by 1.  Nothing is printed.

       newline	   Repeat the previous command with a count of 1.

       [?/]l value mask
		   Words starting at dot are masked  with  mask	 and  compared
		   with	 value	until a match is found.	 If L is used then the
		   match is for 4 bytes at a time instead of 2.	 If  no	 match
		   is found then dot is unchanged; otherwise dot is set to the
		   matched location.  If mask is omitted then -1 is used.

       [?/]w value ...
		   Write the 2-byte value into the addressed location.	If the
		   command is W, write 4 bytes.	 Odd addresses are not allowed
		   when writing to the subprocess address space.

       [?/]m b1 e1 f1[?/]
		   New values for (b1, e1, f1) are  recorded.	If  less  than
		   three  expressions are given then the remaining map parame‐
		   ters are left unchanged.  If the `?' or `/' is followed  by
		   `*'	then  the  second segment (b2,e2,f2) of the mapping is
		   changed.  If the list is terminated by `?' or `/' then  the
		   file (objfil or corfil respectively) is used for subsequent
		   requests.  So that, for example, `/m?' will	cause  `/'  to
		   refer to objfil.

       >name	   Dot is assigned to the variable or register named.

       !	   A  shell  (/bin/sh)	is called to read the rest of the line
		   following `!'.

       $modifier   Miscellaneous commands.  The following modifiers are avail‐
		   able:

		   <f	Read  commands	from  the  file f.  If this command is
			executed in a file, further commands in the  file  are
			not  seen.   If f is omitted, the current input stream
			is terminated.	If a count is given, and is zero,  the
			command	 will be ignored.  The value of the count will
			be placed in variable 9 before the first command in  f
			is executed.

		   <<f	Similar	 to  < except it can be used in a file of com‐
			mands without causing the file to be closed.  Variable
			9  is  saved during the execution of this command, and
			restored when it completes.  There is a (small) finite
			limit  to  the	number of << files that can be open at
			once.

		   >f	Append output to the file f, which is  created	if  it
			does  not  exist.  If f is omitted, output is returned
			to the terminal.

		   ?	Print process id, the signal which caused stoppage  or
			termination, as well as registers such as $r.  This is
			the default if modifier is omitted.

		   r	Print  the  general  registers	and  the   instruction
			addressed by pc.  Dot is set to pc.

		   b	Print  all breakpoints and their associated counts and
			commands.

		   c	C stack backtrace.  If address is  given  then	it  is
			taken  as  the address of the current frame instead of
			the contents of the frame-pointer register.  If	 C  is
			used  then  the names and (32 bit) values of all auto‐
			matic and static variables are printed for each active
			function. (broken on the VAX).	If count is given then
			only the first count frames are printed.

		   d	Set the default radix to address and  report  the  new
			value.	 Note that address is interpreted in the (old)
			current radix.	Thus “10$d” never changes the  default
			radix.	  To  make  decimal  the  default  radix,  use
			“0t10$d”.

		   e	The  names  and	 values	 of  external  variables   are
			printed.

		   w	Set the page width for output to address (default 80).

		   s	Set  the  limit for symbol matches to address (default
			255).

		   o	All integers input are regarded as octal.

		   q	Exit from

		   v	Print all non zero variables in octal.

		   m	Print the address map.

		   p	(Kernel debugging) Change the  current	kernel	memory
			mapping	 to  map  the designated user structure to the
			address given by the symbol _u.	 The address  argument
			is the address of the user's user page table entries.

		   x	(Kernel	 debugging)  The  address  argument is the CPU
			number.	 Change the current kernel memory  mapping  to
			that  of the specified CPU. If no address is provided,
			the status of each of the CPUs in the system  is  dis‐
			played.	 This option is ONLY valid with the -k option.

       :modifier   Manage  a  subprocess.   The following modifiers are avail‐
		   able:

		   bc	Set breakpoint at address.  The breakpoint is executed
			count-1	 times	before	causing a stop.	 Each time the
			breakpoint is encountered the command c	 is  executed.
			If  this  command  is omitted or sets dot to zero then
			the breakpoint causes a stop.

		   d	Delete breakpoint at address.

		   r	Run objfil as  a  subprocess.	If  address  is	 given
			explicitly  then the program is entered at this point;
			otherwise the program is entered at its standard entry
			point.	count specifies how many breakpoints are to be
			ignored before stopping.  Arguments to the  subprocess
			may  be	 supplied on the same line as the command.  An
			argument starting with <  or  >	 causes	 the  standard
			input or output to be established for the command.

		   cs	The  subprocess	 is  continued	with  signal s, see If
			address is given then the subprocess is	 continued  at
			this address.  If no signal is specified then the sig‐
			nal that  caused  the  subprocess  to  stop  is	 sent.
			Breakpoint skipping is the same as for r.

		   ss	As  for c except that the subprocess is single stepped
			count times.  If there is no current  subprocess  then
			objfil	is run as a subprocess as for r.  In this case
			no signal can be sent; the remainder of	 the  line  is
			treated as arguments to the subprocess.

		   k	The current subprocess, if any, is terminated.

Variables
       The  command  provides  a number of variables.  Named variables are set
       initially by but are not used  subsequently.   The  following  numbered
       variables are reserved for communication:

       0      The last value printed.
       1      The last offset part of an instruction source.
       2      The previous value of variable 1.
       9      The count on the last or command.

       On  entry  the  following are set from the system header in the corfil.
       If corfil does not appear to be a core file then these values  are  set
       from objfil.

       b      The base address of the data segment.
       d      The data segment size.
       e      The entry point.
       m      The `magic' number (0407, 0410 or 0413).
       s      The stack segment size.
       t      The text segment size.

Addresses
       The  address  in a file associated with a written address is determined
       by a mapping associated with that file.	Each mapping is represented by
       two  triples  (b1, e1, f1) and (b2, e2, f2) and the file address corre‐
       sponding to a written address is calculated as follows:

	b1≤address<e1 => file address=address+f1-b1, otherwise,

	b2≤address<e2 => file address=address+f2-b2,

       otherwise, the requested address is not	legal.	 In  some  cases  (for
       example,	 for  programs	with separated I and D space) the two segments
       for a file may overlap.	If a ?	or / is followed by an * then only the
       second triple is used.

       The  initial  setting of both mappings is suitable for normal a.out and
       core files.  If either file is not of the kind expected then, for  that
       file,  b1 is set to 0, e1 is set to the maximum file size and f1 is set
       to 0.  This way the whole file can be examined with no address transla‐
       tion.

Restrictions
       Because	no shell is invoked to interpret the arguments of the command,
       the customary wildcard and variable expansions cannot occur.

Diagnostics
       When there is no command or format given to the string  `adb'  appears.
       displays	 comments  about  inaccessible	files, syntax errors, abnormal
       termination of commands, etc.  Exit status is 0,	 unless	 last  command
       failed or returned nonzero status.

Files
See Also
       cc(1), dbx(1), ptrace(2), a.out(5), core(5)

				      VAX				adb(1)
[top]

List of man pages available for Ultrix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
...................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net