home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1272 < prev    next >
SHell self-extracting ARchive  |  1990-12-28  |  5.9 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: 1272

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail text default
99% file C source, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 67 65 | 6f 66 66 40 74 6f 6c 65 |From: ge|off@tole|
|00000010| 72 61 6e 74 2e 63 6f 6d | 20 28 47 65 6f 66 66 72 |rant.com| (Geoffr|
|00000020| 65 79 20 4c 65 61 63 68 | 29 0a 4e 65 77 73 67 72 |ey Leach|).Newsgr|
|00000030| 6f 75 70 73 3a 20 61 6c | 74 2e 73 6f 75 72 63 65 |oups: al|t.source|
|00000040| 73 2c 63 6f 6d 70 2e 6c | 61 6e 67 2e 63 0a 53 75 |s,comp.l|ang.c.Su|
|00000050| 62 6a 65 63 74 3a 20 53 | 6f 6d 65 20 68 65 6c 70 |bject: S|ome help|
|00000060| 20 77 69 74 68 20 6d 61 | 6c 6c 6f 63 20 70 6f 69 | with ma|lloc poi|
|00000070| 6e 74 65 72 20 70 72 6f | 62 6c 65 6d 73 0a 4d 65 |nter pro|blems.Me|
|00000080| 73 73 61 67 65 2d 49 44 | 3a 20 3c 31 39 39 30 4d |ssage-ID|: <1990M|
|00000090| 61 79 34 2e 32 30 32 35 | 31 35 2e 32 31 38 32 34 |ay4.2025|15.21824|
|000000a0| 40 74 6f 6c 65 72 61 6e | 74 2e 63 6f 6d 3e 0a 44 |@toleran|t.com>.D|
|000000b0| 61 74 65 3a 20 34 20 4d | 61 79 20 39 30 20 32 30 |ate: 4 M|ay 90 20|
|000000c0| 3a 32 35 3a 31 35 20 47 | 4d 54 0a 0a 48 65 72 65 |:25:15 G|MT..Here|
|000000d0| 27 73 20 61 20 75 73 65 | 66 75 6c 20 6c 69 74 74 |'s a use|ful litt|
|000000e0| 6c 65 20 68 61 63 6b 20 | 74 6f 20 68 65 6c 70 20 |le hack |to help |
|000000f0| 79 6f 75 20 74 72 61 63 | 6b 20 64 6f 77 6e 20 74 |you trac|k down t|
|00000100| 68 61 74 20 6e 61 73 74 | 79 20 6c 69 74 74 6c 65 |hat nast|y little|
|00000110| 0a 6d 61 6c 6c 6f 63 20 | 70 6f 69 6e 74 65 72 20 |.malloc |pointer |
|00000120| 70 72 6f 62 6c 65 6d 2e | 20 20 49 66 20 69 74 20 |problem.| If it |
|00000130| 73 65 65 6d 73 20 6f 76 | 65 72 2d 65 6c 61 62 6f |seems ov|er-elabo|
|00000140| 72 61 74 65 2c 20 69 74 | 20 6d 69 67 68 74 20 68 |rate, it| might h|
|00000150| 65 6c 70 0a 74 6f 20 6b | 6e 6f 77 20 74 68 61 74 |elp.to k|now that|
|00000160| 20 6d 79 20 70 72 6f 62 | 6c 65 6d 20 77 61 73 20 | my prob|lem was |
|00000170| 77 69 74 68 20 61 6e 20 | 58 20 61 70 70 6c 69 63 |with an |X applic|
|00000180| 61 74 69 6f 6e 2e 20 20 | 58 20 74 6f 6f 6c 6b 69 |ation. |X toolki|
|00000190| 74 73 0a 6d 61 6c 6c 6f | 63 20 6c 69 6b 65 20 74 |ts.mallo|c like t|
|000001a0| 68 65 72 65 20 77 61 73 | 20 6e 6f 20 74 6f 6d 6f |here was| no tomo|
|000001b0| 72 72 6f 77 2e 0a 0a 57 | 68 61 74 20 66 6f 6c 6c |rrow...W|hat foll|
|000001c0| 6f 77 73 20 69 73 20 61 | 20 73 68 61 72 20 66 69 |ows is a| shar fi|
|000001d0| 6c 65 2e 20 20 43 75 74 | 20 61 74 20 74 68 65 20 |le. Cut| at the |
|000001e0| 6c 69 6e 65 20 61 6e 64 | 20 66 65 65 64 20 74 6f |line and| feed to|
|000001f0| 20 2f 62 69 6e 2f 73 68 | 0a 2d 2d 2d 2d 2d 2d 2d | /bin/sh|.-------|
|00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0a 23 21 20 2f |--------|---.#! /|
|00000240| 62 69 6e 2f 73 68 0a 23 | 20 54 68 69 73 20 69 73 |bin/sh.#| This is|
|00000250| 20 61 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 | a shell| archive|
|00000260| 2e 20 20 52 65 6d 6f 76 | 65 20 61 6e 79 74 68 69 |. Remov|e anythi|
|00000270| 6e 67 20 62 65 66 6f 72 | 65 20 74 68 69 73 20 6c |ng befor|e this l|
|00000280| 69 6e 65 2c 20 74 68 65 | 6e 20 75 6e 70 61 63 6b |ine, the|n unpack|
|00000290| 0a 23 20 69 74 20 62 79 | 20 73 61 76 69 6e 67 20 |.# it by| saving |
|000002a0| 69 74 20 69 6e 74 6f 20 | 61 20 66 69 6c 65 20 61 |it into |a file a|
|000002b0| 6e 64 20 74 79 70 69 6e | 67 20 22 73 68 20 66 69 |nd typin|g "sh fi|
|000002c0| 6c 65 22 2e 20 20 54 6f | 20 6f 76 65 72 77 72 69 |le". To| overwri|
|000002d0| 74 65 20 65 78 69 73 74 | 69 6e 67 0a 23 20 66 69 |te exist|ing.# fi|
|000002e0| 6c 65 73 2c 20 74 79 70 | 65 20 22 73 68 20 66 69 |les, typ|e "sh fi|
|000002f0| 6c 65 20 2d 63 22 2e 20 | 20 59 6f 75 20 63 61 6e |le -c". | You can|
|00000300| 20 61 6c 73 6f 20 66 65 | 65 64 20 74 68 69 73 20 | also fe|ed this |
|00000310| 61 73 20 73 74 61 6e 64 | 61 72 64 20 69 6e 70 75 |as stand|ard inpu|
|00000320| 74 20 76 69 61 0a 23 20 | 75 6e 73 68 61 72 2c 20 |t via.# |unshar, |
|00000330| 6f 72 20 62 79 20 74 79 | 70 69 6e 67 20 22 73 68 |or by ty|ping "sh|
|00000340| 20 3c 66 69 6c 65 22 2c | 20 65 2e 67 2e 2e 20 20 | <file",| e.g.. |
|00000350| 49 66 20 74 68 69 73 20 | 61 72 63 68 69 76 65 20 |If this |archive |
|00000360| 69 73 20 63 6f 6d 70 6c | 65 74 65 2c 20 79 6f 75 |is compl|ete, you|
|00000370| 0a 23 20 77 69 6c 6c 20 | 73 65 65 20 74 68 65 20 |.# will |see the |
|00000380| 66 6f 6c 6c 6f 77 69 6e | 67 20 6d 65 73 73 61 67 |followin|g messag|
|00000390| 65 20 61 74 20 74 68 65 | 20 65 6e 64 3a 0a 23 09 |e at the| end:.#.|
|000003a0| 09 22 45 6e 64 20 6f 66 | 20 73 68 65 6c 6c 20 61 |."End of| shell a|
|000003b0| 72 63 68 69 76 65 2e 22 | 0a 23 20 43 6f 6e 74 65 |rchive."|.# Conte|
|000003c0| 6e 74 73 3a 20 20 52 45 | 41 44 4d 45 5f 54 52 41 |nts: RE|ADME_TRA|
|000003d0| 43 4b 20 6d 61 6c 6c 6f | 63 5f 74 72 61 63 6b 2e |CK mallo|c_track.|
|000003e0| 63 20 74 72 61 63 6b 5f | 72 65 70 6f 72 74 2e 63 |c track_|report.c|
|000003f0| 0a 23 20 57 72 61 70 70 | 65 64 20 62 79 20 67 65 |.# Wrapp|ed by ge|
|00000400| 6f 66 66 40 79 61 73 63 | 20 6f 6e 20 46 72 69 20 |off@yasc| on Fri |
|00000410| 4d 61 79 20 20 34 20 30 | 39 3a 30 32 3a 31 33 20 |May 4 0|9:02:13 |
|00000420| 31 39 39 30 0a 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |1990.PAT|H=/bin:/|
|00000430| 75 73 72 2f 62 69 6e 3a | 2f 75 73 72 2f 75 63 62 |usr/bin:|/usr/ucb|
|00000440| 20 3b 20 65 78 70 6f 72 | 74 20 50 41 54 48 0a 69 | ; expor|t PATH.i|
|00000450| 66 20 74 65 73 74 20 2d | 66 20 27 52 45 41 44 4d |f test -|f 'READM|
|00000460| 45 5f 54 52 41 43 4b 27 | 20 2d 61 20 22 24 7b 31 |E_TRACK'| -a "${1|
|00000470| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|00000480| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|00000490| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|000004a0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|000004b0| 22 27 52 45 41 44 4d 45 | 5f 54 52 41 43 4b 27 5c |"'README|_TRACK'\|
|000004c0| 22 0a 65 6c 73 65 0a 65 | 63 68 6f 20 73 68 61 72 |".else.e|cho shar|
|000004d0| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 27 |: Extrac|ting \"'|
|000004e0| 52 45 41 44 4d 45 5f 54 | 52 41 43 4b 27 5c 22 20 |README_T|RACK'\" |
|000004f0| 5c 28 32 30 31 33 20 63 | 68 61 72 61 63 74 65 72 |\(2013 c|haracter|
|00000500| 73 5c 29 0a 73 65 64 20 | 22 73 2f 5e 58 2f 2f 22 |s\).sed |"s/^X//"|
|00000510| 20 3e 27 52 45 41 44 4d | 45 5f 54 52 41 43 4b 27 | >'READM|E_TRACK'|
|00000520| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00000530| 0a 58 48 65 72 65 27 73 | 20 61 20 75 73 65 66 75 |.XHere's| a usefu|
|00000540| 6c 20 6c 69 74 74 6c 65 | 20 68 61 63 6b 20 74 6f |l little| hack to|
|00000550| 20 68 65 6c 70 20 79 6f | 75 20 74 72 61 63 6b 20 | help yo|u track |
|00000560| 64 6f 77 6e 20 74 68 61 | 74 20 6e 61 73 74 79 20 |down tha|t nasty |
|00000570| 6c 69 74 74 6c 65 0a 58 | 6d 61 6c 6c 6f 63 20 70 |little.X|malloc p|
|00000580| 6f 69 6e 74 65 72 20 70 | 72 6f 62 6c 65 6d 2e 20 |ointer p|roblem. |
|00000590| 20 49 66 20 74 68 69 73 | 20 73 65 65 6d 73 20 6f | If this| seems o|
|000005a0| 76 65 72 2d 65 6c 61 62 | 6f 72 61 74 65 2c 20 69 |ver-elab|orate, i|
|000005b0| 74 20 6d 69 67 68 74 20 | 68 65 6c 70 0a 58 74 6f |t might |help.Xto|
|000005c0| 20 6b 6e 6f 77 20 74 68 | 61 74 20 6d 79 20 70 72 | know th|at my pr|
|000005d0| 6f 62 6c 65 6d 20 77 61 | 73 20 77 69 74 68 20 61 |oblem wa|s with a|
|000005e0| 6e 20 58 20 61 70 70 6c | 69 63 61 74 69 6f 6e 2e |n X appl|ication.|
|000005f0| 20 20 58 20 74 6f 6f 6c | 6b 69 74 73 0a 58 6d 61 | X tool|kits.Xma|
|00000600| 6c 6c 6f 63 20 6c 69 6b | 65 20 74 68 65 72 65 20 |lloc lik|e there |
|00000610| 77 61 73 20 6e 6f 20 74 | 6f 6d 6f 72 72 6f 77 2e |was no t|omorrow.|
|00000620| 0a 58 0a 58 59 6f 75 20 | 63 61 6e 20 75 73 65 20 |.X.XYou |can use |
|00000630| 74 68 69 73 20 77 69 74 | 68 6f 75 74 20 73 6f 75 |this wit|hout sou|
|00000640| 72 63 65 20 74 6f 20 6d | 61 6c 6c 6f 63 20 62 79 |rce to m|alloc by|
|00000650| 20 64 6f 69 6e 67 20 61 | 20 6c 69 74 74 6c 65 20 | doing a| little |
|00000660| 63 72 65 61 74 69 76 65 | 0a 58 72 65 2d 6e 61 6d |creative|.Xre-nam|
|00000670| 69 6e 67 2c 20 62 75 74 | 20 69 74 73 20 65 61 73 |ing, but| its eas|
|00000680| 69 65 72 20 69 66 20 79 | 6f 75 20 68 61 76 65 20 |ier if y|ou have |
|00000690| 6d 61 6c 6c 6f 63 20 73 | 6f 75 72 63 65 2e 20 20 |malloc s|ource. |
|000006a0| 41 20 63 6f 75 70 6c 65 | 20 6f 66 20 0a 58 67 6f |A couple| of .Xgo|
|000006b0| 6f 64 20 64 65 62 75 67 | 67 69 6e 67 20 6d 61 6c |od debug|ging mal|
|000006c0| 6c 6f 63 73 20 68 61 76 | 65 20 62 65 65 6e 20 70 |locs hav|e been p|
|000006d0| 6f 73 74 65 64 20 74 6f | 20 74 68 65 20 6e 65 74 |osted to| the net|
|000006e0| 20 72 65 63 65 6e 74 6c | 79 2e 0a 58 0a 58 48 65 | recentl|y..X.XHe|
|000006f0| 72 65 27 73 20 68 6f 77 | 20 6d 61 6c 6c 6f 63 5f |re's how| malloc_|
|00000700| 74 72 61 63 6b 20 77 6f | 72 6b 73 2e 0a 58 0a 58 |track wo|rks..X.X|
|00000710| 50 61 74 63 68 20 79 6f | 75 72 20 6d 61 6c 6c 6f |Patch yo|ur mallo|
|00000720| 63 2c 20 66 72 65 65 20 | 61 6e 64 20 72 65 61 6c |c, free |and real|
|00000730| 6c 6f 63 20 72 6f 75 74 | 69 6e 65 73 20 69 6e 20 |loc rout|ines in |
|00000740| 74 68 65 20 61 70 70 72 | 6f 70 72 69 61 74 65 20 |the appr|opriate |
|00000750| 70 6c 61 63 65 73 0a 58 | 77 69 74 68 20 63 61 6c |places.X|with cal|
|00000760| 6c 73 20 74 6f 20 6d 61 | 6c 6c 6f 63 5f 74 72 61 |ls to ma|lloc_tra|
|00000770| 63 6b 2e 20 20 54 68 65 | 20 66 69 72 73 74 20 61 |ck. The| first a|
|00000780| 72 67 75 6d 65 6e 74 20 | 77 69 6c 6c 20 62 65 20 |rgument |will be |
|00000790| 2d 31 2c 20 2d 32 2c 20 | 2e 2e 2e 0a 58 61 63 63 |-1, -2, |....Xacc|
|000007a0| 6f 72 64 69 6e 67 20 74 | 6f 20 68 6f 77 20 74 68 |ording t|o how th|
|000007b0| 65 20 74 61 67 73 20 61 | 72 72 61 79 20 69 6e 20 |e tags a|rray in |
|000007c0| 74 72 61 63 6b 5f 72 65 | 70 6f 72 74 20 69 73 20 |track_re|port is |
|000007d0| 73 65 74 20 75 70 2e 20 | 20 4d 69 6e 65 20 69 73 |set up. | Mine is|
|000007e0| 20 73 65 74 0a 58 75 70 | 20 77 69 74 68 20 74 77 | set.Xup| with tw|
|000007f0| 6f 20 70 6f 69 6e 74 73 | 20 66 6f 72 20 72 65 61 |o points| for rea|
|00000800| 6c 6c 6f 63 2c 20 62 65 | 63 61 75 73 65 20 6f 66 |lloc, be|cause of|
|00000810| 20 74 68 65 20 77 61 79 | 20 74 68 65 20 6f 6e 65 | the way| the one|
|00000820| 20 49 20 77 61 73 20 77 | 6f 72 6b 69 6e 67 20 0a | I was w|orking .|
|00000830| 58 77 69 74 68 20 77 61 | 73 20 73 65 74 20 75 70 |Xwith wa|s set up|
|00000840| 2e 0a 58 0a 58 59 6f 75 | 20 6e 65 65 64 20 61 20 |..X.XYou| need a |
|00000850| 73 70 65 63 69 61 6c 20 | 76 61 6c 75 65 20 28 2d |special |value (-|
|00000860| 35 20 68 65 72 65 29 20 | 66 6f 72 20 66 6c 61 67 |5 here) |for flag|
|00000870| 67 69 6e 67 20 74 68 65 | 20 74 72 61 63 6b 20 76 |ging the| track v|
|00000880| 61 6c 75 65 20 66 6f 72 | 0a 58 74 72 61 63 6b 5f |alue for|.Xtrack_|
|00000890| 72 65 70 6f 72 74 2e 0a | 58 0a 58 4f 6e 63 65 20 |report..|X.XOnce |
|000008a0| 79 6f 75 27 76 65 20 73 | 65 74 20 75 70 20 79 6f |you've s|et up yo|
|000008b0| 75 72 20 6c 69 62 72 61 | 72 79 20 72 6f 75 74 69 |ur libra|ry routi|
|000008c0| 6e 65 73 2c 20 79 6f 75 | 20 70 61 74 63 68 20 79 |nes, you| patch y|
|000008d0| 6f 75 72 20 63 6f 64 65 | 20 69 6e 20 61 70 70 72 |our code| in appr|
|000008e0| 6f 70 72 69 61 74 65 0a | 58 70 6c 61 63 65 73 20 |opriate.|Xplaces |
|000008f0| 77 69 74 68 20 63 61 6c | 6c 73 20 74 6f 20 6d 61 |with cal|ls to ma|
|00000900| 6c 6c 6f 63 5f 74 72 61 | 63 6b 2e 20 20 54 68 65 |lloc_tra|ck. The|
|00000910| 20 66 69 72 73 74 20 61 | 72 67 75 6d 65 6e 74 20 | first a|rgument |
|00000920| 69 73 20 61 20 6e 6f 6e | 2d 6e 65 67 61 74 69 76 |is a non|-negativ|
|00000930| 65 0a 58 69 6e 74 65 67 | 65 72 20 74 68 61 74 20 |e.Xinteg|er that |
|00000940| 6d 61 72 6b 73 20 77 68 | 65 72 65 20 79 6f 75 27 |marks wh|ere you'|
|00000950| 72 65 20 74 72 61 63 6b | 69 6e 67 2c 20 74 68 65 |re track|ing, the|
|00000960| 20 73 65 63 6f 6e 64 20 | 69 73 20 74 68 65 20 76 | second |is the v|
|00000970| 61 6c 75 65 20 74 68 61 | 74 20 67 65 74 73 0a 58 |alue tha|t gets.X|
|00000980| 70 75 74 20 69 6e 20 74 | 68 65 20 72 65 70 6f 72 |put in t|he repor|
|00000990| 74 2e 20 20 54 6f 20 6a | 75 73 74 20 72 65 70 6f |t. To j|ust repo|
|000009a0| 72 74 20 70 6f 73 69 74 | 69 6f 6e 2c 20 75 73 65 |rt posit|ion, use|
|000009b0| 20 30 2e 0a 58 0a 58 4e | 6f 77 20 79 6f 75 27 72 | 0..X.XN|ow you'r|
|000009c0| 65 20 72 65 61 64 79 20 | 74 6f 20 67 6f 2e 20 20 |e ready |to go. |
|000009d0| 41 74 20 61 6e 20 61 70 | 70 72 6f 70 72 69 61 74 |At an ap|propriat|
|000009e0| 65 20 70 6f 69 6e 74 20 | 69 6e 20 79 6f 75 72 20 |e point |in your |
|000009f0| 70 72 6f 67 72 61 6d 27 | 73 20 65 78 65 63 75 74 |program'|s execut|
|00000a00| 69 6f 6e 2c 0a 58 73 65 | 74 20 6d 61 6c 6c 6f 63 |ion,.Xse|t malloc|
|00000a10| 5f 74 72 61 63 6b 5f 65 | 6e 61 62 6c 65 20 74 6f |_track_e|nable to|
|00000a20| 20 31 2e 20 20 54 68 69 | 73 20 6f 70 65 6e 73 20 | 1. Thi|s opens |
|00000a30| 74 68 65 20 66 69 6c 65 | 20 69 6e 20 79 6f 75 72 |the file| in your|
|00000a40| 20 63 77 64 20 61 6e 64 | 20 73 74 61 72 74 73 0a | cwd and| starts.|
|00000a50| 58 74 68 65 20 77 72 69 | 74 69 6e 67 20 6f 66 20 |Xthe wri|ting of |
|00000a60| 3c 74 61 67 2c 20 76 61 | 6c 75 65 3e 20 69 6e 74 |<tag, va|lue> int|
|00000a70| 65 67 65 72 20 70 61 69 | 72 73 2e 20 20 57 68 65 |eger pai|rs. Whe|
|00000a80| 6e 20 79 6f 75 20 6b 6e | 6f 77 20 77 68 61 74 20 |n you kn|ow what |
|00000a90| 74 68 65 20 70 6f 69 6e | 74 65 72 0a 58 61 64 64 |the poin|ter.Xadd|
|00000aa0| 72 65 73 73 20 74 68 61 | 74 20 69 73 20 63 61 75 |ress tha|t is cau|
|00000ab0| 73 69 6e 67 20 79 6f 75 | 20 70 72 6f 62 6c 65 6d |sing you| problem|
|00000ac0| 73 20 69 73 2c 20 61 73 | 73 69 67 6e 20 74 68 69 |s is, as|sign thi|
|00000ad0| 73 20 76 61 6c 75 65 20 | 74 6f 0a 58 6d 61 6c 6c |s value |to.Xmall|
|00000ae0| 6f 63 5f 74 72 61 63 6b | 5f 74 61 72 67 65 74 2e |oc_track|_target.|
|00000af0| 20 20 4d 61 6c 6c 6f 63 | 20 74 72 61 63 6b 20 77 | Malloc| track w|
|00000b00| 69 6c 6c 20 72 65 70 6f | 72 74 20 74 6f 20 79 6f |ill repo|rt to yo|
|00000b10| 75 20 65 76 65 72 79 20 | 74 69 6d 65 20 69 74 20 |u every |time it |
|00000b20| 73 65 65 73 20 0a 58 74 | 68 69 73 20 61 64 64 72 |sees .Xt|his addr|
|00000b30| 65 73 73 20 61 6e 64 20 | 61 6c 73 6f 20 70 72 6f |ess and |also pro|
|00000b40| 76 69 64 65 73 20 79 6f | 75 20 77 69 74 68 20 61 |vides yo|u with a|
|00000b50| 20 63 6f 6e 76 65 6e 69 | 65 6e 74 20 70 6c 61 63 | conveni|ent plac|
|00000b60| 65 20 74 6f 20 73 65 74 | 20 61 20 62 72 65 61 6b |e to set| a break|
|00000b70| 70 6f 69 6e 74 2e 0a 58 | 0a 58 49 6e 20 6f 72 64 |point..X|.XIn ord|
|00000b80| 65 72 20 74 6f 20 73 65 | 65 20 77 68 61 74 20 68 |er to se|e what h|
|00000b90| 61 70 70 65 6e 73 2c 20 | 79 6f 75 20 72 75 6e 20 |appens, |you run |
|00000ba0| 74 72 61 63 6b 5f 72 65 | 70 6f 72 74 2e 20 20 41 |track_re|port. A|
|00000bb0| 73 20 61 72 67 75 6d 65 | 6e 74 73 2c 20 79 6f 75 |s argume|nts, you|
|00000bc0| 0a 58 75 73 65 20 74 61 | 67 73 20 66 6f 72 20 74 |.Xuse ta|gs for t|
|00000bd0| 68 65 20 70 6c 61 63 65 | 73 20 77 68 65 72 65 20 |he place|s where |
|00000be0| 79 6f 75 20 70 75 74 20 | 63 61 6c 6c 73 20 74 6f |you put |calls to|
|00000bf0| 20 6d 61 6c 6c 6f 63 5f | 74 72 61 63 6b 20 69 6e | malloc_|track in|
|00000c00| 20 79 6f 75 72 20 6f 77 | 6e 0a 58 63 6f 64 65 2e | your ow|n.Xcode.|
|00000c10| 20 20 54 68 65 20 72 65 | 73 75 6c 74 20 69 73 20 | The re|sult is |
|00000c20| 61 20 6c 69 74 74 6c 65 | 20 72 65 70 6f 72 74 20 |a little| report |
|00000c30| 77 69 74 68 20 61 6c 6c | 20 6f 66 20 74 68 65 20 |with all| of the |
|00000c40| 74 72 61 63 6b 65 64 20 | 61 63 74 69 76 69 74 79 |tracked |activity|
|00000c50| 2e 0a 58 57 68 65 6e 20 | 74 68 65 20 61 64 64 72 |..XWhen |the addr|
|00000c60| 65 73 73 20 79 6f 75 20 | 73 70 65 63 69 66 69 65 |ess you |specifie|
|00000c70| 64 20 69 6e 20 6d 61 6c | 6c 6f 63 5f 74 72 61 63 |d in mal|loc_trac|
|00000c80| 6b 5f 74 61 72 67 65 74 | 20 61 70 70 65 61 72 73 |k_target| appears|
|00000c90| 2c 20 69 74 73 0a 58 73 | 70 65 63 69 61 6c 6c 79 |, its.Xs|pecially|
|00000ca0| 20 6d 61 72 6b 65 64 2e | 0a 58 0a 58 48 6f 70 65 | marked.|.X.XHope|
|00000cb0| 20 74 68 69 73 20 68 65 | 6c 70 73 2e 20 20 48 61 | this he|lps. Ha|
|00000cc0| 70 70 79 20 64 65 62 75 | 67 67 69 6e 67 2e 0a 58 |ppy debu|gging..X|
|00000cd0| 0a 58 47 65 6f 66 66 72 | 65 79 20 4c 65 61 63 68 |.XGeoffr|ey Leach|
|00000ce0| 0a 58 54 6f 6c 65 72 61 | 6e 74 20 53 6f 66 74 77 |.XTolera|nt Softw|
|00000cf0| 61 72 65 0a 58 67 65 6f | 66 66 40 74 6f 6c 65 72 |are.Xgeo|ff@toler|
|00000d00| 61 6e 74 2e 63 6f 6d 20 | 20 6f 72 20 2e 2e 2e 20 |ant.com | or ... |
|00000d10| 7b 70 79 72 61 6d 69 64 | 20 7c 20 61 70 70 6c 79 |{pyramid| | apply|
|00000d20| 20 7c 20 61 6d 68 64 61 | 6c 7d 21 74 6f 6c 73 6f | | amhda|l}!tolso|
|00000d30| 66 74 21 67 65 6f 66 66 | 0a 45 4e 44 5f 4f 46 5f |ft!geoff|.END_OF_|
|00000d40| 46 49 4c 45 0a 69 66 20 | 74 65 73 74 20 32 30 31 |FILE.if |test 201|
|00000d50| 33 20 2d 6e 65 20 60 77 | 63 20 2d 63 20 3c 27 52 |3 -ne `w|c -c <'R|
|00000d60| 45 41 44 4d 45 5f 54 52 | 41 43 4b 27 60 3b 20 74 |EADME_TR|ACK'`; t|
|00000d70| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00000d80| 72 3a 20 5c 22 27 52 45 | 41 44 4d 45 5f 54 52 41 |r: \"'RE|ADME_TRA|
|00000d90| 43 4b 27 5c 22 20 75 6e | 70 61 63 6b 65 64 20 77 |CK'\" un|packed w|
|00000da0| 69 74 68 20 77 72 6f 6e | 67 20 73 69 7a 65 21 0a |ith wron|g size!.|
|00000db0| 66 69 0a 23 20 65 6e 64 | 20 6f 66 20 27 52 45 41 |fi.# end| of 'REA|
|00000dc0| 44 4d 45 5f 54 52 41 43 | 4b 27 0a 66 69 0a 69 66 |DME_TRAC|K'.fi.if|
|00000dd0| 20 74 65 73 74 20 2d 66 | 20 27 6d 61 6c 6c 6f 63 | test -f| 'malloc|
|00000de0| 5f 74 72 61 63 6b 2e 63 | 27 20 2d 61 20 22 24 7b |_track.c|' -a "${|
|00000df0| 31 7d 22 20 21 3d 20 22 | 2d 63 22 20 3b 20 74 68 |1}" != "|-c" ; th|
|00000e00| 65 6e 20 0a 20 20 65 63 | 68 6f 20 73 68 61 72 3a |en . ec|ho shar:|
|00000e10| 20 57 69 6c 6c 20 6e 6f | 74 20 63 6c 6f 62 62 65 | Will no|t clobbe|
|00000e20| 72 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |r existi|ng file |
|00000e30| 5c 22 27 6d 61 6c 6c 6f | 63 5f 74 72 61 63 6b 2e |\"'mallo|c_track.|
|00000e40| 63 27 5c 22 0a 65 6c 73 | 65 0a 65 63 68 6f 20 73 |c'\".els|e.echo s|
|00000e50| 68 61 72 3a 20 45 78 74 | 72 61 63 74 69 6e 67 20 |har: Ext|racting |
|00000e60| 5c 22 27 6d 61 6c 6c 6f | 63 5f 74 72 61 63 6b 2e |\"'mallo|c_track.|
|00000e70| 63 27 5c 22 20 5c 28 37 | 34 37 20 63 68 61 72 61 |c'\" \(7|47 chara|
|00000e80| 63 74 65 72 73 5c 29 0a | 73 65 64 20 22 73 2f 5e |cters\).|sed "s/^|
|00000e90| 58 2f 2f 22 20 3e 27 6d | 61 6c 6c 6f 63 5f 74 72 |X//" >'m|alloc_tr|
|00000ea0| 61 63 6b 2e 63 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |ack.c' <|<'END_OF|
|00000eb0| 5f 46 49 4c 45 27 0a 58 | 23 69 6e 63 6c 75 64 65 |_FILE'.X|#include|
|00000ec0| 20 3c 73 79 73 2f 66 63 | 6e 74 6c 2e 68 3e 0a 58 | <sys/fc|ntl.h>.X|
|00000ed0| 0a 58 73 74 61 74 69 63 | 20 69 6e 74 09 74 72 61 |.Xstatic| int.tra|
|00000ee0| 63 6b 46 44 3b 0a 58 73 | 74 61 74 69 63 20 69 6e |ckFD;.Xs|tatic in|
|00000ef0| 74 09 6d 61 6c 6c 6f 63 | 5f 74 72 61 63 6b 5f 74 |t.malloc|_track_t|
|00000f00| 61 72 67 65 74 5f 6e 6f | 74 69 63 65 64 3b 0a 58 |arget_no|ticed;.X|
|00000f10| 69 6e 74 09 09 6d 61 6c | 6c 6f 63 5f 74 72 61 63 |int..mal|loc_trac|
|00000f20| 6b 5f 65 6e 61 62 6c 65 | 3b 0a 58 63 68 61 72 09 |k_enable|;.Xchar.|
|00000f30| 20 20 20 20 20 20 20 2a | 6d 61 6c 6c 6f 63 5f 74 | *|malloc_t|
|00000f40| 72 61 63 6b 5f 74 61 72 | 67 65 74 20 20 3d 28 63 |rack_tar|get =(c|
|00000f50| 68 61 72 20 2a 29 20 2d | 31 3b 0a 58 73 74 61 74 |har *) -|1;.Xstat|
|00000f60| 69 63 20 69 6e 74 09 74 | 72 61 63 6b 5f 74 61 72 |ic int.t|rack_tar|
|00000f70| 67 65 74 5f 69 6e 69 74 | 20 3d 20 2d 35 3b 0a 58 |get_init| = -5;.X|
|00000f80| 0a 58 76 6f 69 64 0a 58 | 6d 61 6c 6c 6f 63 5f 74 |.Xvoid.X|malloc_t|
|00000f90| 72 61 63 6b 28 6e 2c 20 | 76 29 0a 58 09 69 6e 74 |rack(n, |v).X.int|
|00000fa0| 09 6e 3b 0a 58 09 63 68 | 61 72 20 20 20 2a 76 3b |.n;.X.ch|ar *v;|
|00000fb0| 0a 58 7b 0a 58 09 69 66 | 20 28 21 6d 61 6c 6c 6f |.X{.X.if| (!mallo|
|00000fc0| 63 5f 74 72 61 63 6b 5f | 65 6e 61 62 6c 65 29 0a |c_track_|enable).|
|00000fd0| 58 09 09 72 65 74 75 72 | 6e 3b 0a 58 0a 58 09 69 |X..retur|n;.X.X.i|
|00000fe0| 66 20 28 74 72 61 63 6b | 46 44 20 3d 3d 20 30 29 |f (track|FD == 0)|
|00000ff0| 20 0a 58 09 09 74 72 61 | 63 6b 46 44 20 3d 20 6f | .X..tra|ckFD = o|
|00001000| 70 65 6e 28 22 6d 61 6c | 6c 6f 63 5f 74 72 61 63 |pen("mal|loc_trac|
|00001010| 6b 22 2c 20 4f 5f 52 44 | 57 52 20 7c 20 4f 5f 43 |k", O_RD|WR | O_C|
|00001020| 52 45 41 54 2c 20 30 36 | 34 34 29 3b 0a 58 09 69 |REAT, 06|44);.X.i|
|00001030| 66 20 28 21 6d 61 6c 6c | 6f 63 5f 74 72 61 63 6b |f (!mall|oc_track|
|00001040| 5f 74 61 72 67 65 74 5f | 6e 6f 74 69 63 65 64 20 |_target_|noticed |
|00001050| 26 26 20 28 6d 61 6c 6c | 6f 63 5f 74 72 61 63 6b |&& (mall|oc_track|
|00001060| 5f 74 61 72 67 65 74 20 | 21 3d 20 28 63 68 61 72 |_target |!= (char|
|00001070| 20 2a 29 20 2d 31 29 29 | 7b 0a 58 09 09 6d 61 6c | *) -1))|{.X..mal|
|00001080| 6c 6f 63 5f 74 72 61 63 | 6b 5f 74 61 72 67 65 74 |loc_trac|k_target|
|00001090| 5f 6e 6f 74 69 63 65 64 | 20 3d 20 31 3b 0a 58 09 |_noticed| = 1;.X.|
|000010a0| 09 77 72 69 74 65 28 74 | 72 61 63 6b 46 44 2c 20 |.write(t|rackFD, |
|000010b0| 26 74 72 61 63 6b 5f 74 | 61 72 67 65 74 5f 69 6e |&track_t|arget_in|
|000010c0| 69 74 2c 20 73 69 7a 65 | 6f 66 28 69 6e 74 29 29 |it, size|of(int))|
|000010d0| 3b 0a 58 09 09 77 72 69 | 74 65 28 74 72 61 63 6b |;.X..wri|te(track|
|000010e0| 46 44 2c 20 26 6d 61 6c | 6c 6f 63 5f 74 72 61 63 |FD, &mal|loc_trac|
|000010f0| 6b 5f 74 61 72 67 65 74 | 2c 20 73 69 7a 65 6f 66 |k_target|, sizeof|
|00001100| 28 63 68 61 72 20 2a 29 | 29 3b 0a 58 09 7d 0a 58 |(char *)|);.X.}.X|
|00001110| 09 77 72 69 74 65 28 74 | 72 61 63 6b 46 44 2c 20 |.write(t|rackFD, |
|00001120| 26 6e 2c 20 73 69 7a 65 | 6f 66 28 69 6e 74 29 29 |&n, size|of(int))|
|00001130| 3b 0a 58 09 77 72 69 74 | 65 28 74 72 61 63 6b 46 |;.X.writ|e(trackF|
|00001140| 44 2c 20 26 76 2c 20 73 | 69 7a 65 6f 66 28 63 68 |D, &v, s|izeof(ch|
|00001150| 61 72 20 2a 29 29 3b 0a | 58 09 69 66 20 28 76 20 |ar *));.|X.if (v |
|00001160| 3d 3d 20 6d 61 6c 6c 6f | 63 5f 74 72 61 63 6b 5f |== mallo|c_track_|
|00001170| 74 61 72 67 65 74 29 0a | 58 09 09 77 72 69 74 65 |target).|X..write|
|00001180| 28 32 2c 20 22 74 72 61 | 63 6b 20 74 61 72 67 65 |(2, "tra|ck targe|
|00001190| 74 20 65 76 65 6e 74 5c | 6e 22 2c 20 31 39 29 3b |t event\|n", 19);|
|000011a0| 20 2f 2a 20 73 65 74 20 | 62 72 65 61 6b 70 6f 69 | /* set |breakpoi|
|000011b0| 6e 74 20 68 65 72 65 20 | 2a 2f 0a 58 7d 0a 45 4e |nt here |*/.X}.EN|
|000011c0| 44 5f 4f 46 5f 46 49 4c | 45 0a 69 66 20 74 65 73 |D_OF_FIL|E.if tes|
|000011d0| 74 20 37 34 37 20 2d 6e | 65 20 60 77 63 20 2d 63 |t 747 -n|e `wc -c|
|000011e0| 20 3c 27 6d 61 6c 6c 6f | 63 5f 74 72 61 63 6b 2e | <'mallo|c_track.|
|000011f0| 63 27 60 3b 20 74 68 65 | 6e 0a 20 20 20 20 65 63 |c'`; the|n. ec|
|00001200| 68 6f 20 73 68 61 72 3a | 20 5c 22 27 6d 61 6c 6c |ho shar:| \"'mall|
|00001210| 6f 63 5f 74 72 61 63 6b | 2e 63 27 5c 22 20 75 6e |oc_track|.c'\" un|
|00001220| 70 61 63 6b 65 64 20 77 | 69 74 68 20 77 72 6f 6e |packed w|ith wron|
|00001230| 67 20 73 69 7a 65 21 0a | 66 69 0a 23 20 65 6e 64 |g size!.|fi.# end|
|00001240| 20 6f 66 20 27 6d 61 6c | 6c 6f 63 5f 74 72 61 63 | of 'mal|loc_trac|
|00001250| 6b 2e 63 27 0a 66 69 0a | 69 66 20 74 65 73 74 20 |k.c'.fi.|if test |
|00001260| 2d 66 20 27 74 72 61 63 | 6b 5f 72 65 70 6f 72 74 |-f 'trac|k_report|
|00001270| 2e 63 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |.c' -a "|${1}" !=|
|00001280| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00001290| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|000012a0| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|000012b0| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 74 72 61 |ting fil|e \"'tra|
|000012c0| 63 6b 5f 72 65 70 6f 72 | 74 2e 63 27 5c 22 0a 65 |ck_repor|t.c'\".e|
|000012d0| 6c 73 65 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |lse.echo| shar: E|
|000012e0| 78 74 72 61 63 74 69 6e | 67 20 5c 22 27 74 72 61 |xtractin|g \"'tra|
|000012f0| 63 6b 5f 72 65 70 6f 72 | 74 2e 63 27 5c 22 20 5c |ck_repor|t.c'\" \|
|00001300| 28 38 36 34 20 63 68 61 | 72 61 63 74 65 72 73 5c |(864 cha|racters\|
|00001310| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00001320| 27 74 72 61 63 6b 5f 72 | 65 70 6f 72 74 2e 63 27 |'track_r|eport.c'|
|00001330| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00001340| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 64 69 |.X#inclu|de <stdi|
|00001350| 6f 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |o.h>.X#i|nclude <|
|00001360| 73 79 73 2f 66 63 6e 74 | 6c 2e 68 3e 0a 58 0a 58 |sys/fcnt|l.h>.X.X|
|00001370| 63 68 61 72 20 2a 74 61 | 67 73 5b 5d 20 3d 20 7b |char *ta|gs[] = {|
|00001380| 22 22 2c 20 22 6d 61 6c | 6c 6f 63 22 2c 20 22 66 |"", "mal|loc", "f|
|00001390| 72 65 65 22 2c 20 22 72 | 65 61 6c 6c 6f 63 20 72 |ree", "r|ealloc r|
|000013a0| 65 71 75 65 73 74 22 2c | 20 22 72 65 61 6c 6c 6f |equest",| "reallo|
|000013b0| 63 20 72 65 73 75 6c 74 | 22 2c 20 0a 58 09 09 22 |c result|", .X.."|
|000013c0| 74 61 72 67 65 74 22 7d | 3b 0a 58 0a 58 6d 61 69 |target"}|;.X.Xmai|
|000013d0| 6e 28 61 72 67 63 2c 20 | 61 72 67 76 29 0a 58 09 |n(argc, |argv).X.|
|000013e0| 69 6e 74 20 20 20 61 72 | 67 63 3b 0a 58 09 63 68 |int ar|gc;.X.ch|
|000013f0| 61 72 20 2a 61 72 67 76 | 5b 5d 3b 0a 58 7b 0a 58 |ar *argv|[];.X{.X|
|00001400| 09 69 6e 74 20 20 20 66 | 64 3b 0a 58 09 69 6e 74 |.int f|d;.X.int|
|00001410| 20 20 20 6e 3b 0a 58 09 | 63 68 61 72 20 20 2a 74 | n;.X.|char *t|
|00001420| 61 72 67 65 74 3b 0a 58 | 09 63 68 61 72 20 20 2a |arget;.X|.char *|
|00001430| 61 3b 0a 58 09 63 68 61 | 72 20 20 2a 6c 3b 0a 58 |a;.X.cha|r *l;.X|
|00001440| 09 63 68 61 72 20 20 2a | 74 61 67 3b 0a 58 09 63 |.char *|tag;.X.c|
|00001450| 68 61 72 20 20 20 62 75 | 66 5b 33 30 5d 3b 0a 58 |har bu|f[30];.X|
|00001460| 0a 58 09 66 64 20 3d 20 | 6f 70 65 6e 28 22 6d 61 |.X.fd = |open("ma|
|00001470| 6c 6c 6f 63 5f 74 72 61 | 63 6b 22 2c 20 4f 5f 52 |lloc_tra|ck", O_R|
|00001480| 44 4f 4e 4c 59 29 3b 0a | 58 09 77 68 69 6c 65 20 |DONLY);.|X.while |
|00001490| 28 72 65 61 64 28 66 64 | 2c 20 26 6e 2c 20 73 69 |(read(fd|, &n, si|
|000014a0| 7a 65 6f 66 28 69 6e 74 | 29 29 29 20 7b 0a 58 09 |zeof(int|))) {.X.|
|000014b0| 09 72 65 61 64 28 66 64 | 2c 20 26 61 2c 20 73 69 |.read(fd|, &a, si|
|000014c0| 7a 65 6f 66 28 63 68 61 | 72 20 2a 29 29 3b 0a 58 |zeof(cha|r *));.X|
|000014d0| 09 09 69 66 20 28 6e 20 | 3c 20 30 29 20 7b 0a 58 |..if (n |< 0) {.X|
|000014e0| 09 09 09 69 66 20 28 6e | 20 3d 3d 20 2d 35 29 20 |...if (n| == -5) |
|000014f0| 7b 0a 58 09 09 09 09 74 | 61 72 67 65 74 20 3d 20 |{.X....t|arget = |
|00001500| 61 3b 0a 58 09 09 09 09 | 63 6f 6e 74 69 6e 75 65 |a;.X....|continue|
|00001510| 3b 0a 58 09 09 09 7d 0a | 58 09 09 09 69 66 20 28 |;.X...}.|X...if (|
|00001520| 61 20 3d 3d 20 74 61 72 | 67 65 74 29 0a 58 09 09 |a == tar|get).X..|
|00001530| 09 09 70 72 69 6e 74 66 | 28 22 30 78 25 78 20 2d |..printf|("0x%x -|
|00001540| 20 25 2d 38 73 5c 74 3c | 2d 2d 2d 2d 5c 6e 22 2c | %-8s\t<|----\n",|
|00001550| 20 61 2c 20 74 61 67 73 | 5b 2d 6e 5d 29 3b 0a 58 | a, tags|[-n]);.X|
|00001560| 09 09 09 65 6c 73 65 0a | 58 09 09 09 09 70 72 69 |...else.|X....pri|
|00001570| 6e 74 66 28 22 30 78 25 | 78 20 2d 20 25 73 5c 6e |ntf("0x%|x - %s\n|
|00001580| 22 2c 20 61 2c 20 74 61 | 67 73 5b 2d 6e 5d 29 3b |", a, ta|gs[-n]);|
|00001590| 0a 58 09 09 7d 0a 58 09 | 09 65 6c 73 65 20 7b 0a |.X..}.X.|.else {.|
|000015a0| 58 09 09 09 69 66 20 28 | 28 6e 2b 31 29 20 3c 20 |X...if (|(n+1) < |
|000015b0| 61 72 67 63 29 0a 58 09 | 09 09 09 74 61 67 20 3d |argc).X.|...tag =|
|000015c0| 20 61 72 67 76 5b 6e 2b | 31 5d 3b 0a 58 09 09 09 | argv[n+|1];.X...|
|000015d0| 65 6c 73 65 20 7b 0a 58 | 09 09 09 09 73 70 72 69 |else {.X|....spri|
|000015e0| 6e 74 66 28 62 75 66 2c | 20 22 77 61 74 63 68 70 |ntf(buf,| "watchp|
|000015f0| 6f 69 6e 74 20 25 64 22 | 2c 20 6e 29 3b 0a 58 09 |oint %d"|, n);.X.|
|00001600| 09 09 09 74 61 67 20 3d | 20 62 75 66 3b 0a 58 09 |...tag =| buf;.X.|
|00001610| 09 09 7d 0a 58 09 09 09 | 69 66 20 28 61 20 3e 20 |..}.X...|if (a > |
|00001620| 30 29 20 7b 0a 58 09 09 | 09 09 69 66 20 28 61 20 |0) {.X..|..if (a |
|00001630| 3d 3d 20 74 61 72 67 65 | 74 29 0a 58 09 09 09 09 |== targe|t).X....|
|00001640| 09 70 72 69 6e 74 66 28 | 22 30 78 25 78 20 2d 20 |.printf(|"0x%x - |
|00001650| 25 2d 38 73 5c 74 3c 2d | 2d 2d 2d 5c 6e 22 2c 20 |%-8s\t<-|---\n", |
|00001660| 61 2c 20 74 61 67 29 3b | 0a 58 09 09 09 09 65 6c |a, tag);|.X....el|
|00001670| 73 65 0a 58 09 09 09 09 | 09 70 72 69 6e 74 66 28 |se.X....|.printf(|
|00001680| 22 30 78 25 78 20 2d 20 | 25 73 5c 6e 22 2c 20 61 |"0x%x - |%s\n", a|
|00001690| 2c 20 74 61 67 29 3b 0a | 58 09 09 09 7d 0a 58 09 |, tag);.|X...}.X.|
|000016a0| 09 09 65 6c 73 65 0a 58 | 09 09 09 09 70 72 69 6e |..else.X|....prin|
|000016b0| 74 66 28 22 5c 74 20 2d | 20 25 73 5c 6e 22 2c 20 |tf("\t -| %s\n", |
|000016c0| 74 61 67 29 3b 0a 58 09 | 09 7d 0a 58 09 7d 0a 58 |tag);.X.|.}.X.}.X|
|000016d0| 7d 0a 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 0a 69 66 |}.END_OF|_FILE.if|
|000016e0| 20 74 65 73 74 20 38 36 | 34 20 2d 6e 65 20 60 77 | test 86|4 -ne `w|
|000016f0| 63 20 2d 63 20 3c 27 74 | 72 61 63 6b 5f 72 65 70 |c -c <'t|rack_rep|
|00001700| 6f 72 74 2e 63 27 60 3b | 20 74 68 65 6e 0a 20 20 |ort.c'`;| then. |
|00001710| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 5c 22 27 | echo s|har: \"'|
|00001720| 74 72 61 63 6b 5f 72 65 | 70 6f 72 74 2e 63 27 5c |track_re|port.c'\|
|00001730| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|00001740| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 66 69 0a 23 |wrong si|ze!.fi.#|
|00001750| 20 65 6e 64 20 6f 66 20 | 27 74 72 61 63 6b 5f 72 | end of |'track_r|
|00001760| 65 70 6f 72 74 2e 63 27 | 0a 66 69 0a 65 63 68 6f |eport.c'|.fi.echo|
|00001770| 20 73 68 61 72 3a 20 45 | 6e 64 20 6f 66 20 73 68 | shar: E|nd of sh|
|00001780| 65 6c 6c 20 61 72 63 68 | 69 76 65 2e 0a 65 78 69 |ell arch|ive..exi|
|00001790| 74 20 30 0a | |t 0. | |
+--------+-------------------------+-------------------------+--------+--------+