:








          - 

                    "        "













                  

                     

                        /P 2.1










                 

                            adb.














                           

                            1988












                             2



      adb.   -
    ,     -
.



























































                             3


1.    ADB

adb -      .     
        ,  
 core,      ,
       , -
    ,       
   .  ,  -
       .

2.     

     :

  1  char    *charp = " .";
  2  main(argc, argv)
  3  int     argc;
  4  char    **argv;
  5  {
  6      int fd;
  7      if (argc != 2) {
  8          printf("   \n");
  9          exit(8);
 10      }
 11      if ((fd = creat(argv[1],0666)) < 0) {
 12          printf("%s:  \n", argv[1]);
 13          exit(8);
 14      }
 15      charp = '';
 16      save(fd, charp);
 17  }
 18  save(fd, ptr)
 19  int     fd;
 20  char    *ptr;
 21  {
 22      int        cc;
 23      while (cc = *ptr++) {
 24          write(fd, cc, 1);
 25      }
 26  }

        .1.

      ,  
   .    -  
  ""   ,  charp   
     ,     
.

  ,        
prog.c.       :

        cc -O -o prog prog.c










                             4


     :

/lib/c cpp prog.c /tmp/cc0663
/lib/c0 c0 /tmp/cc0663 /tmp/cc1663 /tmp/cc2663
/lib/c1 c1 /tmp/cc1663 /tmp/cc2663 /tmp/cc0663
/lib/c2 c2 /tmp/cc0663 /tmp/cc3663
/bin/as as -u -o prog.o /tmp/cc3663
/bin/ld ld -X /lib/crt0.o -o prog prog.o -lc

:

cpp  -  ;

c0,c1
     -  

c2   -   

as   - 

ld   -  .

   :

     -      c2  (..  
        -O)     adb,   -
           .

     -   ld        
       /lib/ctr0.o   -lc (/usr/lib/libc.a).

     -      -s  (  
          ).    adb -
                (
       charp)   .

   cc   prog.   

        prog out

   out,  

         .

,    -   .  
        -
 adb.
















                             5


3.    ADB

3.1.   

adb   :

        adb  


     ,   -
     .    
adb   :

        adb prog

..     .       
   a.out  core .   
     "-",    
, :

        adb - core


3.2.   

 adb          -
.   ?    ; -
 /  .

    :








3.3.   

adb   , ( ), -
         
.    ,   -
   ,  :

        0126?i

     126   -
     .  :

        .,10/d

 10  ,       .  










                             6


      -
 .

3.4.  

  .     -
,        -
  .      
 +, -, *, % ( ), & (-
 ), ! ( ),  #  (
  )  ~ () (   adb -
  32-).        -
       _; adb -
  .

3.5.  

        -
,     .  "-
",          
       . 
     :

^         .

a     ;

b        ;

c       ;

d        ;

f        ;

i     -4;

n       ;

o        ;

r     ;

s     ,   ;

u          ;

          (long)
,  ,  D -    ,  F -
      (double).













                             7


3.6.    

     adb   :

        ,  

    ""     
"" .

      adb:

!    -    shell

$    -  

/    -    core

:    -  "" 

;    -  

=    -   ""

?    -    a.out

adb  ,      -
      adb.    adb 
   $q  $Q ( ctrl-d).

4.   -

4.1.    

 -,    . 1.   
  ,       charp
 ,  charp,        save  
 cc   .

adb  :

        adb prog

   adb:

save+4:b
:r out


$c
        ~save(03,0177774)
        ~main(02,0176672)
$C
        ~save(03,0177774)










                             8


                fd:         03
                ptr:        0177774
                cc:         04542
        ~main(02,0176672)
                argc:       02
                argv:       0176672
                fd:         03

        
    save   prog   
out.       (breakpoint).

 $c             ,
 $C      .

  .  main, : 02 =    -
, 0176672 =     .

   ,   -
      :

$r
        ps      0170004
        pc      0310    ~save+04
        sp      0176624
        r5      0176636
        r4      0
        r3      04716   _charp
        r2      0177113
        r1      06
        r0      0310
        ~save+04:       tst     -(sp)

:

        $e

    :

$e

    _environ: 0176700

    __ediag: 0

_charp: 0177774

    __iob: 06510

    __sobuf: 0

    __lastbu: 05462

    __sibuf: 0

    _end: 0

    _errno: 0

, adb. a.out ?, core - /. 9 , : ? , / - . , , : $m : $m ? map `prog'
/ map `-' , - ptr. : *ptr/s ptr core . , ptr . , charp: *charp/s . , charp - 15. :

    charp = '';

*charp = ''; 4.2. :
: main+4:b

    save+4:b

10 . , , , , . : +4, - , - - (csv). , , - , : $b "" . , , ""-1 . "" adb, , . , - main : main,5?ia main,5?i ""; - adb "" . 4.3. : :r , save, :
, : :c , adb - : $C 11 : :c 4.4. , adb , . , , - adb. adb , : :c , - . - , : :c 0 4.5. : :r 1 2 ... <&lt; >&gt; a.out. : :s , , , . adb , :

    :r

: , :

    :c

: 12 :k : .=o ( - ). () adb "- " . , , : .-10/d 5. . , - . 407, , : cc prog.c 410 cc -n prog.c 411 cc -i prog.c. adb . :

    _m

407 () . adb , - - ; , . 410 ( ) - , ?* a.out. ?* adb , a.out. core , - . , . 13 411 ( i d ) . , , - , - . , , ?* - a.out. 410 411 core . , 407, 410, 411 - : adb map407 core407 $m text map 'map407' b1 = 0 e1 = 0256 f1 = 020 b2 = 0 e2 = 0256 f2 = 020 data map 'core407' b1 = 0 e1 = 0300 f1 = 02000 b2 = 0175400 e2 = 0200000 f2 = 02300 $v variables d = 0300 m = 0407 s = 02400 $q adb map410 core410 $m text map 'map410' b1 = 0 e1 = 0200 f1 = 020 b2 = 020000 e2 = 020116 f2 = 0220 data map 'core410' b1 = 020000 e1 = 020200 f1 = 0200 b2 = 0175400 e2 = 0200000 f2 = 02200 $v variables b = 020000 d = 0200 m = 0410 s = 02400 t = 0200 $q adb map411 core411 $m text map 'map411' b1 = 0 e1 = 0200 f1 = 020 b2 = 0 e2 = 0116 f2 = 0220 data map 'core411' b1 = 0 e1 = 0200 f1 = 02000 b2 = 0175400 e2 = 0200000 f2 = 02200 $v variables 14 d = 0200 m = 0411 s = 02400 t = 0200 $q b, e f adb . f1 - - (020 a.out 02000 core). f2 . 470 , ; 410 411 - . b e , - . a : b1<=a<=e1, = (a-b1)+f1 b2<=a<=e2, = (a-b2)+f2 , adb . $v , - adb: b d s t m (407, 410, 411) . , : <&lt;b : 02000>&gt;b b 2000 ( ). , core. adb core. core, , . 15 6. adb - . - . 6.1. : <&lt;b,-1/4o4^8Cn 4 , -8, . : <&lt;b ; <&lt;b,-1 , . - (, , ). 4o4^8Cn : 4 . 4 8 , - ; , 0 037 @, - 0140 - 0177. @ - @@. . : <&lt;b,<&lt;d/4o4^8Cn , (<&lt;d ). adb . adb : adb a.out core<dump 16 dump. : 120$w 4095$s $v =3n $m =3n " -" $C =3n " " $e =3n "" $r 0$s =3n " " <&lt;b,-1/8ona 120$w 120 - (, 80 ). adb : + 4095$s 255 ( ) 4095. = . dump : =3n -"" . $v adb. 0$s - , - . : . : <&lt;b,-1/8ona . 6.2. , ( i- ( ), , 14 ): adb dir - =n8t"/fII-/fR"8t"/fI/fR" 0,-1?u8t14cn u i-/fR , 8t , adb , 8, 14c/fB , 14 . 17 6.3. adb . : 072=odx : 072 58 #3a , - 072 ( ). - , , . - , : 'a' = co :

    a 0141

, , - , , . 7. adb write, w W (, , , write ed). locate, l L. - l w : ?l l , L . w , W . "" locate write . , . , adb - : adb -w 1 2 , , 1 2 . 18 this the : adb -w ex7 - ?l'th' ?W'the' ?l , - th, . ? a.out. ?* 411. : ?l'th';?s "th" . adb "th". - , -, . adb, . : adb a.out - :s 1 2

    /w 1

:c :c - . a.out - 1 2. - , adb , , w . 8. - . , , . adb , a.out. - (, savr5+022). , ? () / . adb . 19 ......................................... 2 1. ADB .......................... 3 2. .......................... 3 3. ADB .......................... 5 3.1. ................................. 5 3.2. ............................. 5 3.3. ................................... 5 3.4. ....................................... 6 3.5. ......................................... 6 3.6. ........................ 7 4. - ............................... 7 4.1. .......................... 7 4.2. .......................... 9 4.3. .................. 10 4.4. ......................................... 11 4.5. ....................... 11 5. ...................................... 12 6. ...................... 15 6.1. ........................... 15 6.2. ................................... 16 6.3. ......................... 17 7. ................................ 17 8. ......................................... 18

Last-modified: Mon, 29 Jun 1998 13:53:57 GMT
: