lynx   »   [go: up one dir, main page]

[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


GDB$B%;%C%7%g%s$N%5%s%W%k(B

$B$=$N5$$K$J$l$P!"(B $B$3$N%^%K%e%"%k$r;H$C$F(BGDB$B$N$9$Y$F$r3X=,$9$k$3$H$b$b$A$m$s2DG=$G$9$,!"(B GDB$B$r;H$$;O$a$k$K$O!"(B $B$$$/$D$+$N%3%^%s%I$rCN$C$F$$$l$P==J,$G$9!#(B $BK\>O$G$O!"$=$N$h$&$J%3%^%s%I$K$D$$$F@bL@$7$^$9!#(B

GDB$B$N=PNO>pJs$H$N6hJL$,MF0W$K$D$/$h$&$K!"(B $B$3$N%5%s%W%k!&%;%C%7%g%s$G$O!"(B $B%f!<%6$NF~NO$r(B input $B$N$h$&$KB@;z$GI=$o$7$^$9!#(B

$BHFMQE*$J%^%/%m!&%W%m%;%C%5$G$"$k(BGNU m4$B$K$O!"(B $B$+$D$F!"(B $B$^$@@5<0$J%P!<%8%g%s$,%j%j!<%9$5$l$k0JA0$K!"(B $BuBV$K$J$C$F$$$kB>$N%^%/%mDj5A$rm4$B%;%C%7%g%s$G$O!"(B 0000$B$KE83+$5$l$k%^%/%m(Bfoo$B$rDj5A$7$F$$$^$9!#(B $B$5$i$K!"(B m4$B$NAH$_9~$_%3%^%s%I(Bdefn$B$r;H$C$F!"(B $B%^%/%m(Bbar$B$KF10l$NDj5A$rM?$($F$$$^$9!#(B $B$H$3$m$,!"(B $B0zMQ$N3+;OJ8;zNs$r(B<QUOTE>$B$K!"(B $B0zMQ$N=*N;J8;zNs$r(B<UNQUOTE>$B$K$=$l$>$lJQ99$9$k$H!"(B $BA4$/F10l$Nbaz$B$rDj5A$7$h$&$H$7$F$b!"(B $B$&$^$/$$$+$J$$$N$G$9!#(B

$ cd gnu/m4
$ ./m4
define(foo,0000)

foo
0000
define(bar,defn(`foo'))

bar
0000
changequote(<QUOTE>,<UNQUOTE>)

define(baz,defn(<QUOTE>foo<UNQUOTE>))
baz
C-d
m4: End of input: 0: fatal error: EOF in string

$B$3$3$G(BGDB$B$r;H$C$F!"(B $B2?$,5/$3$C$F$$$k$N$+D4$Y$F$_$^$7$g$&!#(B

$ gdb m4
GDB is free software and you are welcome to distribute copies
 of it under certain conditions; type "show copying" to see
 the conditions.
There is absolutely no warranty for GDB; type "show warranty"
 for details.

GDB 5.0, Copyright 1999 Free Software Foundation, Inc...
(gdb)

GDB$B$O!"(B $BI,MW$J$H$-$KB>$N%7%s%\%k$r8+$D$1$k$N$K:GDc8BI,MW$H$J$k%7%s%\%k>pJs$7$+FI$_9~$_$^$;$s!#(B $B$=$N7k2L!"(B $B:G=i$N%W%m%s%W%H$,I=<($5$l$k$^$G$N;~4V$,6K$a$FC;$$$N$G$9!#(B $B$3$3$G!"(B $B=PNO>pJs$,$3$N%^%K%e%"%k$N;fI}$K<}$^$k$h$&$K$9$k$?$a$K!"(B GDB$B$KBP$7$FI=<(I}$rDL>o$h$j$b69$/$9$k$h$&;X<($r=P$7$F$_$^$7$g$&!#(B

(gdb) set width 70

m4$B$NAH$_9~$_%3%^%s%I$G$"$k(Bchangequote$B$,$I$N$h$&$KF0:n$9$k$N$+$rD4$Y$F$_$kI,MW$,$"$j$^$9!#(B $B%=!<%9$r8+$k$H!"(B $B4XO"$9$k%5%V%k!<%A%s$,(Bm4_changequote$B$G$"$k$3$H$,J,$+$j$^$9!#(B $B$=$3$G!"(B GDB$B$N(Bbreak$B%3%^%s%I$G%V%l%$%/%]%$%s%H$r@_Dj$7$F$_$^$9!#(B

(gdb) break m4_changequote
Breakpoint 1 at 0x62f4: file builtin.c, line 879.

run$B%3%^%s%I$r;H$C$F!"(B GDB$B$N4IM}2<$G(Bm4$B$rAv$i$;$^$9!#(B m4_changequote$B%5%V%k!<%A%s$KE~C#$9$k$^$G$O!"(B $B%W%m%0%i%`$ODL>o$I$*$j$NF0:n$r$7$^$9!#(B

(gdb) run
Starting program: /work/Editorial/gdb/gnu/m4/m4
define(foo,0000)

foo
0000

$B%V%l%$%/%]%$%s%H$G%W%m%0%i%`$rDd;_$5$;$k$?$a$K(Bchangequote$B$rm4$B$NpJs$rI=<($7$^$9!#(B

changequote(<QUOTE>,<UNQUOTE>)

Breakpoint 1, m4_changequote (argc=3, argv=0x33c70)
    at builtin.c:879
879         if (bad_argc(TOKEN_DATA_TEXT(argv[0]),argc,1,3))

$Bn$B!J(Bnext$B!K%3%^%s%I$r (gdb) n 882 set_quotes((argc >= 2) ? TOKEN_DATA_TEXT(argv[1])\ : nil,

set_quotes$B$H$$$&$N$O!"(B $B$$$o$/$"$j$2$J%5%V%k!<%A%s$G$9!#(B next$B%3%^%s%I$NBe$o$j$K(Bs$B!J(Bstep$B!K%3%^%s%I$r;H$&$3$H$G!"(B $B$3$N%5%V%k!<%A%s$NCf$KF~$k$3$H$,$G$-$^$9!#(B step$B%3%^%s%I$O!"(B $B$=$l$,(B$B$I$N(B$B%5%V%k!<%A%s$NCf$K$"$k$+$H$$$&$3$H$K$+$+$o$j$J$/!"(B $Bl9g!"(B $Bset_quotes$B$NCf$G$9$+$i!"(B $B$=$3$X0\F0$9$k$3$H$K$J$j$^$9!#(B

(gdb) s
set_quotes (lq=0x34c78 "<QUOTE>", rq=0x34c88 "<UNQUOTE>")
    at input.c:530
530         if (lquote != def_lquote)

m4$B$,$=$NCf$G8=:_Dd;_$7$F$$$k%5%V%k!<%A%s(B $B!J$*$h$S!"$=$N%5%V%k!<%A%s$X$N0z?t!K(B $B$,I=<($5$l$F$$$^$9!#(B $B$3$l$r%9%?%C%/!&%U%l!<%`I=<($H8F$S$^$9!#(B $B$=$l$O!"(B $B%9%?%C%/$N>uBV$rMWLs$7$?>pJs$rI=<($7$F$$$^$9!#(B backtrace$B%3%^%s%I(B $B!J$"$k$$$O!"(B bt$B$H>JN,$9$k$3$H$b$G$-$^$9!K(B $B$r;H$C$F!"(B $B8=:_!"(B $B%9%?%C%/A4BN$NCf$N$I$3$K$$$k$+$rCN$k$3$H$b$G$-$^$9!#(B backtrace$B%3%^%s%I$O!"(B $B8D!9$N%"%/%F%#%V$J%5%V%k!<%A%s$N%9%?%C%/!&%U%l!<%`$rI=<($7$^$9!#(B

(gdb) bt
#0  set_quotes (lq=0x34c78 "<QUOTE>", rq=0x34c88 "<UNQUOTE>")
    at input.c:530
#1  0x6344 in m4_changequote (argc=3, argv=0x33c70)
    at builtin.c:882
#2  0x8174 in expand_macro (sym=0x33320) at macro.c:242
#3  0x7a88 in expand_token (obs=0x0, t=209696, td=0xf7fffa30)
    at macro.c:71
#4  0x79dc in expand_input () at macro.c:40
#5  0x2930 in main (argc=0, argv=0xf7fffb20) at m4.c:195

$B`s'$B%3%^%s%I$r;H$$$^$9!#(B $BB3$/(B2$B2s$O!"(B xstrdup$B%5%V%k!<%A%s$NCf$KF~$C$F$7$^$&$N$rKI$0$?$a$K!"(B n$B%3%^%s%I$r;H$$$^$9!#(B

(gdb) s
0x3b5c  532         if (rquote != def_rquote)
(gdb) s
0x3b80  535         lquote = (lq == nil || *lq == '\0') ?  \
def_lquote : xstrdup(lq);
(gdb) n
536         rquote = (rq == nil || *rq == '\0') ? def_rquote\
 : xstrdup(rq);
(gdb) n
538         len_lquote = strlen(rquote);

$B:G8e$KI=<($5$l$?9T$O!">/$7L/$J46$8$,$7$^$9!#(B 2$B$D$NJQ?t(Blquote$B!"(B rquote$B$rD4$Y$F!"(B $BK\Ev$K$=$l$,!"(B $B?7$?$K;XDj$5$l$?0zMQ3+;OJ8;zNs!"(B $B0zMQ=*N;J8;zNs$G$"$k$+$I$&$+3NG'$9$k$3$H$,$G$-$^$9!#(B $BCM$rD4$Y$k$K$O(Bp$B!J(Bprint$B!K%3%^%s%I$r;HMQ$7$^$9!#(B

(gdb) p lquote
$1 = 0x35d40 "<QUOTE>"
(gdb) p rquote
$2 = 0x35d50 "<UNQUOTE>"

lquote$B$H(Brquote$B$O3N$+$K0zMQ3+;OJ8;zNs!"(B $B0zMQ=*N;J8;zNs$N$h$&$G$9!#(B $BA08e4X78$rD4$Y$k$K$O!"(B l$B!J(Blist$B!K%3%^%s%I$r;H$C$F!"(B $B8=:_Dd;_$7$F$$$k9T$rCf?4$K$=$NA08e(B10$B9T$rI=<($7$^$9!#(B

(gdb) l
533             xfree(rquote);
534
535         lquote = (lq == nil || *lq == '\0') ? def_lquote\
 : xstrdup (lq);
536         rquote = (rq == nil || *rq == '\0') ? def_rquote\
 : xstrdup (rq);
537
538         len_lquote = strlen(rquote);
539         len_rquote = strlen(lquote);
540     }
541
542     void

len_lquote$B$H(Blen_rquote$B$KCM$r@_Dj$7$F$$$k9T$r (gdb) n 539 len_rquote = strlen(lquote); (gdb) n 540 } (gdb) p len_lquote $3 = 9 (gdb) p len_rquote $4 = 7

len_lquote$B$H(Blen_rquote$B$,!"(B $B$=$l$>$l(Blquote$B$H(Brquote$B$ND9$5$G$"$k$H$9$k$H!"(B $B$3$3$KI=<($5$l$F$$$kCM$OL@$i$+$K8m$j$G$9!#(B p$B%3%^%s%I$r;H$C$F!"(B $B@5$7$$CM$r@_Dj$9$k$3$H$,$G$-$^$9!#(B p$B%3%^%s%I$K$h$C$FG$0U$N<0$NCM$rI=<($9$k$3$H$,$G$-$^$9$,!"(B $B$3$3$G$$$&!V<0!W$K$O!"(B $B%5%V%k!<%A%s$N8F$S=P$7$d!"(B $BCM$N3d$jEv$F$b4^$^$l$^$9!#(B

(gdb) p len_lquote=strlen(lquote)
$5 = 7
(gdb) p len_rquote=strlen(rquote)
$6 = 9

$B?7$7$$0zMQJ8;zNs$r%;%C%H$7$?>uBV$G!"(B m4$B$NAH$_9~$_%3%^%s%I(Bdefn$B$r;HMQ$7$h$&$H$9$k$HH/@8$9$kLdBj$r=$@5$9$k$K$O!"(B $B$3$l$@$1$G==J,$G$7$g$&$+(B? c$B!J(Bcontinue$B!K%3%^%s%I$r;H$($P!"(B m4$B$K=hM}$r7QB3$5$;$F!"(B $B (gdb) c Continuing. define(baz,defn(<QUOTE>foo<UNQUOTE>)) baz 0000

$B:#EY$O$&$^$/$$$-$^$7$?!#(B $B?7$?$K%;%C%H$5$l$?0zMQJ8;zNs$O!"(B $B%G%U%)%k%H$N0zMQJ8;zNs$HF1$8$h$&$K5!G=$7$^$7$?!#(B $BLdBj$N860x$O!"(B $B%W%m%0%i%`Fb$N(B2$B2U=j$N%?%$%W!&%_%9$G!"(B $BD9$5$N@_Dj$,@5$7$/9T$o$l$F$$$J$$$3$H$K$"$C$?$h$&$G$9!#(B EOF$B$rF~NO$7$F!"(B m4$B$r=*N;$5$;$^$7$g$&!#(B

C-d
Program exited normally.

`Program exited normally.'$B$H$$$&%a%C%;!<%8$O!"(B GDB$B$,=PNO$7$?$b$N$G!"(B m4$B$Nquit$B%3%^%s%I$G!"(B GDB$B%;%C%7%g%s$r=*N;$9$k$3$H$,$G$-$^$9!#(B

(gdb) quit


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  
Лучший частный хостинг