tool for memory leak detection ?

I work in qnx4 with Watcom compiler.
Does anybody know , or has used in the past, a tool for memory leak
detection ?
thanks in advance,
Yechiel

“david v” <davidv@elisra.com> wrote in message
news:a5288h$239$1@inn.qnx.com

I work in qnx4 with Watcom compiler.
Does anybody know , or has used in the past, a tool for memory leak
detection ?
thanks in advance,
Yechiel

Not so good but very easy way to check obvious memory leaks is "sin -P
" which shows Code/Data memory consumptions. If your
application is taking memory with good enough rate it’s displayed very well
:slight_smile:

// wbr

In times of need we use an old ANSI version MemCheck from
StratosWare(www.stratosware.com).

“Ian Zagorskih” <ianzag@mail.ru> wrote in message
news:a52h51$984$1@inn.qnx.com

“david v” <> davidv@elisra.com> > wrote in message
news:a5288h$239$> 1@inn.qnx.com> …
I work in qnx4 with Watcom compiler.
Does anybody know , or has used in the past, a tool for memory leak
detection ?
thanks in advance,
Yechiel


Not so good but very easy way to check obvious memory leaks is “sin -P
process name>” which shows Code/Data memory consumptions. If your
application is taking memory with good enough rate it’s displayed very
well
:slight_smile:

// wbr

“david v” <davidv@elisra.com> wrote in message
news:a5288h$239$1@inn.qnx.com

I work in qnx4 with Watcom compiler.
Does anybody know , or has used in the past, a tool for memory leak
detection ?
thanks in advance,
Yechiel


I use the function provided in the files I attached as replacement for

malloc,
they are extremely usefull to track memory leak (they won’t catch memory
lead
done by some C library)

  • Mario


    begin 666 mem.c
    M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O
    M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+PHO+PHO+R!-3T15
    M3$4Z"B\O"B\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O
    M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R*+R*
    M+R@)$ED.B0*+R*+R@)$QO9SH@) HO+PHO+R\O+R\O+R\O+R\O+R\O+R\O
    M+R*+R*“B\J(“LKT1A=&4@;&%S="!M;V1I9FEE9#H@,#4M2G5L+3$Y.3<@
    M
    B*“B\J"BHJ(”!4:&ES(&ES(&$@8V]P>7)I9VAT960@=V]R:R!W:&EC:”!I
    M<R!F=6YC=&EO;F%L;'D@:61E;G1I8V%L(‘1O(’=O<FL**BH@(&]R:6=I;F%L
    M;'D@<'5B;&ES:&5D(&EN($UI8W)O($-O<FYU8V]P:6$@;6%G87II;F4@&ES
    M<W5E(",U,BP@36%R8V@M07!R:6PL"BHJ(" Q.3DP
    2!A;F0@:7,@9G)E96QY
    M(&QI8V5N<V5D(&)Y('1H92!A=71H;W(L(%=A;'1E<B!”<FEG:‘0L(&9O<B!A
    M;GD@=7-E+@HJ+PH*+RI?(&UE;2YC(" @1G)I($IA;B R-B Q.3DP(" @36]D
    M:69I960@8GDZ(%=A;‘1E<B!"<FEG:‘0@B*+RH@)$AE861E<CH@+VAO;64O
    M<VAA<F4O=71I;"]20U,O;65M+F,L=B Q+C(@,3DY."\P-"\R-" Q,CHU-CHQ
    M."!M8VAA<F5S="!%>’ @;6-H87)E<W0@)" J+PHO
    B!-96UO<GD@;6%N86=E
    M;65N="!P86-K86=E(" @(" @(" @(" @(" @(" @(" J+PH*(VEN8VQU9&4@
    M(" @/’-T9&EO+F@^“B-I;F-L=61E(” @(#QS=&1L:6(N:#X*“B-I9FYD968@
    M345-7T@(VEN8VQU9&4@(" @(FUE;2YH(@HC96YD:68"B-I9FYD968@87-S
    M97)T"B-I;F-L=61E(” @(#QA<W-E<G0N:#X*(V5N9&EF"@HC:68@9&5F:6YE
    M9"A?35-#7U9%4BD*(VEN8VQU9&4@(" @/&1O<RYH/@HC96YD:68*"B-I;F-L
    M=61E(#QS=’)I;F<N:#X*“FEN=”!M96U?:6YI=&5D(#T@,#L@(" @(" @(" @
    M("\J("$](# @:68@:6YI=&EA;&EZ960@(" @(" @(" @(" @(“HO”@IS=&%T
    M:6,@:6YT(&UE;5]B96AA=FEO<B ]($U%35]!0D]25$U31SL*<W1A=&EC(&EN
    M=" HF9P2AV;VED2 ]("AI;G0@"HI*‘9O:60I4Y53$P[(" @("\J(&]U
    M=“UO9BUM96UO<GD@:&%N9&QE<B @(” @(“HO"G-T871I8R!I;G0@;65M7V-O
    M=6YT.R @(” @(" @("\J(",@;V8@86QL;V-S('1H870@:&%V96XG="!B965N
    M(&9R964G9" @(“HO"G-T871I8R!I;G0@;65M7W-C;W5N=#TP.R @(” @(" @
    M+RH@(R!O9B!S86QL;V-S('1H870@:&%V96XG="!B965N(&9R964G9" J+PIS
    M=&%T:6,@:6YT(&YE87(@;65M7V5X8V5P=&EO;BAV;VED
    3L@+RH@8V%L;&5D
    M(’=H96X@;W5T(&]F(&UE;6]R>2 J+PH*+RH@1&5T97)M:6YE(’=H97)E(‘1O
    M(’-E;F0@97)R;W(@;65S<V%G97,@B*(V1E9FEN92!F97)R(" @(" @<W1D
    M97)R"@HO
    BHJBHJBHJBHJBHJBHJBHJBHJBHJBHJB*“G9O:60@
    M;65M7W-E=&5X8V5P=&EO;B@@:6YT(&9L86<L(&EN=” HFAA;F1L97)?9G I
    M
    ’9O:60I(“D*>PH@(” @;65M7V)E:&%V:6]R(#T@9FQA9SL*(" @(&9P(#T@
    M*&UE;5]B96AA=FEO<B ]/2!-14U?0T%,3$902 _(&AA;F1L97)?9G @.B P
    M.PHC:68@9&5F:6YE9"A$14)51U]-14TI"B @("!A<W-E<G0H," /2!F;&%G
    M("8F(&9L86<@/#T@345-7U)%5%)9
    3L*(V5N9&EF"GT*“B\JBHJBHJBHJ
    M
    BHJBHJBHJBHJBHJ"B J(%1H:7,@:7,@8V%L;&5D(’=H96X@=V4G<F4@
    M;W5T(&]F(&UE;6]R>2X*(“H@4F5T=7)N<SH*(“H@(” @,3H@(” @=’)Y(&%G
    M86EN('1O(&%L;&]C871E('1H92!M96UO<GD*(“H@(” @,#H@(” @9VEV92!U
    M<"!A;F0@<F5T=7)N($Y53$P*(“HO”@IS=&%T:6,@:6YT(&YE87(@;65M7V5X
    M8V5P=&EO;BAV;VED0I[(" @:6YT(&)E:&%V:6]R.PH(" @(&)E:&%V:6]R
    M(#T@;65M7V)E:&%V:6]R.PH@(" @9F]R*#L[0H@(" @>PH@(" @("!S=VET
    M8V@@
    &)E:&%V:6]R0H@(" @("![“B @(” @(" @("!C87-E($U%35]!0D]2
    M5$U31SH
    (" @(" @(" @(" @9G!U=’,H(D9A=&%L(&5R<F]R.B!O=70@;V8@
    M;65M;W)Y7&XB+&9E<G(I.PH@(" @(" @(" @(" OB!&04Q,+51(4D]51T@@
    M
    B*(" @(" @(" @(&-A<V4@345-7T%“3U)4.@H@(” @(" @(" @("!E>&ET
    M*$58251?1D%)3%5212D[“B @(” @(" @(" @("\J($Y/5%)%04-(140@B*
    M(" @(" @(" @(&-A<V4@345-7T-!3$Q&4#H
    (" @(" @(" @(" @87-S97)T
    M*&9P3L(" @(" @(" @(" @8F5H879I;W(@/2 HF9P2@I.PH@(" @(" @
    M(" @("!B<F5A:SL*(" @(" @(" @(&-A<V4@345-7U)%5$Y53$PZ"B @(" @
    M(" @(" @(’)E=‘5R;B P.PH@(" @(" @(" @8V%S92!-14U?4D544EDZ"B @
    M(" @(" @(" @(’)E=‘5R;B Q.PH@(" @(" @(" @9&5F875L=#H)“B\J;&EN
    M=” M934P-B J+PH@(" @(" @(" @("!A<W-E<G0H,“D[“B\J;&EN=” K934P
    M-B J+PH@(” @("!]“B @(”!]"GT*"B\JBHJBHJBHJBHJBHJBHJBHJ
    M
    BHJBHJ+PH(VEF(&1E9FEN960H1$5"54=?345-0H(W5N9&5F(&UE;5]S
    M=’)D=7 “F-H87(@FUE;5]S=’)D=7 H8V]N<W0@8VAA<B J<RD>PH@(” @
    M("!R971U<FX@;65M7W-T<F1U<%]D96)U9RAS+%]?1DE,15]?+%]?3$E.15]?
    M
    3L*?0H8VAA<B J;65M7W-T<F1U<%]D96)U9RAC;VYS="!C:&%R("IS+&-H
    M87(@F9I;&4L(&EN="!L:6YE0I[“B @(” @(&-H87(@G ["@H@(" @("!P
    M(#T@<PH@(" @(" @(" @/R H8VAA<B J
    2!M96U?;6%L;&]C7V1E8G5G
    "AU
    M;G-I9VYE9"D@<W1R;&5N*’,I(“L@,2QF:6QE+&QI;F4I"B @(” @(" @(" Z
    M($Y53$P[“B @(” @(&EF("@@<R I(‘L*“0ER971U<FX@<” _(’-T2AP
    M+’,I(#H@<#L*“2 @?0H)(”!R971U<FX@3E5,3#L*?0HC96QS90IC:&%R(“IM
    M96U?<W1R9’5P*&-O;G-T(&-H87(@G,I"GL(” @(" @8VAA<B J<#L*“B @
    M(” @(’ @/2!S(#@&-H87(@BD@;65M7VUA;&QO8R@H=6YS:6=N960I(’-T
    M<FQE;BAS
    2 K(#$I(#H@3E5,3#L
    (" @(" @:68@"!S(“D@>PH@(” @(" @
    M(" @<F5T=7)N(’ @/R!S=’)C<'DH<"QS
    2 Z(’ [“B @(” @(‘T*"@D@(’)E
    M=‘5R;B!.54Q,.PH*?0H*(V5N9&EF("\J($1%0E5’7TU%32 J+PH,“B-I9F1E
    M9B!$14)51U]-14T*“G-T871I8R!L;VYG(&UE;5]M87AA;&QO8SL@(” @(”\J
    M(&UA>" C(&]F(&)Y=&5S(&%L;&]C871E9" @(" @(" @(“HO"G-T871I8R!L
    M;VYG(&UE;5]N=6UA;&QO8SL@(” @("\J(&-U<G)E;G0@(R!O9B!B>71E<R!A
    M;&QO8V%T960@(" @(" @(" @(“HO”@HC9&5F:6YE($)%1D]2159!3" P>#$R
    M,S0U-C<X(" OB!V86QU92!T;R!D971E8W0@=6YD97)R=6X@(" J+PHC9&5F
    M:6YE($%&5$525D%,(" P>#@W-C4T,S(Q(" O
    B!V86QU92!T;R!D971E8W0@
    M;W9E<G)U;B @(" J+PH*"B\J(%1H92!F;VQL;W=I;F<@<VAO=6QD(&)E(’-E
    M;&5C=&5D(‘1O(&=I=F4@;6%X:6UU;2!P<F]B86)I;&ET>2!T:&%T(" @("HO
    M"B\J(’!O:6YT97)S(&QO861E9"!W:71H(‘1H97-E(‘9A;‘5E<R!W:6QL(&-A
    M=7-E(&%N(&]B=FEO=7,@8W)A<V@N($]N(" @(“HO"B\J(%5N:7@@;6%C:&EN
    M97,L(&$@;&%R9V4@=F%L=64@=VEL;”!C875S92!A(’-E9VUE;G0@9F%U;‘0N
    M(" @(" @(“HO"B\J($U!3$Q/0U9!3”!I<R!T:&4@=F%L=64@=&@<V5T(&UA
    M;&QO8R=D(&1A=&$@=&\N(" @(" @(" @(" @(" @(“HO”@HC9&5F:6YE($)!
    M1%9!3" @(" @(" @(" P>#=!“B-D969I;F4@34%,3$]#5D%,(#!X144*“B\J
    M($1I<V%B;&4@;6%P<&EN9R!M86-R;W,@(” @(“HO"B-U;F1E9B @(” @(&UE
    M;5]M86QL;V,(W5N9&5F(" @(" @;65M7V-A;&QO8PHC=6YD968@(" @("!M
    M96U?<F5A;&QO8PHC=6YD968@(" @("!M96U?9G)E90H
    +RH@0W)E871E(&$@
    M;&ES=”!O9B!A;&P@86QL;V,G960@<&]I;G1E<G,L(’)E=&%I;FEN9R!I;F9O
    M(&%B;W5T(’=H97)E(" @B*+RH@96%C:"!A;&QO8R!C86UE(&9R;VTN(%1H
    M:7,@:7,@82!R96%L(&UE;6]R>2!A;F0@<W!E960@:&]G+"!B=70@=VAO(" @
    M
    B*+RH@8V%R97,@=VAE;B!Y;W4G=F4@9V]T(&]B<V-U<F4@<&]I;G1E<B!B
    M=6=S+B @(" @(" @(" @(" @(" @(" @B*“G-T<G5C=”!M: I[(’-T<G5C
    M="!D96)U9U]M96T@DUN97AT.R @(" OB!N97AT(&EN(&QI<W0@(" @(" @
    M(" @(" @(" J+PH@(’-T<G5C="!D96)U9U]M96T@DUP<F5V.R @(" OB!P
    M<F5V:6]U<R!V86QU92!I;B!L:7-T(" @(" J+PH@(&-H87(@DUF:6QE.R @
    M(" @(" @(" O
    B!F:6QE;F%M92!O9B!W:&5R92!A;&QO8V%T960@(" @(" @
    M(" @(" J+PH@(&EN="!-;&EN93L@(" @(" @(" @(" O
    B!L:6YE(&YU;6)E
    M<B!O9B!W:&5R92!A;&QO8V%T960@(" J+PH@(‘5N<VEG;F5D($UN8GET97,[
    M(" @(" OB!S:7IE(&]F('1H92!A;&QO8V%T:6]N(" @(" @(" @(" J+PH@
    M(&QO;F<@36)E9F]R979A;#L@(" @(" O
    B!D971E8W0@=6YD97)R=6X@;V8@
    M9&%T82 @(" @(" @(" J+PI](#L*"G-T871I8R!S=’)U8W0@9&5B=6=?;65M
    M"GL*(" @("!S=’)U8W0@;6@@;3L*(" @("!C:&%R(&1A=&%;,5T[(" @(" @
    M(" @(" OB!T:&4@9&%T82!A8W1U86QL>2!A;&QO8V%T960@(" @(" @(" @
    M(" J+PI](&UE;5]A;&QO8VQI<W0@/0I[“B @(‘L@("AS=’)U8W0@9&5B=6=?
    M;65M(“HI($Y53$PL"B @(” @(“AS=’)U8W0@9&5B=6=?;65M(“HI($Y53$PL
    M"B @(” @(”)N;VYA;64B+ H@(” @(" Q,3$Q,2P
    (" @(" @,“P*(” @(" @
    M0D5&3U)%5D%,“B @('TL"B @('LH8VAA<BE!1E1%4E9!3’T*?3L*“B\J($-O
    M;G9E<G0@9G)O;2!A(‘9O:60@G1O(&$@1$5"54=?345-(’-T<G5C="X@("HO
    M"B-D969I;F4@;65M7W!T<G1O9&PH<“D@(”@H<W1R=6-T(&1E8G5G7VUE;2 J
    M
    2 H*&-H87(@BEP("T@<VEZ96]F’-T<G5C=”!M:“DI0H@HOB!#;VYV
    M97)T(&9R;VT@82!$14)51U]-14T@<W1R=6-T('1O(&$@;65M7W!T<BX@(" @
    M(" J+PHC9&5F:6YE(&UE;5]D;'1O<'1R
    &1L2 H’9O:60@BD@)B@H9&PI
    M+3YD871A6S!=2D"B-D969I;F4@;F5X=" @(" @(" @(" @(&TN36YE>'0

    M(V1E9FEN92!P<F5V(” @(" @(" @(" @;2Y-<’)E=@HC9&5F:6YE(&9I;&4@
    M(" @(" @(" @("!M+DUF:6QE"B-D969I;F4@;&EN92 @(" @(" @(" @(&TN
    M36QI;F4*(V1E9FEN92!N8GET97,@(" @(" @(" @;2Y-;F)Y=&5S"B-D969I
    M;F4@8F5F;W)E=F%L(&TN36)E9F]R979A; H*+RHJBHJBHJBHJBHJBHJ
    M
    BHJBHJBHJBHJ"B J(%-E="!N97<@=F%L=64@;V8@9FEL92QL:6YE"B J
    M+PH
    =F]I9"!M96U?<V5T;F5W9FEL96QI;F4H=F]I9" J<‘1R+"!C:&%R(“IF
    M:6PL(&EN=”!L:6XI"GL*(" @(’-T<G5C="!D96)U9U]M96T@F1L.PH(" @
    M(&1L(#T@;65M7W!T<G1O9&PH<‘1R3L(" @(&1L+3YF:6QE(#T@9FEL.PH@
    M(" @9&PM/FQI;F4@/2!L:6X["GT*"B\JBHJBHJBHJBHJBHJBHJBHJ
    M
    BHJBHJ"B J(%!R:6YT(&]U="!S=’)U8W0@9&5B=6=?;65M+@H@B*"G-T
    M871I8R!V;VED(&YE87(@;65M7W!R:6YT9&PH<W1R=6-T(&1E8G5G7VUE;2 J
    M9&PI"GL
    (" @(" @9G!R:6YT9BAF97)R+")A;&QO8R=D(&9R;VT@9FEL92 G
    M)7,G(&QI;F4@)60@;F)Y=&5S(“5D(’!T<B!X)7!<;B(L"B @(” @(" @(" @
    M(&1L+3YF:6QE+&1L+3YL:6YE+&1L+3YN8GET97,L;65M7V1L=&]P=’(H9&PI
    M
    3L*?0H*+RHJBHJBHJBHJBHJBHJBHJBHJBHJBH("H@4’)I;G0@
    M;W5T(&9I;&4@86YD(&QI;F4@;G5M8F5R+@H@B*“G-T871I8R!V;VED(&YE
    M87(@;65M7V9I;&QI;B@@8VAA<B J9FEL+”!I;G0@;&EN
    0I[“B @(” @(&9P
    M<FEN=&8H9F5R<BPB1FEL92 G)7,G(&QI;F4@)61<;B(L9FEL+&QI;BD[“B @
    M(” @(&9F;‘5S:“AF97)R3L?0H*+RHJBHJBHJBHJBHJBHJBHJBHJ
    M
    BHJBH(“H@268@1$5"54=?345-(&ES(&YO=”!O;B!F;W(@<V]M92!M;V1U
    M;&5S+”!T:&5S92!R;W5T:6YE<R!W:6QL(&=E= H@B!C86QL960N"B J+PH
    M=F]I9" J;65M7V-A;&QO8R@@=6YS:6=N960@=2D*>PH@(" @("!R971U<FX@
    M;65M7V-A;&QO8U]D96)U9RAU+%]?1DE,15]?+%]?3$E.15]?3L?0H*=F]I
    M9" J;65M7VUA;&QO8RAU;G-I9VYE9"!U0I[“B @(” @(’)E='5R;B!M96U?
    M;6%L;&]C7V1E8G5G
    ’4L7U]&24Q%7U\L7U],24Y%7U\I.PI]"@IV;VED(“IM
    M96U?<F5A;&QO8R@@=F]I9” J<“P@=6YS:6=N960@=2D*>PH@(” @("!R971U
    M<FX@;65M7W)E86QL;V-?9&5B=6<H<“QU+%]?1DE,15]?+%]?3$E.15]?3L
    M?0H*=F]I9”!M96U?9G)E92@@=F]I9" J<“D*>PH@(” @("!M96U?9G)E95]D
    M96)U9RAP+%]?1DE,15]?+%]?3$E.15]?3L?2 @(" "@HOBHJBHJBHJ
    MBHJBHJBHJBHJBHJBHO"@IV;VED(&UE;5]F<F5E9G H(‘9O:60@G I
    M"GL
    (" @(" @;65M7V9R964H<“D[“GT*“B\JBHJBHJBHJBHJBHJBHJ
    MBHJ@H@B!$96)U9R!V97)S:6]N<R!O9B!M96U?8V%L;&]C"DL(&UE;5]F
    M<F5E*“D@86YD(&UE;5]R96%L;&]C*“DN"B J+PH*=F]I9” J;65M7VUA;&QO
    M8U]D96)U9R@@=6YS:6=N960@;BP@8VAA<B J9FEL+”!I;G0@;&EN0I[(" @
    M=F]I9" J<#L
    "B\O"7!R:6YT9B@B;6%L;&]C(“5D(“5D(“5D7&XB+”!N+”!F
    M:6PL(&QI;B I.PH@(” @<” ](&UE;5]C86QL;V-?9&5B=6<H;BQF:6PL;&EN
    M3L(” @(&EF(“AP0H@(" @("!M96US970H<"Q-04Q,3T-604PL;BD[“B @
    M(”!R971U<FX@<#L
    ?0H*=F]I9” J;65M7V-A;&QO8U]D96)U9R@@=6YS:6=N
    M960@;BP@8VAA<B J9FEL+”!I;G0@;&EN0I[“B @(”!S=’)U8W0@9&5B=6=?
    M;65M("ID;#L
    "@EM96U?:6YI="@I.PH*(" @(&1O"B @(" @(&1L(#T@’-T
    M<G5C="!D96)U9U]M96T@BD(" @(" @(" @(&-A;&QO8RAS:7IE;V8H
    F1L
    M2 K(&X@R!S:7IE;V8H049415)604PI("T@,2PQ3L(" @(’=H:6QE(“AD
    M;” ]/2!.54Q,(“8F(&UE;5]E>&-E<'1I;VXH2D[“B @(”!I9B H9&P@/3T@
    M3E5,3"D
    (” @(‘L*(VEF(# (" @(" @<’)I;G1F"));G-U9F9I8VEE;G0@
    M;65M;W)Y(&9O<B!A;&QO8R!O9B E9"!A=" B+&XI.PH@(" @("!M96U?9FEL
    M;&EN*&9I;“QL:6XI.PH@(” @("!P<FEN=&8H(DUA>"!A;&QO8V%T960@=V%S
    M.B E;&1<;B(L;65M7VUA>&%L;&]C3L(V5N9&EF"B @(" @(’)E=‘5R;B!.
    M54Q,.PH@(" @?0H@(" @9&PM/F9I;&4@/2!F:6P[“B @(”!D;“T^;&EN92 ]
    M(&QI;CL*(” @(&1L+3YN8GET97,@/2!N.PH@(" @9&PM/F)E9F]R979A;" ]
    M($)%1D]2159!3#L*(" @(“HH=6YS:6=N960@;&]N9R J2 F&1L+3YD871A
    M6VY=2 ]($%&5$525D%,.PH(” @("\J($%D9"!D;"!T;R!S=&%R="!O9B!A
    M;&QO8V%T:6]N(&QI<W0@B*(" @(&1L+3YN97AT(#T@;65M7V%L;&]C;&ES
    M=“YN97AT.PH@(” @9&PM/G!R978@/2 F;65M7V%L;&]C;&ES=#L
    (" @(&UE
    M;5]A;&QO8VQI<W0N;F5X=" ](&1L.PH@(" @:68@&1L+3YN97AT("$]($Y5
    M3$PI"B @(" @(&1L+3YN97AT+3YP<F5V(#T@9&P["@H@(" @;65M7V-O=6YT
    M
    RL[“B @(”!M96U?;G5M86QL;V,@ST@&QO;F<I;CL*(" @(&EF(“AM96U?
    M;G5M86QL;V,@/B!M96U?;6%X86QL;V,I"B @(” @(&UE;5]M87AA;&QO8R ]
    M(&UE;5]N=6UA;&QO8SL*(" @(’)E=‘5R;B!M96U?9&QT;W!T<BAD;“D[“GT*
    M"G9O:60@;65M7V9R965?9&5B=6<H(‘9O:60@G!T<BP@8VAA<B J9FEL+"!I
    M;G0@;&EN
    0I[“B @(” @(’-T<G5C=”!D96)U9U]M96T@F1L.PH(” @(" @
    M:68@’!T<B ]/2!.54Q,0H@(" @(" @(" @("!R971U<FX[“B-I9B P"B @
    M(” @(‘L@(" @(&9P<FEN=&8H9F5R<BPB1G)E96EN9R!.54Q,(’!O:6YT97(@
    M870@(BD[“B @(” @(" @(" @(&=O=&@97)R.PH@(" @("!]“B-E;F1I9@H@
    M(” @("!I9B H;65M7V-O=6YT(#P](# I"B @(" @('L@(" @(&9P<FEN=&8H
    M9F5R<BPB36]R92!F<F5E<R!T:&%N(&%L;&]C<R!A=" B
    3L
    (" @(" @(" @
    M(" @9V]T;R!E<G([“B @(” @(‘T*(" @(" @9&P@/2!M96U?<‘1R=&]D;"AP
    M=’(I.PH)("!I9B H(’!T<B ]/2 H(‘9O:60@BDP>&5E965E965E("D@>PH)
    M"0EF<’)I;G1F
    "!F97)R+" B26YV86QI9"!P;VEN=&5R(“AE;7!T>2!M96UO
    M<GDI(BD[”@D)“6=O=&@97)R.PH)“7T*“0D*(” @(” @:68@&1L+3YB969O
    M<F5V86P@(3T@0D5&3U)%5D%,0H@(" @("![“B @(” @(" @(" @(&9P<FEN
    M=&8H9F5R<BPB4&]I;G1E<B!X)7 @=6YD97)R=6Y<;B(L<'1R
    3L
    (” @(" @
    M(" @(" @9V]T;R!E<G(R.PH@(" @("!]“B @(” @(&EF("@J*‘5N<VEG;F5D
    M(“HI(“9D;“T^9&%T85MD;“T^;F)Y=&5S72 A/2!!1E1%4E9!3"D*(” @(” @
    M>PH@(” @(” @(" @("!F<’)I;G1F*&9E<G(L(E!O:6YT97(@>“5P(&]V97)R
    M=6Y<;B(L<'1R3L(” @(" @(" @(" @9V]T;R!E<G(R.PH@(" @("!]“B @
    M(” @(&UE;5]N=6UA;&QO8R M/2 H;&]N9RED;“T^;F)Y=&5S.PH@(” @("!I
    M9B H;65M7VYU;6%L;&]C(#P@,“D*(” @(" @>R @(" @9G!R:6YT9BAF97)R
    M+")E<G)O<CH@;65M7VYU;6%L;&]C(#T@)6QD+"!D;“T^;F)Y=&5S(#T@)61<
    M;B(L"B @(” @(" @(" @(" @(" @(&UE;5]N=6UA;&QO8RQD;“T^;F)Y=&5S
    M3L(” @(" @(" @(" @9V]T;R!E<G(R.PH@(" @("!]"@H@(" @(" OB!2
    M96UO=F4@9&P@9G)O;2!L:6YK960@;&ES=" J+PH@(" @("!I9B H9&PM/G!R
    M978I"B @(" @(" @(" @(&1L+3YP<F5V+3YN97AT(#T@9&PM/FYE>'0[“B @
    M(” @(&EF("AD;"T^;F5X="D
    (" @(" @(" @(" @9&PM/FYE>‘0M/G!R978@
    M/2!D;"T^<’)E=CL*“B @(” @("\J(%-T;VUP(&]N(‘1H92!F<F5E9"!S=&]R
    M86=E(‘1O(&AE;’ @9&5T96-T(’)E9F5R96YC97,@(" @(“HO"B @(” @("\J
    M(&%F=&5R(‘1H92!S=&]R86=E(’=A<R!F<F5E9"X@(" @(" @(" @(" @(" @
    M(" @(" @(“HO"B @(” @(&UE;7-E="@H=F]I9" J2!D;"Q"041604PL<VEZ
    M96]F
    "ID;“D@R!D;"T^;F)Y=&5S3L*(” @(" @;65M7V-O=6YT+2T["@H@
    M(" @(" OB!3;VUE(&-O;7!I;&5R<R!C86X@9&5T96-T(&5R<F]R<R!I;B!T
    M:&4@:&5A<“X@(” @(" J+PH@(" @("!F<F5E
    "AV;VED(“HI(&1L3L(” @
    M(" @<F5T=7)N.PH97)R,CH(" @(" @;65M7W!R:6YT9&PH9&PI.PIE<G(Z
    M"B @(" @(&9P<FEN=&8H9F5R<BPB9G)E92=D(&9R;VT@(BD[“B @(” @(&UE
    M;5]F:6QL:6XH9FEL+&QI;BD[“B\J;&EN=” M934P-B J+PH@(" @("!A<W-E
    M<G0H,“D[“B\J;&EN=” K934P-B J+PH@(” @(" OB!.3U1214%#2$5$("HO
    M"GT
    "B\JBHJBHJBHJBHJBHJBHJ"B J($1E8G5G(‘9E<G-I;VX@;V8@
    M;65M7W)E86QL;V,H2X(“HO”@IV;VED(“IM96U?<F5A;&QO8U]D96)U9R@@
    M=F]I9” J;VQD<“P@=6YS:6=N960@;BP@8VAA<B J9FEL+”!I;G0@;&EN0I[
    M(" @=F]I9" J<#L
    (" @(’-T<G5C="!D96)U9U]M96T@F1L.PH(" @(&EF
    M(“AN(#T](# I"B @(”![(&UE;5]F<F5E7V1E8G5G*&]L9’ L9FEL+&QI;BD[
    M"B @(" @(’ @/2!.54Q,.PH@(" @?0H@(" @96QS92!I9B H;VQD<" ]/2!.
    M54Q,0H@(" @("!P(#T@;65M7VUA;&QO8U]D96)U9RAN+&9I;“QL:6XI.PH@
    M(” @96QS90H@(" @>PH@(" @("!P(#T@;65M7VUA;&QO8U]D96)U9RAN+&9I
    M;“QL:6XI.PH@(” @("!I9B H<" A/2!.54Q,0H@(" @(""B @(" @(" @M("!D;"T;V1L&]L9’ I.PH@(" @(" @(" @:68@
    &1L+3YN
    M8GET97,@/"!N0H@(" @(" @(" @("!N(#T@9&PM/FYB>71E<SL(" @(" @
    M(" @(&UE;6-P>2AP+&]L9’ L;BD[“B @(” @(" @("!M96U?9G)E95]D96)U
    M9RAO;&1P+&9I;“QL:6XI.PH@(” @("!]“B @(”!]“B @(”!R971U<FX@<#L*
    M?0H*+RHJBHJBHJBHJBHJBHJBHJBHJBHJB*"G9O:60@;65M7V-H
    M96-K
    ’9O:60I"GL@("!R96=I<W1E<B!S=’)U8W0@9&5B=6=?;65M(“ID;#L*
    M"B @(”!F;W(@&1L(#T@;65M7V%L;&]C;&ES=“YN97AT.R!D;” A/2!.54Q,
    M.R!D;" ](&1L+3YN97AT
    0H@(" @("!M96U?8VAE8VMP=’(H;65M7V1L=&]P
    M=’(H9&PI3L?0H*+RHJBHJBHJBHJBHJBHJBHJBHJBHJB*"G9O
    M:60@;65M7V-H96-K<'1R
    ’9O:60@G I"GL@("!S=’)U8W0@9&5B=6=?;65M
    M("ID;#L
    "B @("!F;W(@&1L(#T@;65M7V%L;&]C;&ES=“YN97AT.R!D;” A
    M/2!.54Q,.R!D;" ](&1L+3YN97AT
    0H@(" @>PH@(" @("!I9B H<" ^/2 H
    M=F]I9" J2 F&1L+3YD871A6S!=2 F)@H@(" @(" @(" @<" ("AV;VED
    M("HI
    "AC:&%R(“HI9&P@R!S:7IE;V8H<W1R=6-T(&1E8G5G7VUE;2DM,2 K
    M(&1L+3YN8GET97,I
    0H@(” @(" @(" @9V]T;R!,3L*(" @(‘T*+RIL:6YT
    M("UE-3 V(“HO"B @(”!A<W-E<G0H,"D"B\J;&EN=" K934P-B J+PH*3#$Z
    M"B @("!D;"
    T;V1L*’ I.PH@(" @:68@&1L+3YB969O<F5V
    M86P@(3T@0D5&3U)%5D%,0H@(" @>PH@(" @(" @(" @9G!R:6YT9BAF97)R
    M+")0;VEN=&5R(’@E<"!U;F1E<G)U;EQN(BQP
    3L
    (" @(" @(" @(&=O=&@
    M97)R,CL*(" @('T*(" @(&EF("@J*‘5N<VEG;F5D(&QO;F<@BD@)F1L+3YD
    M871A6V1L+3YN8GET97-=("$]($%&5$525D%,0H@(" @>PH@(" @(" @(" @
    M9G!R:6YT9BAF97)R+")0;VEN=&5R(’@E<"!O=F5R<G5N7&XB+’ I.PH@(" @
    M(" @(" @9V]T;R!E<G(R.PH@(" @?0H@(" @<F5T=7)N.PH
    97)R,CH
    (" @
    M(&UE;5]P<FEN=&1L*&1L3L+RIL:6YT(“UE-3 V(“HO"B @(”!A<W-E<G0H
    M,“D[“B\J;&EN=” K934P-B J+PI]”@HC96QS90H*+RHJBHJBHJBHJBHJ
    MBHJBHJBHJBHJB*“G9O:60@FUE;5]M86QL;V,H('5N<VEG;F5D(&YU
    M;6)Y=&5S
    0I[(” @("!V;VED("IP.PH
    (” @(" @:68@&YU;6)Y=&5S(#T]
    M(# I"B @(" @(" @(" @(’)E='5R;B!.54Q,.PH@(" @("!W:&EL92 H,2D

    M(" @(" @>PH@(" @(" @(" @("!P(#T@;6%L;&]C*&YU;6)Y=&5S3L(" @
    M(" @(" @(" @:68@’ @/3T@3E5,3"D(" @(" @(" @(" @>R @(" @:68@
    M*&UE;5]E>&-E<‘1I;VXH2D(" @(" @(" @(" @(" @(" @(" @(" @8V]N
    M=&EN=64[“B @(” @(" @(" @(‘T*(" @(" @(" @(" @96QS90H@(" @(" @
    M(" @(" @(" @("!M96U?8V]U;G0KSL(" @(" @(" @(" @8G)E86L[“B @
    M(” @(‘T*(" @(" @+RIP<FEN=&8H(FUA;&QO8R@E9"D@/2!X)6QX7&XB+&YU
    M;6)Y=&5S+’ I.RHO"B @(" @(’)E=‘5R;B!P.PI]"@HOBHJBHJBHJBHJ
    MBHJBHJBHJBHJBHJ+PH=F]I9" J;65M7V-A;&QO8R@@=6YS:6=N960@
    M;G5M8GET97,I"GL@(" @(‘9O:60@G ["@H@(" @("!I9B H;G5M8GET97,@
    M/3T@,"D
    (" @(" @(" @(" @<F5T=7)N($Y53$P[“B @(” @(’=H:6QE("@Q
    M0H@(" @("![“B @(” @(" @(" @(’ @/2!C86QL;V,H;G5M8GET97,L,2D[
    M"B @(" @(" @(" @(&EF(“AP(#T]($Y53$PI"B @(” @(" @(" @('L@(" @
    M(&EF("AM96U?97AC97!T:6]N
    "DI"B @(" @(" @(" @(" @(" @(" @(" @
    M(&-O;G1I;G5E.PH@(" @(" @(" @("!]“B @(” @(" @(" @(&5L<V4*(" @
    M(" @(" @(" @(" @(" @;65M7V-O=6YTRL[“B @(” @(" @(" @(&)R96%K
    M.PH@(" @("!]“B @(” @("\J<’)I;G1F
    ")C86QL;V,H)60I(#T@>“5L>%QN
    M(BQN=6UB>71E<RQP3LJ+PH@(" @("!R971U<FX@<#L?0H*+RHJBHJBHJ
    MBHJBHJBHJBHJBHJBHJB*“G9O:60@FUE;5]R96%L;&]C”!V;VED
    M(“IO;&1M96U?<'1R+”!U;G-I9VYE9"!N97=N=6UB>71E<RD
    >R @(‘9O:60@
    MG ["@H@(" @:68@&]L9&UE;5]P=’(@/3T@3E5,3"D*(” @(" @<" ](&UE
    M;5]M86QL;V,H;F5W;G5M8GET97,I.PH@(" @96QS92!I9B H;F5W;G5M8GET
    M97,@/3T@,“D*(” @(‘L@;65M7V9R964H;VQD;65M7W!T<BD"B @(" @(’ @
    M/2!.54Q,.PH@(" @?0H@(" @96QS90H@(" @>PH@(" @("!D;PH@(" @(" @
    M(" @<"
    E86QL;V,H;VQD;65M7W!T<BQN97=N=6UB>71E<RD"B @(" @
    M(’=H:6QE("AP(#T
    B8@;65M7V5X8V5P=&EO;B@I3L(" @(‘T*
    M(" @("\J<’)I;G1F*")R96%L;&]C*’@E;’@L)60I(#T@>“5L>%QN(BQO;&1M
    M96U?<‘1R+&YE=VYU;6)Y=&5S+’ I.RHO"B @(”!R971U<FX@<#L*?0H*+RHJ
    MBHJBHJBHJBHJBHJBHJBHJBHJB*“G9O:60@;65M7V9R964H('9O
    M:60@G!T<BD>PH@(” @+RIP<FEN=&8H(F9R964H>"5L>"E<;B(L<'1R
    3LJ
    M+PH@(" @:68@’!T<B A/2!.54Q,0H@(" @>R!A<W-E<G0H;65M7V-O=6YT
    M(#X@,“D[“B @(” @(&UE;5]C;W5N=“TM.PH@(” @(”!F<F5E
    ’!T<BD[“B @
    M(”!]"GT
    "B-E;F1I9B OB!$14)51U]-14T@B*"B\JBHJBHJBHJBHJ
    MBHJBHJBHJBHJBHO"@IV;VED(&UE;5]I;FET’9O:60I"GL*(" @(" @
    M:68@&UE;5]I;FET960@/3T@,"D(" @(" @>R @(" @;65M7V-O=6YT(#T@
    M,#L*(VEF(&1E9FEN960H1$5"54=?345-2 (" @(" @(" @(" @;65M7VYU
    M;6%L;&]C(#T@,#L
    (" @(" @(" @(" @;65M7VUA>&%L;&]C(#T@,#L
    (" @
    M(" @(" @(" @;65M7V%L;&]C;&ES=“YN97AT(#T@3E5,3#L*(V5N9&EF"B @
    M(” @(" @(" @(&UE;5]I;FET960KSL"B @(" @(‘T*“GT*“B\JBHJBHJ
    MBHJBHJBHJBHJBHJBHJBHO"@IV;VED(&UE;5]T97)M’9O:60I"GL*
    M”@D*(” @(" @:68@&UE;5]I;FET960I"B @(" @('L(VEF(&1E9FEN960H
    M1$5"54=?345-2 (" @(" @(" @(" @<F5G:7-T97(@<W1R=6-T(&1E8G5G
    M7VUE;2 J9&P["@H@(" @(" @(" @("!F;W(@
    &1L(#T@;65M7V%L;&]C;&ES
    M="YN97AT.R!D;#L@9&P@/2!D;"T^;F5X="D
    (" @(" @(" @(" @>R @(" @
    M9G!R:6YT9BAF97)R+")5;F9R965D(’!O:6YT97(Z("(I.PH@(" @(" @(" @
    M(" @(" @("!M96U?<’)I;G1D;“AD;“D[“B @(” @(” @(” @(‘T*(VEF(# *
    M(" @(" @(" @(" @9G!R:6YT9BAF97)R+")-87@@86UO=6YT(&5V97(@86QL
    M;V-A=&5D(#T](“5L9”!B>71E<UQN(BP*(" @(" @(" @(" @(" @(" @;65M
    M7VUA>&%L;&]C3L(V5N9&EF"B-E;’-E"B @(" @(" @(" @(&EF(“AM96U?
    M8V]U;G0I"B @(” @(" @(" @(" @(" @(&9P<FEN=&8H9F5R<BPB)60@=6YF
    M<F5E9"!I=&5M<UQN(BQM96U?8V]U;G0I.PH@(" @(" @(" @("!I9B H;65M
    M7W-C;W5N=“D*(” @(" @(" @(" @(" @(" @9G!R:6YT9BAF97)R+"(E9"!U
    M;F9R965D(’,@:71E;7-<;B(L;65M7W-C;W5N=“D[“B-E;F1I9B OB!$14)5
    M1U]-14T@B*(" @(" @(" @(" @87-S97)T&UE;5]C;W5N=" ]/2 P(“8F
    M(&UE;5]S8V]U;G0@/3T@,“D[“B @(” @(” @(” @(&UE;5]I;FET960@/2 P
    M.PH@(" @("!]"@HO+PEF<’)I;G1F
    &9E<G(L(”)M96UO<GD@8VAE8VL@8V]M
    M<&QE=&5D7&XB3L?0H*(W5N9&5F(&YE>‘0*(W5N9&5F(’!R978*(W5N9&5F
    M(&9I;&4*(W5N9&5F(&QI;F4*(W5N9&5F(&YB>71E<PHC=6YD968@8F5F;W)E
    $=F%L”@``
    `
    end

begin 666 mem.h
M+RH@RLK1&%T92!L87-T(&UO9&EF:65D.B P-2U=6PM,3DY-R J+PH*+RH*
MBH@(%1H:7,@:7,@82!C;W!Y<FEG:‘1E9"!W;W)K(’=H:6-H(&ES(&9U;F-T
M:6]N86QL>2!I9&5N=&EC86P@=&@=V]R:PHJ
B @;W)I9VEN86QL>2!P=6)L
M:7-H960@:6X@36EC<F@0V]R;G5C;W!I82!M86=A>FEN92 H:7-S=64@(S4R
M+"!-87)C:“U!<’)I;“P**BH@(#$Y.3 I(&%N9”!I<R!F<F5E;‘D@;&EC96YS
M960@8GD@=&AE(&%U=&AO<BP@5V%L=&5R($)R:6=H=“P@9F]R(&%N>2!U<V4N
M"BHO”@HOE@;65M+F@@("!&<FD@36%Y(#(V(#$Y.#D@("!-;V1I9FEE9"!B
M>3H@5V%L=&5R($)R:6=H=" J+PHO
B D2&5A9&5R.B O4’)O:F5C=’,O3512
M,#<O1&5V46YX4&AA<V4R+V1C=6EN=&5L+W5T:6PO:6YC;'5D92]M96TN:” V
M(" @(" Q,R\P.2\Y.2 Q.C W<"!-8VAA<F5S=" D(“HO"B\J($-O<'ER:6=H
M=” Q.3@V+3$Y.#@@8GD@3F]R=&AW97-T(%-O9G1W87)E(" @(“HO"B\J($%L
M;”!2:6=H=’,@4F5S97)V960@(" @(" @(" @(" @(" @(" @(“HO"B\J(%=R
M:71T96X@8GD@5V%L=&5R($)R:6=H=” @(" @(" @(" @(" @(“HO”@HC:69N
M9&5F($U%35](“B-D969I;F4@345-7T@@(” @(#$"B-I9F1E9B!?7V-P;'5S
M<&QU’1E<FX@(D,B('L
(V5N9&EF"@HC9&5F:6YE($1%0E5’7TU%30DQ
M"@HO*@H@B!-96UO<GD@;6%N86=E;65N="!R;W5T:6YE<RX(“H*(“H@0V]M
M<&EL:6YG.@H@@H@B @(" C9&5F:6YE($1%0E5’(#$@=VAE;B!C;VUP:6QI
M;F<@=&@96YA8FQE(&5X=&5N9&5D(&1E8G5G9VEN9PH@B @("!F96%T=7)E
M<RX
("H
(“H@1F5A='5R97,@86QW87ES(&5N86)L960Z"B J"B J(” @(&@
M;65M7VEN:70H
2!I<R!C86QL960@870@<W1A<G1U<“P@86YD(&UE;5]T97)M
M*“D@870*(“H@(” @(”!C;&]S92P@=VAI8V@@8VAE8VMS(‘1O(’-E92!T:&%T
M('1H92!N=6UB97(@;V8@86QL;V,G<R!I<PH@B @(" @('1H92!S86UE(&%S
M('1H92!N=6UB97(@;V8@9G)E92=S+@H@B @("!O($)E:&%V:6]R(&]N(&]U
M="UO9BUM96UO<GD@8V]N9&ET:6]N<R!C86X@8F4@8V]N=’)O;&QE9 H@B @
M(" @('9I82!M96U?<V5T97AC97!T:6]N
"DN"B J"B J($5X=&5N9&5D(&1E
M8G5G9VEN9R!F96%T=7)E<SH
("H
(“H@(” @;R!%;F%B;&5U9”!B>2 C9&5F
M:6YE($1%0E5’7TU%32 Q(’=H96X@8V]M<&EL:6YG+@H@B @("!O($-H96-K
M(‘9A;‘5E<R!A<F4@:6YS97)T960@8F5F;W)E(&%N9"!A9G1E<B!T:&4@86QL
M;V,G960@9&%T80H@B @(" @(‘1O(&1E=&5C="!P;VEN=&5R(‘5N9&5R<G5N
M<R!A;F0@;W9E<G)U;G,N"B J(" @(&@1G)E92=D(’!O:6YT97)S(&%R92!C
M:&5C:V5D(&%G86EN<W0@86QL;V,G960@<&]I;G1E<G,N"B J(" @(&@1G)E
M92=D(’-T;W)A9V4@:7,@8VQE87)E9"!T;R!S;6]K92!O=70@<F5F97)E;F-E
M<R!T;R!F<F5E)V0@9&%T82X
(“H@(” @;R!296%L;&]C)V0@<&]I;G1E<G,@
M87)E(&%L=V%Y<R!C:&%N9V5D+"!A;F0@=&AE(’!R979I;W5S(’-T;W)A9V4

M(“H@(” @(”!I<R!C;&5A<F5D+”!T;R!D971E8W0@97)R;VYE;W5S(&1E<&5N
M9&5N8VEE<R!O;B!T:&4@<’)E=FEO=7,(“H@(” @("!P;VEN=&5R+@H@B @
M("!O(%1H92!R;W5T:6YE(&UE;5]C:&5C:W!T<B@I(&ES(’!R;W9I9&5D('1O
M(&-H96-K(&%N(&%L;&]C)V5D"B J(" @(" @<&]I;G1E<BX
(“HO”@HO
BHJ
MBHJBHJBHJBHJBHJBHJ($=,3T)!3"!605))04),15,@BHJBHJBHJ
M
BHJBHJBHJBHJBHJB*“F5X=&5R;B!I;G0@;65M7VEN:71E9#L@(” @
M(" @("\J("$](# @:68@;65M(’!A8VMA9V4@:7,@:6YI=&EA;&EZ960N(" @
M(“HO"B @(” @(" @(" @(" @(" @(" @(" @("\J(%1E<W0@=&AI<R!I9B!Y
M;W4@:&%V92!O=&AE<B!P86-K86=E<R @(“HO"B @(” @(" @(" @(" @(" @
M(" @(" @("\J('1H870@9&5P96YD(&]N(&UE;2!B96EN9R!I;FET:6%L:7IE
M9" @(“HO”@P
+RHJBHJBHJBHJBHJBHJBHJB!054),24,@1E5.0U1)
M3TY3("HJ
BHJBHJBHJBHJBHJBHJBHJBHO"@HOBHJBHJBHJBHJ
M
BHJBHJBHJBHJBHJBHJBHJBH(“H@4V5T(&)E:&%V:6]R(’=H96X@
M;65M(’)U;G,@;W5T(&]F(&UE;6]R>2X*(“H@26YP=70Z"B J(” @(&9L86<@
M/2 @(” @($U%35]!0D]25$U31SH@(" @($%B;W)T(‘1H92!P<F]G<F%M(’=I
M=&@@=&AE(&UE<W-A9V4*(“H@(” @(" @(" @(" @(" @(" @(" @)T9A=&%L
M(&5R<F]R.B!O=70@;V8@;65M;W)Y)R!S96YT"B J(" @(" @(" @(" @(" @
M(" @(" @(‘1O(’-T9&]U=“X@5&AI<R!I<R!T:&4@9&5F875L=”!B96AA=FEO
M<BX*(“H@(” @(" @(" @345-7T%“3U)4.B @06)O<G0@=&AE(’!R;V=R86T@
M=VET:”!N;R!M97-S86=E+@H@B @(" @(" @("!-14U?4D543E5,3#H@(" @
M("!2971U<FX@3E5,3"!B86-K('1O(&-A;&QE<BX
(“H@(” @(" @(" @345-
M7T-!3$Q&4#H@0V%L;"!A<’!L:6-A=&EO;BUS<&5C:69I960@9G5N8W1I;VXN
M"B J(" @(" @(" @(" @(" @(" @(" @(&9P(&UU<W0@8F4@<W5P<&QI960N
M"B J(" @(&9P(" @(" @(" @(" @(" @($]P=&EO;F%L(&9U;F-T:6]N(’!O
M:6YT97(N(%-U<’!L:65D(&EF"B J(" @(" @(" @(" @(" @(" @(" @(“AF
M;&%G(#T]($U%35]#04Q,1E I+B!4:&ES(&9U;F-T:6]N(’)E='5R;G,(“H@
M(” @(" @(" @(" @(" @(" @(" @345-7UA86%A8+"!I;F1I8V%T:6YG(’=H
M870@;65M(’-H;W5L9"!D;R!N97AT+@H@B @(" @(" @(" @(" @(" @(" @
M("!4:&4@9G5N8W1I;VX@8V]U;&0@9&@=&AI;F=S(&QI:V4@<W=A< H@B @
M(" @(" @(" @(" @(" @(" @("!D871A(&]U="!T;R!D:7-K('1O(&9R964@
M=7 @;6]R92!M96UO<GDN"B J(" @(&9P(&-O=6QD(&%L<V@<F5T=7)N.@H@
M
B @(" @(" @("!-14U?4D544EDZ("!4<GD@86=A:6X@=&@86QL;V-A=&4@
M=&AE(’-P86-E+B!"90H@B @(" @(" @(" @(" @(" @(" @("!C87)E9G5L
M(&YO="!T;R!G;R!I;G1O(&%N(&EN9FEN:71E(&QO;W N"B J+PH
(VEF(&1E
M9FEN960H7U]C<&QU<W!L=7,I("8F(%]?8W!L=7-P;'5S"F5N=6T@345-7T4@
M>R!-14U?04)/4E1-4T<L($U%35]!0D]25"P@345-7U)%5$Y53$PL($U%35]#
M04Q,1E L($U%35]2151262!].PIV;VED(&UE;5]S971E>&-E<'1I;VX@
&5N
M=6T@345-7T4L(&EN=" H
BDH=F]I9"DI.PHC96QS90HC9&5F:6YE($U%35]!
M0D]25$U31R @(” P"B-D969I;F4@345-7T%“3U)4(#$(V1E9FEN92!-14U?
M4D543E5,3" @(" @,@HC9&5F:6YE($U%35]#04Q,1E @(" @(" S"B-D969I
M;F4@345-7U)%5%)9(#0
=F]I9”!M96U?<V5T97AC97!T:6]N(“AI;G0L(&EN
M=”@J2AV;VED2D[“B-E;F1I9@H*”@IV;VED(&UE;5]I;FET(“AV;VED(“D[
M”@HOBHJBHJBHJBHJBHJBHJBHJBHJBHJ"B J(%1E<FUI;F%T92!M
M96UO<GD@:&%N9&QE<BX@57-E9G5L(&9O<B!C:&5C:VEN9R!F;W(@97)R;W)S
M+@H@B!5<V4Z"B J(" @(‘9O:60@;65M7W1E<FTH=F]I9"D["B J($]U=’!U
M=#H
(“H@(” @;65M7VEN:71E9" ](# (“HO”@IV;VED(&UE;5]T97)M("AV
M;VED
2 ["@HO
B!4:&4@9F]L;&]W:6YG(’-T=69F(&9O<FUS('1H92!I;7!L
M96UE;G1A=&EO;B!R871H97(@=&AA;B!T:&4*(“H@9&5F:6YI=&EO;BP@<V@
M:6=N;W)E(&ET+@H@B*"B-I9B!D969I;F5D$1%0E5’7TU%32D@(” @(” @
M+RH@:68@8W)E871I;F<@9&5B=6<@=F5R<VEO;B @B*“F-H87(@FUE;5]S
M=’)D=7!?9&5B=6<@(“AC;VYS=”!C:&%R("HL8VAA<B J+&EN="D["G9O:60@
M
FUE;5]C86QL;V-?9&5B=6<@(“AS:7IE7W0L8VAA<B J+”!I;G0@3L=F]I
M9” J;65M7VUA;&QO8U]D96)U9R @
’-I>F5?=“QC:&%R(“HL:6YT3L=F]I
M9” J;65M7W)E86QL;V-?9&5B=6<@'9O:60@BQS:7IE7W0L(&-H87(@BQI
M;G0I.PIV;VED("!M96U?9G)E95]D96)U9R @(" H=F]I9" J+&-H87(@BQI
M;G0I.PIV;VED("!M96U?9G)E969P(" H=F]I9" J
3L
"G9O:60@;65M7W-E
M=&YE=V9I;&5L:6YE("AV;VED(“HL8VAA<B J+&EN=“D[”@IV;VED(&UE;5]C
M:&5C:W!T<B H=F]I9” J<'1R
3L
=F]I9”!M96U?8VAE8VLH=F]I9"D["@HO
MFQI;G0@+7-A=F4@+64V-3(@B*"B-D969I;F4@;65M7W-T<F1U<"AP2 @
M(&UE;5]S=’)D=7!?9&5B=6<H
’ I+%]?1DE,15]?+%]?3$E.15]?0HC9&5F
M:6YE(&UE;5]M86QL;V,H=2D@("!M96U?;6%L;&]C7V1E8G5G
"AU2Q?7T9)
M3$5?7RQ?7TQ)3D5?7RD
(V1E9FEN92!M96U?8V%L;&]C*‘4I(" @;65M7V-A
M;&QO8U]D96)U9R@H=2DL7U]&24Q%7U\L7U],24Y%7U\I"B-D969I;F4@;65M
M7W)E86QL;V,H<“QU2 @(" @(&UE;5]R96%L;&]C7V1E8G5G"AP2PH=2DL
M7U]&24Q%7U\L7U],24Y%7U\I"B-D969I;F4@;65M7V9R964H<“D@(” @(&UE
M;5]F<F5E7V1E8G5G
"AP2Q?7T9)3$5?7RQ?7TQ)3D5?7RD"B\J;&EN=” M
M<F5S=&]R92HO"@HC96QS90H*+RHJBHJBHJBHJBHJBHJBHJBHJBHJ
MBH("H@06QL;V-A=&4@<W!A8V4@9F]R(’-T<FEN9RP@8V]P>2!S=’)I;F<@
M:6YT;R!I=“P@86YD"B J(’)E='5R;B!P;VEN=&5R('1O(‘1H92!N97<@<W1R
M:6YG+@H@B!4:&ES(’)O=71I;F4@9&]E<VXG="!R96%L;‘D@8F5L;VYG(&AE
M<F4L(&)U="!I="!I<R!U<V5D(’-O(&]F=&5N"B J('1H870@22!G879E('5P
M(&%N9"!P=70@:70@:&5R92X
("H@57-E.@H@B @("!C:&%R("IM96U?<W1R
M9’5P
&-O;G-T(&-H87(@G,I.PH@B!2971U<FYS.@H@B @("!P;VEN=&5R
M(‘1O(&-O<&EE9"!S=’)I;F<@:68@<W5C8V5S<V9U;"X
(“H@(” @96QS92!R
M971U<FYS($Y53$P@
&EF($U%35]2151.54Q,0H@B*"F-H87(@FUE;5]S
M=’)D=7 @
&-O;G-T(&-H87(@BD["@HOBHJ
BHJ
BHJ
BHJBHJBHJBHJ
M
BHJBH("H@1G5N8W1I;VX@<V@=V4@8V%N(&AA=F4@82!P;VEN=&5R(‘1O
M(&9U;F-T:6]N(&UE;5]F<F5E*"DN"B J(%1H:7,@:7,@;F5E9&5D(’-I;F-E
M(&UE;5]F<F5E(&ES(’-O;65T:6UE<R!D969I;F5D(&%S(&$@;6%C<F\L"B J
M(&%N9”!T:&5N('1H92!P<F5P<F]C97-S;W(@<V-R97=S('5P+@H@B!4:&4@
M<&]I;G1E<B!T;R!M96U?9G)E92@I(&ES('5S960@9G)E<75E;G1L>2!W:71H
M(‘1H92!L:7-T(’!A8VMA9V4N"B J(%5S93H
(“H@(” @=F]I9"!M96U?9G)E
M969P*‘9O:60@G I.PH@B*"B\JBHJBHJBHJBHJBHJBHJBHJBHJ
MBH(“H@0VAE8VL@9F]R(&5R<F]R<RX@5&AI<R!R;W5T:6YE(&1O97,@82!C
M;VYS:7-T96YC>2!C:&5C:R!O;B!T:&4*(“H@<W1O<F%G92!A;&QO8V%T;W(L
M(&QO;VMI;F<@9F]R(&-O<G)U<'1E9”!D871A+B!)=”!S:&]U;&0@8F4@8V%L
M;&5D"B J(’=H96X@=&AE(&%P<&QI8V%T:6]N(&AA<R!#4%4@8WEC;&5S(‘1O
M(&)U<FXN"B J(%5S93H*(“H@(” @=F]I9"!M96U?8VAE8VLH=F]I9"D[“B J
M+PH*=F]I9”!M96U?8VAE8VL@'9O:60@3L"B\JBHJBHJBHJBHJBHJ
MBHJBHJBHJBH*(“H@0VAE8VL@<'1R(‘1O(’-E92!I9B!I=”!I<R!I;B!T
M:&4@<F%N9V4@;V8@86QL;V-A=&5D(&1A=&$N"B J($-A=7-E(&%S<V5R=&EO
M;B!F86EL=7)E(&EF(&ET(&ES;B=T+@H@B*"@HOBHJBHJBHJBHJBHJ
MBHJBHJBHJBHJ"B J($%L;&]C871E(&%N9"!R971U<FX@82!P;VEN=&5R
M(‘1O(&YU;6)Y=&5S(&]F(’-T;W)A9V4N"B J(%5S93H*(“H@(” @=F]I9" J
M;65M7VUA;&QO8RAU;G-I9VYE9"!N=6UB>71E<RD[“B J(” @(‘9O:60@FUE
M;5]C86QL;V,H=6YS:6=N960@;G5M8GET97,I.R!A;&QO8V%T960@;65M;W)Y
M(&ES(&-L96%R960
(“H@26YP=70Z"B J(” @(&YU;6)Y=&5S(" @($YU;6)E
M<B!O9B!B>71E<R!T;R!A;&QO8V%T90H@B!2971U<FYS.@H@B @("!I9B H
M;G5M8GET97,@/B P
0H@B @(" @(" @("!P;VEN=&5R('1O(&%L;&]C871E
M9"!D871A+"!.54Q,(&EF(&]U="!O9B!M96UO<GD
(“H@(” @96QS90H@B @
M(" @(" @("!R971U<FX@3E5,3 H@B*"G9O:60@FUE;5]M86QL;V,@'5N
M<VEG;F5D
3L
=F]I9" J;65M7V-A;&QO8R H=6YS:6=N960I.PH
+RHJBHJ
M
BHJBHJBHJBHJBHJBHJBHJBHJ"B J(%)E86QL;V-A=&4@;65M;W)Y
M+@H@B!5<V4Z"B J(" @('9O:60@FUE;5]R96%L;&]C’9O:60@G!T<BQU
M;G-I9VYE9"!N=6UB>71E<RD["B J+PH
=F]I9" J;65M7W)E86QL;V,@
'9O
M:60@BQU;G-I9VYE9"D["@HOBHJ
BHJBHJBHJBHJBHJBHJBHJBHJ
M
BH*(“H@1G)E92!M96UO<GD@86QL;V-A=&5D(&)Y(&UE;5]M86QL;V,H2P@
M;65M7V-A;&QO8R@I(&]R(&UE;5]R96%L;&]C
"DN"B J(%5S93H*(“H@(” @
M=F]I9”!M96U?9G)E92AV;VED("IP=’(I.PH@B*"G9O:60@;65M7V9R964@
M
’9O:60@BD["@HOBHJBHJBHJBHJBHJBHJBHJBHJBHJ"B J($EN
M:71I86QI>F4@;65M;W)Y(&AA;F1L97(N"B J(%5S93H*(“H@(” @=F]I9"!M
M96U?:6YI="AV;VED3L(“H@3W5T<'5T.@H@*B @(”!M96U?:6YI=&5D(#T@
M,0H@B*“B-D969I;F4@;65M7V9R965F<” @(" @(&UE;5]F<F5E"B-D969I
M;F4@;65M7V-H96-K<'1R
’ I"@HC96YD:68@+RH@1$5"54<@B*"B-I9F1E
L9B!?7V-P;'5S<&QU<PI]"B-E;F1I9@H
(V5N9&EF("\J($U%35]((“HO”@H
end

david v wrote:

I work in qnx4 with Watcom compiler.
Does anybody know , or has used in the past, a tool for memory leak
detection ?
thanks in advance,
Yechiel

You could try dmalloc http://dmalloc.com