-
" "
/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
breakpoint ~save+04: tst -(sp)
$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
_charp: 0177774
,
adb. a.out
?, core - /.
9
, : ? ,
/ - . ,
, :
$m
:
$m
? map `prog'
b1 = 0 e1 = 05510 f1 = 020
b2 = 0 e2 = 05510 f2 = 020
/ map `-'
b1 = 0 e1 = 0100000000 f1 = 0
, -
ptr. :
*ptr/s
ptr core
.
, ptr .
, charp:
*charp/s
.
, charp -
15. :
*charp = '';
4.2.
:
:
main+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 ... << >>
a.out.
:
:s
, ,
,
.
adb
, :
:
,
:
:
12
:k
:
.=o
( -
). () adb "-
" .
, , :
.-10/d
5.
.
, -
. 407,
,
:
cc prog.c
410
cc -n prog.c
411
cc -i prog.c.
adb
.
:
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)
.
,
:
<<b
:
02000>>b
b 2000 ( ).
,
core.
adb
core.
core, ,
.
15
6.
adb -
. -
.
6.1.
:
<<b,-1/4o4^8Cn
4 ,
-8,
. :
<<b ;
<<b,-1
, .
- (, ,
).
4o4^8Cn :
4
. 4
8 , -
; ,
0 037 @, -
0140 - 0177. @ -
@@.
.
:
<<b,<<d/4o4^8Cn
,
(<<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
" " <<b,-1/8ona
120$w 120 -
(, 80 ).
adb :
+
4095$s
255 ( )
4095. =
. dump
:
=3n -""
.
$v adb.
0$s -
, -
. :
. :
<<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
:
,
, -
, , .
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
: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