home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1288 < prev    next >
SHell self-extracting ARchive  |  1990-12-28  |  50.1 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: 1288

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, ASCII text default
100% TrID E-Mail message (Var. 2) 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 53 74 | 65 76 65 2e 42 6c 65 61 |From: St|eve.Blea|
|00000010| 7a 61 72 64 40 52 6f 62 | 6f 42 61 72 2e 43 6f 2e |zard@Rob|oBar.Co.|
|00000020| 55 4b 0a 4e 65 77 73 67 | 72 6f 75 70 73 3a 20 61 |UK.Newsg|roups: a|
|00000030| 6c 74 2e 73 6f 75 72 63 | 65 73 2c 63 6f 6d 70 2e |lt.sourc|es,comp.|
|00000040| 75 6e 69 78 2e 78 65 6e | 69 78 0a 53 75 62 6a 65 |unix.xen|ix.Subje|
|00000050| 63 74 3a 20 47 44 42 20 | 66 6f 72 20 58 65 6e 69 |ct: GDB |for Xeni|
|00000060| 78 20 33 38 36 20 77 69 | 74 68 20 47 43 43 20 28 |x 386 wi|th GCC (|
|00000070| 70 61 72 74 20 34 20 6f | 66 20 34 29 0a 4d 65 73 |part 4 o|f 4).Mes|
|00000080| 73 61 67 65 2d 49 44 3a | 20 3c 31 39 39 30 4d 61 |sage-ID:| <1990Ma|
|00000090| 79 38 2e 31 31 35 35 33 | 39 2e 32 39 36 33 30 40 |y8.11553|9.29630@|
|000000a0| 72 6f 62 6f 62 61 72 2e | 63 6f 2e 75 6b 3e 0a 44 |robobar.|co.uk>.D|
|000000b0| 61 74 65 3a 20 38 20 4d | 61 79 20 39 30 20 31 31 |ate: 8 M|ay 90 11|
|000000c0| 3a 35 35 3a 33 39 20 47 | 4d 54 0a 0a 54 68 69 73 |:55:39 G|MT..This|
|000000d0| 20 69 73 20 70 61 72 74 | 20 66 6f 75 72 20 6f 66 | is part| four of|
|000000e0| 20 61 20 63 6f 6f 72 64 | 69 6e 61 74 65 64 20 73 | a coord|inated s|
|000000f0| 65 74 20 6f 66 20 34 20 | 70 61 74 63 68 65 73 20 |et of 4 |patches |
|00000100| 66 6f 72 20 58 65 6e 69 | 78 20 47 43 43 2c 20 47 |for Xeni|x GCC, G|
|00000110| 41 53 20 61 6e 64 20 47 | 44 42 2e 0a 50 6c 65 61 |AS and G|DB..Plea|
|00000120| 73 65 20 63 6f 6c 6c 65 | 63 74 20 61 6c 6c 20 70 |se colle|ct all p|
|00000130| 61 72 74 73 20 62 65 66 | 6f 72 65 20 79 6f 75 20 |arts bef|ore you |
|00000140| 73 74 61 72 74 20 68 61 | 63 6b 69 6e 67 20 3a 2d |start ha|cking :-|
|00000150| 29 0a 0a 54 68 69 73 20 | 69 73 20 70 61 72 74 20 |)..This |is part |
|00000160| 34 20 77 68 69 63 68 20 | 70 61 74 63 68 65 73 20 |4 which |patches |
|00000170| 47 44 42 2c 20 73 61 79 | 20 7c 70 61 74 63 68 20 |GDB, say| |patch |
|00000180| 2d 70 20 2d 64 20 2f 75 | 73 72 2f 6c 6f 63 61 6c |-p -d /u|sr/local|
|00000190| 2f 73 72 63 2f 64 69 73 | 74 2d 67 64 62 0a 6f 72 |/src/dis|t-gdb.or|
|000001a0| 20 77 68 61 74 65 76 65 | 72 20 41 46 54 45 52 20 | whateve|r AFTER |
|000001b0| 41 50 50 4c 59 49 4e 47 | 20 70 61 72 74 20 33 2e |APPLYING| part 3.|
|000001c0| 0a 0a 23 21 20 2f 62 69 | 6e 2f 73 68 0a 23 20 54 |..#! /bi|n/sh.# T|
|000001d0| 68 69 73 20 69 73 20 61 | 20 73 68 65 6c 6c 20 61 |his is a| shell a|
|000001e0| 72 63 68 69 76 65 2c 20 | 6d 65 61 6e 69 6e 67 3a |rchive, |meaning:|
|000001f0| 0a 23 20 31 2e 20 52 65 | 6d 6f 76 65 20 65 76 65 |.# 1. Re|move eve|
|00000200| 72 79 74 68 69 6e 67 20 | 61 62 6f 76 65 20 74 68 |rything |above th|
|00000210| 65 20 23 21 20 2f 62 69 | 6e 2f 73 68 20 6c 69 6e |e #! /bi|n/sh lin|
|00000220| 65 2e 0a 23 20 32 2e 20 | 53 61 76 65 20 74 68 65 |e..# 2. |Save the|
|00000230| 20 72 65 73 75 6c 74 69 | 6e 67 20 74 65 78 74 20 | resulti|ng text |
|00000240| 69 6e 20 61 20 66 69 6c | 65 2e 0a 23 20 33 2e 20 |in a fil|e..# 3. |
|00000250| 45 78 65 63 75 74 65 20 | 74 68 65 20 66 69 6c 65 |Execute |the file|
|00000260| 20 77 69 74 68 20 2f 62 | 69 6e 2f 73 68 20 28 6e | with /b|in/sh (n|
|00000270| 6f 74 20 63 73 68 29 20 | 74 6f 20 63 72 65 61 74 |ot csh) |to creat|
|00000280| 65 20 74 68 65 20 66 69 | 6c 65 73 3a 0a 23 09 67 |e the fi|les:.#.g|
|00000290| 64 62 2d 78 33 38 36 2e | 30 32 0a 23 20 54 68 69 |db-x386.|02.# Thi|
|000002a0| 73 20 61 72 63 68 69 76 | 65 20 63 72 65 61 74 65 |s archiv|e create|
|000002b0| 64 3a 20 54 75 65 20 4d | 61 79 20 20 38 20 30 39 |d: Tue M|ay 8 09|
|000002c0| 3a 35 36 3a 35 33 20 31 | 39 39 30 0a 65 78 70 6f |:56:53 1|990.expo|
|000002d0| 72 74 20 50 41 54 48 3b | 20 50 41 54 48 3d 2f 62 |rt PATH;| PATH=/b|
|000002e0| 69 6e 3a 24 50 41 54 48 | 0a 65 63 68 6f 20 73 68 |in:$PATH|.echo sh|
|000002f0| 61 72 3a 20 65 78 74 72 | 61 63 74 69 6e 67 20 22 |ar: extr|acting "|
|00000300| 27 67 64 62 2d 78 33 38 | 36 2e 30 32 27 22 20 27 |'gdb-x38|6.02'" '|
|00000310| 28 34 38 33 39 30 20 63 | 68 61 72 61 63 74 65 72 |(48390 c|haracter|
|00000320| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|00000330| 67 64 62 2d 78 33 38 36 | 2e 30 32 27 0a 74 68 65 |gdb-x386|.02'.the|
|00000340| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 77 69 |n..echo |shar: wi|
|00000350| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00000360| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|00000370| 22 27 67 64 62 2d 78 33 | 38 36 2e 30 32 27 22 0a |"'gdb-x3|86.02'".|
|00000380| 65 6c 73 65 0a 73 65 64 | 20 27 73 2f 5e 58 2f 2f |else.sed| 's/^X//|
|00000390| 27 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |' << \SH|AR_EOF >|
|000003a0| 20 27 67 64 62 2d 78 33 | 38 36 2e 30 32 27 0a 58 | 'gdb-x3|86.02'.X|
|000003b0| 2a 2a 2a 20 64 69 73 74 | 2d 67 64 62 2e 6f 6c 64 |*** dist|-gdb.old|
|000003c0| 2f 78 33 38 36 64 62 78 | 2e 63 09 54 68 75 20 4a |/x386dbx|.c.Thu J|
|000003d0| 61 6e 20 20 31 20 30 30 | 3a 30 30 3a 30 30 20 31 |an 1 00|:00:00 1|
|000003e0| 39 37 30 0a 58 2d 2d 2d | 20 78 33 38 36 64 62 78 |970.X---| x386dbx|
|000003f0| 2e 63 09 53 61 74 20 4d | 61 79 20 20 35 20 31 34 |.c.Sat M|ay 5 14|
|00000400| 3a 35 39 3a 34 35 20 31 | 39 39 30 0a 58 2a 2a 2a |:59:45 1|990.X***|
|00000410| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 0a 58 2a 2a |********|****.X**|
|00000420| 2a 20 30 20 2a 2a 2a 2a | 0a 58 2d 2d 2d 20 31 2c |* 0 ****|.X--- 1,|
|00000430| 34 37 38 20 2d 2d 2d 2d | 0a 58 2b 20 23 69 6e 63 |478 ----|.X+ #inc|
|00000440| 6c 75 64 65 20 3c 73 74 | 64 69 6f 2e 68 3e 0a 58 |lude <st|dio.h>.X|
|00000450| 2b 20 23 69 6e 63 6c 75 | 64 65 20 3c 61 2e 6f 75 |+ #inclu|de <a.ou|
|00000460| 74 2e 68 3e 0a 58 2b 20 | 23 69 6e 63 6c 75 64 65 |t.h>.X+ |#include|
|00000470| 20 3c 66 63 6e 74 6c 2e | 68 3e 0a 58 2b 20 23 69 | <fcntl.|h>.X+ #i|
|00000480| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 74 79 70 65 |nclude <|sys/type|
|00000490| 73 2e 68 3e 0a 58 2b 20 | 23 69 6e 63 6c 75 64 65 |s.h>.X+ |#include|
|000004a0| 20 3c 73 79 73 2f 72 65 | 6c 73 79 6d 2e 68 3e 0a | <sys/re|lsym.h>.|
|000004b0| 58 2b 20 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |X+ #incl|ude <sys|
|000004c0| 2f 70 61 72 61 6d 2e 68 | 3e 0a 58 2b 20 23 69 6e |/param.h|>.X+ #in|
|000004d0| 63 6c 75 64 65 20 3c 73 | 79 73 2f 66 69 6c 65 2e |clude <s|ys/file.|
|000004e0| 68 3e 0a 58 2b 20 23 69 | 6e 63 6c 75 64 65 20 22 |h>.X+ #i|nclude "|
|000004f0| 64 65 66 73 2e 68 22 0a | 58 2b 20 23 69 6e 63 6c |defs.h".|X+ #incl|
|00000500| 75 64 65 20 22 70 61 72 | 61 6d 2e 68 22 0a 58 2b |ude "par|am.h".X+|
|00000510| 20 23 69 6e 63 6c 75 64 | 65 20 22 73 79 6d 74 61 | #includ|e "symta|
|00000520| 62 2e 68 22 0a 58 2b 20 | 23 69 6e 63 6c 75 64 65 |b.h".X+ |#include|
|00000530| 20 22 67 61 73 2d 6e 6c | 69 73 74 2e 68 22 0a 58 | "gas-nl|ist.h".X|
|00000540| 2b 20 0a 58 2b 20 0a 58 | 2b 20 2f 2a 20 58 45 4e |+ .X+ .X|+ /* XEN|
|00000550| 49 58 20 73 79 6d 62 6f | 6c 20 73 65 67 6d 65 6e |IX symbo|l segmen|
|00000560| 74 20 73 68 61 70 65 20 | 64 65 66 69 6e 69 74 69 |t shape |definiti|
|00000570| 6f 6e 73 20 2a 2f 0a 58 | 2b 20 0a 58 2b 20 73 74 |ons */.X|+ .X+ st|
|00000580| 72 75 63 74 20 73 65 63 | 74 69 6f 6e 32 20 7b 09 |ruct sec|tion2 {.|
|00000590| 09 09 2f 2a 20 46 69 6c | 65 20 69 6e 66 6f 20 74 |../* Fil|e info t|
|000005a0| 61 62 6c 65 20 73 68 61 | 70 65 20 2a 2f 0a 58 2b |able sha|pe */.X+|
|000005b0| 20 09 73 68 6f 72 74 09 | 09 73 65 67 6d 65 6e 74 | .short.|.segment|
|000005c0| 3b 09 2f 2a 20 73 65 67 | 6d 65 6e 74 20 6e 75 6d |;./* seg|ment num|
|000005d0| 62 65 72 20 2a 2f 0a 58 | 2b 20 09 43 4f 52 45 5f |ber */.X|+ .CORE_|
|000005e0| 41 44 44 52 09 61 64 64 | 72 65 73 73 3b 09 2f 2a |ADDR.add|ress;./*|
|000005f0| 20 73 74 61 72 74 20 61 | 64 64 72 65 73 73 20 66 | start a|ddress f|
|00000600| 6f 72 20 74 68 69 73 20 | 66 69 6c 65 20 2a 2f 0a |or this |file */.|
|00000610| 58 2b 20 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |X+ .unsi|gned sho|
|00000620| 72 74 09 74 65 78 74 73 | 69 7a 65 3b 09 2f 2a 20 |rt.texts|ize;./* |
|00000630| 73 69 7a 65 20 6f 66 20 | 74 68 65 20 74 65 78 74 |size of |the text|
|00000640| 20 66 6f 72 20 74 68 69 | 73 20 66 69 6c 65 20 2a | for thi|s file *|
|00000650| 2f 0a 58 2b 20 09 6c 6f | 6e 67 09 09 74 79 70 65 |/.X+ .lo|ng..type|
|00000660| 33 6f 66 66 3b 09 2f 2a | 20 6f 66 66 73 65 74 20 |3off;./*| offset |
|00000670| 74 6f 20 74 79 70 65 33 | 20 72 65 63 6f 72 64 73 |to type3| records|
|00000680| 2c 20 70 73 79 6d 20 74 | 61 62 20 2a 2f 0a 58 2b |, psym t|ab */.X+|
|00000690| 20 09 6c 6f 6e 67 09 09 | 74 79 70 65 34 6f 66 66 | .long..|type4off|
|000006a0| 3b 09 2f 2a 20 6f 66 66 | 73 65 74 20 74 6f 20 74 |;./* off|set to t|
|000006b0| 79 70 65 34 20 72 65 63 | 6f 72 64 73 2c 20 6e 6c |ype4 rec|ords, nl|
|000006c0| 69 73 74 20 74 61 62 20 | 2a 2f 0a 58 2b 20 09 6c |ist tab |*/.X+ .l|
|000006d0| 6f 6e 67 09 09 74 79 70 | 65 35 6f 66 66 3b 09 2f |ong..typ|e5off;./|
|000006e0| 2a 20 6f 66 66 73 65 74 | 20 74 6f 20 74 79 70 65 |* offset| to type|
|000006f0| 35 20 72 65 63 6f 72 64 | 73 2c 20 73 74 72 20 74 |5 record|s, str t|
|00000700| 61 62 20 2a 2f 0a 58 2b | 20 09 6c 6f 6e 67 09 09 |ab */.X+| .long..|
|00000710| 74 79 70 65 36 6f 66 66 | 3b 09 2f 2a 20 6f 66 66 |type6off|;./* off|
|00000720| 73 65 74 20 74 6f 20 74 | 79 70 65 36 20 72 65 63 |set to t|ype6 rec|
|00000730| 6f 72 64 73 20 2a 2f 0a | 58 2b 20 09 75 6e 73 69 |ords */.|X+ .unsi|
|00000740| 67 6e 65 64 20 73 68 6f | 72 74 09 74 79 70 65 33 |gned sho|rt.type3|
|00000750| 73 7a 3b 09 2f 2a 20 73 | 69 7a 65 20 6f 66 20 74 |sz;./* s|ize of t|
|00000760| 79 70 65 33 20 72 65 63 | 6f 72 64 73 20 2a 2f 0a |ype3 rec|ords */.|
|00000770| 58 2b 20 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |X+ .unsi|gned sho|
|00000780| 72 74 09 74 79 70 65 34 | 73 7a 3b 09 2f 2a 20 73 |rt.type4|sz;./* s|
|00000790| 69 7a 65 20 6f 66 20 74 | 79 70 65 34 20 72 65 63 |ize of t|ype4 rec|
|000007a0| 6f 72 64 73 20 2a 2f 0a | 58 2b 20 09 75 6e 73 69 |ords */.|X+ .unsi|
|000007b0| 67 6e 65 64 20 73 68 6f | 72 74 09 74 79 70 65 35 |gned sho|rt.type5|
|000007c0| 73 7a 3b 09 2f 2a 20 73 | 69 7a 65 20 6f 66 20 74 |sz;./* s|ize of t|
|000007d0| 79 70 65 35 20 72 65 63 | 6f 72 64 73 20 2a 2f 0a |ype5 rec|ords */.|
|000007e0| 58 2b 20 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |X+ .unsi|gned sho|
|000007f0| 72 74 09 74 79 70 65 36 | 73 7a 3b 09 2f 2a 20 73 |rt.type6|sz;./* s|
|00000800| 69 7a 65 20 6f 66 20 74 | 79 70 65 36 20 72 65 63 |ize of t|ype6 rec|
|00000810| 6f 72 64 73 20 2a 2f 0a | 58 2b 20 09 63 68 61 72 |ords */.|X+ .char|
|00000820| 09 09 66 69 6c 65 6c 65 | 6e 3b 09 2f 2a 20 6c 65 |..filele|n;./* le|
|00000830| 6e 67 74 68 20 6f 66 20 | 66 69 6c 65 6e 61 6d 65 |ngth of |filename|
|00000840| 20 2a 2f 0a 58 2b 20 7d | 3b 0a 58 2b 20 0a 58 2b | */.X+ }|;.X+ .X+|
|00000850| 20 2f 2a 20 70 73 79 6d | 74 61 62 6c 65 20 28 61 | /* psym|table (a|
|00000860| 74 74 72 69 62 75 74 65 | 20 33 29 20 73 79 6d 62 |ttribute| 3) symb|
|00000870| 6f 6c 20 73 65 67 6d 65 | 6e 74 20 73 68 61 70 65 |ol segme|nt shape|
|00000880| 20 2a 2f 0a 58 2b 20 0a | 58 2b 20 73 74 72 75 63 | */.X+ .|X+ struc|
|00000890| 74 20 70 73 79 6d 62 6f | 6c 5f 73 65 67 20 7b 0a |t psymbo|l_seg {.|
|000008a0| 58 2b 20 09 6c 6f 6e 67 | 09 09 61 64 64 72 65 73 |X+ .long|..addres|
|000008b0| 73 3b 09 2f 2a 20 63 6f | 72 65 20 61 64 64 72 65 |s;./* co|re addre|
|000008c0| 73 73 20 2a 2f 0a 58 2b | 20 09 73 68 6f 72 74 09 |ss */.X+| .short.|
|000008d0| 09 73 65 67 69 64 3b 09 | 09 2f 2a 20 73 65 67 6d |.segid;.|./* segm|
|000008e0| 65 6e 74 20 6e 75 6d 62 | 65 72 20 2a 2f 0a 58 2b |ent numb|er */.X+|
|000008f0| 20 09 73 68 6f 72 74 09 | 09 74 79 70 65 69 64 3b | .short.|.typeid;|
|00000900| 09 09 2f 2a 20 76 61 72 | 69 61 62 6c 65 27 73 20 |../* var|iable's |
|00000910| 74 79 70 65 20 2a 2f 0a | 58 2b 20 09 63 68 61 72 |type */.|X+ .char|
|00000920| 09 09 76 61 72 6c 65 6e | 3b 09 09 2f 2a 20 76 61 |..varlen|;../* va|
|00000930| 72 69 61 62 6c 65 27 73 | 20 6c 65 6e 67 74 68 20 |riable's| length |
|00000940| 2a 2f 0a 58 2b 20 2f 2a | 09 63 68 61 72 09 09 6e |*/.X+ /*|.char..n|
|00000950| 61 6d 65 5b 30 5d 3b 09 | 74 72 61 69 6c 69 6e 67 |ame[0];.|trailing|
|00000960| 20 6e 61 6d 65 20 76 61 | 72 6c 65 6e 20 6c 6f 6e | name va|rlen lon|
|00000970| 67 20 2a 2f 0a 58 2b 20 | 7d 20 72 65 63 6f 72 64 |g */.X+ |} record|
|00000980| 33 3b 0a 58 2b 20 0a 58 | 2b 20 2f 2a 20 20 49 6e |3;.X+ .X|+ /* In|
|00000990| 66 6f 20 6d 61 69 6e 74 | 65 6e 61 6e 63 65 20 73 |fo maint|enance s|
|000009a0| 74 72 75 63 74 75 72 65 | 73 20 2a 2f 0a 58 2b 20 |tructure|s */.X+ |
|000009b0| 0a 58 2b 20 73 74 72 75 | 63 74 20 66 69 6c 65 69 |.X+ stru|ct filei|
|000009c0| 6e 66 6f 20 7b 09 09 2f | 2a 20 70 65 72 20 66 69 |nfo {../|* per fi|
|000009d0| 6c 65 20 69 6e 66 6f 20 | 2a 2f 0a 58 2b 20 09 43 |le info |*/.X+ .C|
|000009e0| 4f 52 45 5f 41 44 44 52 | 09 61 64 64 72 65 73 73 |ORE_ADDR|.address|
|000009f0| 3b 09 2f 2a 20 73 74 61 | 72 74 20 61 64 64 72 65 |;./* sta|rt addre|
|00000a00| 73 73 20 66 6f 72 20 74 | 68 69 73 20 66 69 6c 65 |ss for t|his file|
|00000a10| 20 2a 2f 0a 58 2b 20 09 | 75 6e 73 69 67 6e 65 64 | */.X+ .|unsigned|
|00000a20| 20 73 68 6f 72 74 09 74 | 65 78 74 73 69 7a 65 3b | short.t|extsize;|
|00000a30| 09 2f 2a 20 73 69 7a 65 | 20 6f 66 20 74 65 78 74 |./* size| of text|
|00000a40| 20 66 6f 72 20 74 68 69 | 73 20 66 69 6c 65 20 2a | for thi|s file *|
|00000a50| 2f 0a 58 2b 20 09 6c 6f | 6e 67 09 09 70 73 79 6d |/.X+ .lo|ng..psym|
|00000a60| 6f 66 66 3b 09 2f 2a 20 | 70 73 79 6d 73 20 74 61 |off;./* |psyms ta|
|00000a70| 62 6c 65 20 2a 2f 0a 58 | 2b 20 09 6c 6f 6e 67 09 |ble */.X|+ .long.|
|00000a80| 09 73 74 72 74 61 62 6f | 66 66 3b 09 2f 2a 20 73 |.strtabo|ff;./* s|
|00000a90| 74 72 69 6e 67 20 74 61 | 62 6c 65 20 61 6b 61 20 |tring ta|ble aka |
|00000aa0| 24 24 54 59 50 45 53 20 | 2a 2f 0a 58 2b 20 09 6c |$$TYPES |*/.X+ .l|
|00000ab0| 6f 6e 67 09 09 6e 74 61 | 62 6f 66 66 3b 09 2f 2a |ong..nta|boff;./*|
|00000ac0| 20 6e 6c 69 73 74 20 74 | 61 62 6c 65 20 61 6b 61 | nlist t|able aka|
|00000ad0| 20 24 24 53 59 4d 42 4f | 4c 53 20 2a 2f 0a 58 2b | $$SYMBO|LS */.X+|
|00000ae0| 20 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 | .unsign|ed short|
|00000af0| 09 70 73 79 6d 73 7a 3b | 09 09 2f 2a 20 73 69 7a |.psymsz;|../* siz|
|00000b00| 65 20 6f 66 20 70 73 79 | 6d 73 20 74 61 62 6c 65 |e of psy|ms table|
|00000b10| 20 2a 2f 0a 58 2b 20 09 | 75 6e 73 69 67 6e 65 64 | */.X+ .|unsigned|
|00000b20| 20 73 68 6f 72 74 09 73 | 74 72 74 61 62 73 7a 3b | short.s|trtabsz;|
|00000b30| 09 2f 2a 20 73 69 7a 65 | 20 6f 66 20 73 74 72 69 |./* size| of stri|
|00000b40| 6e 67 20 74 61 62 6c 65 | 20 2a 2f 0a 58 2b 20 09 |ng table| */.X+ .|
|00000b50| 75 6e 73 69 67 6e 65 64 | 20 73 68 6f 72 74 09 6e |unsigned| short.n|
|00000b60| 74 61 62 73 7a 3b 09 09 | 2f 2a 20 73 69 7a 65 20 |tabsz;..|/* size |
|00000b70| 6f 66 20 6e 6c 69 73 74 | 20 74 61 62 6c 65 20 2a |of nlist| table *|
|00000b80| 2f 0a 58 2b 20 09 69 6e | 74 09 09 6d 73 63 64 65 |/.X+ .in|t..mscde|
|00000b90| 62 75 67 69 6e 66 6f 3b | 09 2f 2a 20 63 6f 6d 70 |buginfo;|./* comp|
|00000ba0| 69 6c 65 64 20 77 69 74 | 68 20 63 63 20 2d 67 20 |iled wit|h cc -g |
|00000bb0| 6e 6f 74 20 67 63 63 20 | 2d 67 20 2a 2f 0a 58 2b |not gcc |-g */.X+|
|00000bc0| 20 09 63 68 61 72 09 09 | 2a 66 69 6c 65 6e 61 6d | .char..|*filenam|
|00000bd0| 65 3b 09 2f 2a 20 6e 61 | 6d 65 20 6f 66 20 74 68 |e;./* na|me of th|
|00000be0| 69 73 20 66 69 6c 65 20 | 2a 2f 0a 58 2b 20 09 73 |is file |*/.X+ .s|
|00000bf0| 74 72 75 63 74 20 66 69 | 6c 65 69 6e 66 6f 20 2a |truct fi|leinfo *|
|00000c00| 6e 65 78 74 3b 0a 58 2b | 20 7d 3b 0a 58 2b 20 0a |next;.X+| };.X+ .|
|00000c10| 58 2b 20 73 74 61 74 69 | 63 20 73 74 72 75 63 74 |X+ stati|c struct|
|00000c20| 20 66 69 6c 65 69 6e 66 | 6f 20 2a 66 69 5f 74 61 | fileinf|o *fi_ta|
|00000c30| 62 6c 65 20 3d 20 30 3b | 0a 58 2b 20 73 74 72 75 |ble = 0;|.X+ stru|
|00000c40| 63 74 20 78 73 65 67 20 | 2a 73 65 67 5f 74 61 62 |ct xseg |*seg_tab|
|00000c50| 6c 65 3b 0a 58 2b 20 6c | 6f 6e 67 20 6e 75 6d 5f |le;.X+ l|ong num_|
|00000c60| 73 65 67 5f 74 61 62 6c | 65 5f 65 6e 74 72 69 65 |seg_tabl|e_entrie|
|00000c70| 73 3b 0a 58 2b 20 0a 58 | 2b 20 23 69 66 64 65 66 |s;.X+ .X|+ #ifdef|
|00000c80| 20 5f 5f 47 4e 55 43 5f | 5f 0a 58 2b 20 23 64 65 | __GNUC_|_.X+ #de|
|00000c90| 66 69 6e 65 20 61 6c 6c | 6f 63 61 20 5f 5f 62 75 |fine all|oca __bu|
|00000ca0| 69 6c 74 69 6e 5f 61 6c | 6c 6f 63 61 0a 58 2b 20 |iltin_al|loca.X+ |
|00000cb0| 23 65 6e 64 69 66 0a 58 | 2b 20 0a 58 2b 20 23 64 |#endif.X|+ .X+ #d|
|00000cc0| 65 66 69 6e 65 20 49 47 | 4e 4f 52 45 5f 41 54 54 |efine IG|NORE_ATT|
|00000cd0| 52 20 28 2d 31 29 0a 58 | 2b 20 0a 58 2b 20 73 74 |R (-1).X|+ .X+ st|
|00000ce0| 61 74 69 63 20 72 65 61 | 64 5f 66 69 6c 65 69 6e |atic rea|d_filein|
|00000cf0| 66 6f 5f 74 61 62 6c 65 | 28 66 70 2c 20 73 65 67 |fo_table|(fp, seg|
|00000d00| 73 69 7a 65 2c 20 6e 61 | 6d 65 29 0a 58 2b 20 46 |size, na|me).X+ F|
|00000d10| 49 4c 45 20 2a 66 70 3b | 0a 58 2b 20 69 6e 74 20 |ILE *fp;|.X+ int |
|00000d20| 73 65 67 73 69 7a 65 3b | 0a 58 2b 20 63 68 61 72 |segsize;|.X+ char|
|00000d30| 20 2a 6e 61 6d 65 3b 0a | 58 2b 20 7b 0a 58 2b 20 | *name;.|X+ {.X+ |
|00000d40| 20 20 65 78 74 65 72 6e | 20 63 68 61 72 20 2a 73 | extern| char *s|
|00000d50| 74 72 72 63 68 72 28 29 | 2c 20 2a 78 6d 61 6c 6c |trrchr()|, *xmall|
|00000d60| 6f 63 28 29 3b 0a 58 2b | 20 20 20 63 68 61 72 20 |oc();.X+| char |
|00000d70| 2a 66 69 5f 6e 61 6d 65 | 3b 0a 58 2b 20 20 20 63 |*fi_name|;.X+ c|
|00000d80| 68 61 72 20 2a 66 69 6c | 65 6e 61 6d 65 3b 0a 58 |har *fil|ename;.X|
|00000d90| 2b 20 20 20 73 74 72 75 | 63 74 20 73 65 63 74 69 |+ stru|ct secti|
|00000da0| 6f 6e 32 20 66 69 5f 65 | 6e 74 72 79 3b 0a 58 2b |on2 fi_e|ntry;.X+|
|00000db0| 20 20 20 73 74 72 75 63 | 74 20 66 69 6c 65 69 6e | struc|t filein|
|00000dc0| 66 6f 20 2a 66 69 3b 0a | 58 2b 20 0a 58 2b 20 20 |fo *fi;.|X+ .X+ |
|00000dd0| 20 66 69 5f 74 61 62 6c | 65 20 3d 20 66 69 20 3d | fi_tabl|e = fi =|
|00000de0| 20 28 73 74 72 75 63 74 | 20 66 69 6c 65 69 6e 66 | (struct| fileinf|
|00000df0| 6f 20 2a 29 78 6d 61 6c | 6c 6f 63 28 73 69 7a 65 |o *)xmal|loc(size|
|00000e00| 6f 66 28 73 74 72 75 63 | 74 20 66 69 6c 65 69 6e |of(struc|t filein|
|00000e10| 66 6f 29 29 3b 0a 58 2b | 20 20 20 77 68 69 6c 65 |fo));.X+| while|
|00000e20| 20 28 73 65 67 73 69 7a | 65 20 3e 20 30 29 0a 58 | (segsiz|e > 0).X|
|00000e30| 2b 20 20 20 7b 0a 58 2b | 20 20 20 20 20 69 66 20 |+ {.X+| if |
|00000e40| 28 28 66 72 65 61 64 28 | 28 63 68 61 72 20 2a 29 |((fread(|(char *)|
|00000e50| 26 66 69 5f 65 6e 74 72 | 79 2e 73 65 67 6d 65 6e |&fi_entr|y.segmen|
|00000e60| 74 2c 20 73 69 7a 65 6f | 66 28 73 68 6f 72 74 29 |t, sizeo|f(short)|
|00000e70| 2c 20 31 2c 20 66 70 29 | 20 21 3d 20 31 29 0a 58 |, 1, fp)| != 1).X|
|00000e80| 2b 20 20 20 20 20 20 20 | 7c 7c 20 28 66 72 65 61 |+ ||| (frea|
|00000e90| 64 28 28 63 68 61 72 20 | 2a 29 26 66 69 5f 65 6e |d((char |*)&fi_en|
|00000ea0| 74 72 79 2e 61 64 64 72 | 65 73 73 2c 20 73 69 7a |try.addr|ess, siz|
|00000eb0| 65 6f 66 28 43 4f 52 45 | 5f 41 44 44 52 29 2c 20 |eof(CORE|_ADDR), |
|00000ec0| 31 2c 20 66 70 29 20 21 | 3d 20 31 29 0a 58 2b 20 |1, fp) !|= 1).X+ |
|00000ed0| 20 20 20 20 20 20 7c 7c | 20 28 66 72 65 61 64 28 | ||| (fread(|
|00000ee0| 28 63 68 61 72 20 2a 29 | 26 66 69 5f 65 6e 74 72 |(char *)|&fi_entr|
|00000ef0| 79 2e 74 65 78 74 73 69 | 7a 65 2c 20 73 69 7a 65 |y.textsi|ze, size|
|00000f00| 6f 66 28 75 6e 73 69 67 | 6e 65 64 20 73 68 6f 72 |of(unsig|ned shor|
|00000f10| 74 29 2c 31 2c 66 70 29 | 20 21 3d 20 31 29 0a 58 |t),1,fp)| != 1).X|
|00000f20| 2b 20 20 20 20 20 20 20 | 7c 7c 20 28 66 72 65 61 |+ ||| (frea|
|00000f30| 64 28 28 63 68 61 72 20 | 2a 29 26 66 69 5f 65 6e |d((char |*)&fi_en|
|00000f40| 74 72 79 2e 74 79 70 65 | 33 6f 66 66 2c 20 73 69 |try.type|3off, si|
|00000f50| 7a 65 6f 66 28 6c 6f 6e | 67 29 2c 20 31 2c 20 66 |zeof(lon|g), 1, f|
|00000f60| 70 29 20 21 3d 20 31 29 | 0a 58 2b 20 20 20 20 20 |p) != 1)|.X+ |
|00000f70| 20 20 7c 7c 20 28 66 72 | 65 61 64 28 28 63 68 61 | || (fr|ead((cha|
|00000f80| 72 20 2a 29 26 66 69 5f | 65 6e 74 72 79 2e 74 79 |r *)&fi_|entry.ty|
|00000f90| 70 65 34 6f 66 66 2c 20 | 73 69 7a 65 6f 66 28 6c |pe4off, |sizeof(l|
|00000fa0| 6f 6e 67 29 2c 20 31 2c | 20 66 70 29 20 21 3d 20 |ong), 1,| fp) != |
|00000fb0| 31 29 0a 58 2b 20 20 20 | 20 20 20 20 7c 7c 20 28 |1).X+ | || (|
|00000fc0| 66 72 65 61 64 28 28 63 | 68 61 72 20 2a 29 26 66 |fread((c|har *)&f|
|00000fd0| 69 5f 65 6e 74 72 79 2e | 74 79 70 65 35 6f 66 66 |i_entry.|type5off|
|00000fe0| 2c 20 73 69 7a 65 6f 66 | 28 6c 6f 6e 67 29 2c 20 |, sizeof|(long), |
|00000ff0| 31 2c 20 66 70 29 20 21 | 3d 20 31 29 0a 58 2b 20 |1, fp) !|= 1).X+ |
|00001000| 20 20 20 20 20 20 7c 7c | 20 28 66 72 65 61 64 28 | ||| (fread(|
|00001010| 28 63 68 61 72 20 2a 29 | 26 66 69 5f 65 6e 74 72 |(char *)|&fi_entr|
|00001020| 79 2e 74 79 70 65 36 6f | 66 66 2c 20 73 69 7a 65 |y.type6o|ff, size|
|00001030| 6f 66 28 6c 6f 6e 67 29 | 2c 20 31 2c 20 66 70 29 |of(long)|, 1, fp)|
|00001040| 20 21 3d 20 31 29 0a 58 | 2b 20 20 20 20 20 20 20 | != 1).X|+ |
|00001050| 7c 7c 20 28 66 72 65 61 | 64 28 28 63 68 61 72 20 ||| (frea|d((char |
|00001060| 2a 29 26 66 69 5f 65 6e | 74 72 79 2e 74 79 70 65 |*)&fi_en|try.type|
|00001070| 33 73 7a 2c 20 73 69 7a | 65 6f 66 28 75 6e 73 69 |3sz, siz|eof(unsi|
|00001080| 67 6e 65 64 20 73 68 6f | 72 74 29 2c 31 2c 66 70 |gned sho|rt),1,fp|
|00001090| 29 20 21 3d 20 31 29 0a | 58 2b 20 20 20 20 20 20 |) != 1).|X+ |
|000010a0| 20 7c 7c 20 28 66 72 65 | 61 64 28 28 63 68 61 72 | || (fre|ad((char|
|000010b0| 20 2a 29 26 66 69 5f 65 | 6e 74 72 79 2e 74 79 70 | *)&fi_e|ntry.typ|
|000010c0| 65 34 73 7a 2c 20 73 69 | 7a 65 6f 66 28 75 6e 73 |e4sz, si|zeof(uns|
|000010d0| 69 67 6e 65 64 20 73 68 | 6f 72 74 29 2c 31 2c 66 |igned sh|ort),1,f|
|000010e0| 70 29 20 21 3d 20 31 29 | 0a 58 2b 20 20 20 20 20 |p) != 1)|.X+ |
|000010f0| 20 20 7c 7c 20 28 66 72 | 65 61 64 28 28 63 68 61 | || (fr|ead((cha|
|00001100| 72 20 2a 29 26 66 69 5f | 65 6e 74 72 79 2e 74 79 |r *)&fi_|entry.ty|
|00001110| 70 65 35 73 7a 2c 20 73 | 69 7a 65 6f 66 28 75 6e |pe5sz, s|izeof(un|
|00001120| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 29 2c 31 2c |signed s|hort),1,|
|00001130| 66 70 29 20 21 3d 20 31 | 29 0a 58 2b 20 20 20 20 |fp) != 1|).X+ |
|00001140| 20 20 20 7c 7c 20 28 66 | 72 65 61 64 28 28 63 68 | || (f|read((ch|
|00001150| 61 72 20 2a 29 26 66 69 | 5f 65 6e 74 72 79 2e 74 |ar *)&fi|_entry.t|
|00001160| 79 70 65 36 73 7a 2c 20 | 73 69 7a 65 6f 66 28 75 |ype6sz, |sizeof(u|
|00001170| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 29 2c 31 |nsigned |short),1|
|00001180| 2c 66 70 29 20 21 3d 20 | 31 29 0a 58 2b 20 20 20 |,fp) != |1).X+ |
|00001190| 20 20 20 20 7c 7c 20 28 | 66 72 65 61 64 28 28 63 | || (|fread((c|
|000011a0| 68 61 72 20 2a 29 26 66 | 69 5f 65 6e 74 72 79 2e |har *)&f|i_entry.|
|000011b0| 66 69 6c 65 6c 65 6e 2c | 20 73 69 7a 65 6f 66 28 |filelen,| sizeof(|
|000011c0| 63 68 61 72 29 2c 20 31 | 2c 20 66 70 29 20 21 3d |char), 1|, fp) !=|
|000011d0| 20 31 29 29 0a 58 2b 20 | 20 20 20 20 20 20 70 65 | 1)).X+ | pe|
|000011e0| 72 72 6f 72 5f 77 69 74 | 68 5f 6e 61 6d 65 28 6e |rror_wit|h_name(n|
|000011f0| 61 6d 65 29 3b 0a 58 2b | 20 0a 58 2b 20 20 20 20 |ame);.X+| .X+ |
|00001200| 20 73 65 67 73 69 7a 65 | 20 2d 3d 20 73 69 7a 65 | segsize| -= size|
|00001210| 6f 66 28 73 68 6f 72 74 | 29 20 2b 20 73 69 7a 65 |of(short|) + size|
|00001220| 6f 66 28 43 4f 52 45 5f | 41 44 44 52 29 20 2b 20 |of(CORE_|ADDR) + |
|00001230| 35 20 2a 20 73 69 7a 65 | 6f 66 28 75 6e 73 69 67 |5 * size|of(unsig|
|00001240| 6e 65 64 20 73 68 6f 72 | 74 29 0a 58 2b 20 09 20 |ned shor|t).X+ . |
|00001250| 20 20 20 20 20 20 2b 20 | 34 20 2a 20 73 69 7a 65 | + |4 * size|
|00001260| 6f 66 28 6c 6f 6e 67 29 | 20 2b 20 73 69 7a 65 6f |of(long)| + sizeo|
|00001270| 66 28 63 68 61 72 29 3b | 0a 58 2b 20 0a 58 2b 20 |f(char);|.X+ .X+ |
|00001280| 20 20 20 20 66 69 5f 6e | 61 6d 65 20 3d 20 61 6c | fi_n|ame = al|
|00001290| 6c 6f 63 61 28 66 69 5f | 65 6e 74 72 79 2e 66 69 |loca(fi_|entry.fi|
|000012a0| 6c 65 6c 65 6e 20 2b 20 | 31 29 3b 0a 58 2b 20 20 |lelen + |1);.X+ |
|000012b0| 20 20 20 69 66 20 28 66 | 72 65 61 64 28 66 69 5f | if (f|read(fi_|
|000012c0| 6e 61 6d 65 2c 20 66 69 | 5f 65 6e 74 72 79 2e 66 |name, fi|_entry.f|
|000012d0| 69 6c 65 6c 65 6e 2c 20 | 31 2c 20 66 70 29 20 21 |ilelen, |1, fp) !|
|000012e0| 3d 20 31 29 0a 58 2b 20 | 20 20 20 20 20 20 70 65 |= 1).X+ | pe|
|000012f0| 72 72 6f 72 5f 77 69 74 | 68 5f 6e 61 6d 65 28 6e |rror_wit|h_name(n|
|00001300| 61 6d 65 29 3b 0a 58 2b | 20 20 20 20 20 66 69 5f |ame);.X+| fi_|
|00001310| 6e 61 6d 65 5b 66 69 5f | 65 6e 74 72 79 2e 66 69 |name[fi_|entry.fi|
|00001320| 6c 65 6c 65 6e 5d 20 3d | 20 27 5c 30 27 3b 0a 58 |lelen] =| '\0';.X|
|00001330| 2b 20 20 20 20 20 73 65 | 67 73 69 7a 65 20 2d 3d |+ se|gsize -=|
|00001340| 20 66 69 5f 65 6e 74 72 | 79 2e 66 69 6c 65 6c 65 | fi_entr|y.filele|
|00001350| 6e 3b 0a 58 2b 20 0a 58 | 2b 20 20 20 20 20 69 66 |n;.X+ .X|+ if|
|00001360| 20 28 28 66 69 6c 65 6e | 61 6d 65 20 3d 20 73 74 | ((filen|ame = st|
|00001370| 72 72 63 68 72 28 66 69 | 5f 6e 61 6d 65 2c 20 27 |rrchr(fi|_name, '|
|00001380| 2f 27 29 29 20 21 3d 20 | 28 63 68 61 72 20 2a 29 |/')) != |(char *)|
|00001390| 30 29 0a 58 2b 20 20 20 | 20 20 20 20 66 69 5f 6e |0).X+ | fi_n|
|000013a0| 61 6d 65 20 3d 20 66 69 | 6c 65 6e 61 6d 65 20 2b |ame = fi|lename +|
|000013b0| 20 31 3b 0a 58 2b 20 0a | 58 2b 20 20 20 20 20 69 | 1;.X+ .|X+ i|
|000013c0| 66 20 28 28 66 69 6c 65 | 6e 61 6d 65 20 3d 20 73 |f ((file|name = s|
|000013d0| 74 72 72 63 68 72 28 66 | 69 5f 6e 61 6d 65 2c 20 |trrchr(f|i_name, |
|000013e0| 27 28 27 29 29 20 21 3d | 20 28 63 68 61 72 20 2a |'(')) !=| (char *|
|000013f0| 29 30 29 0a 58 2b 20 20 | 20 20 20 20 20 66 69 5f |)0).X+ | fi_|
|00001400| 6e 61 6d 65 20 3d 20 66 | 69 6c 65 6e 61 6d 65 20 |name = f|ilename |
|00001410| 2b 20 31 3b 0a 58 2b 20 | 0a 58 2b 20 20 20 20 20 |+ 1;.X+ |.X+ |
|00001420| 69 66 20 28 28 66 69 6c | 65 6e 61 6d 65 20 3d 20 |if ((fil|ename = |
|00001430| 73 74 72 72 63 68 72 28 | 66 69 5f 6e 61 6d 65 2c |strrchr(|fi_name,|
|00001440| 20 27 29 27 29 29 20 21 | 3d 20 28 63 68 61 72 20 | ')')) !|= (char |
|00001450| 2a 29 30 29 0a 58 2b 20 | 20 20 20 20 20 20 20 20 |*)0).X+ | |
|00001460| 2a 66 69 6c 65 6e 61 6d | 65 20 3d 20 27 5c 30 27 |*filenam|e = '\0'|
|00001470| 3b 0a 58 2b 20 20 20 20 | 0a 58 2b 20 20 20 20 20 |;.X+ |.X+ |
|00001480| 7b 0a 58 2b 20 20 20 20 | 20 20 20 69 6e 74 20 6c |{.X+ | int l|
|00001490| 65 6e 20 3d 20 73 74 72 | 6c 65 6e 28 66 69 5f 6e |en = str|len(fi_n|
|000014a0| 61 6d 65 29 3b 0a 58 2b | 20 0a 58 2b 20 20 20 20 |ame);.X+| .X+ |
|000014b0| 20 20 20 69 66 20 28 6c | 65 6e 20 3e 20 32 20 26 | if (l|en > 2 &|
|000014c0| 26 20 66 69 5f 6e 61 6d | 65 5b 6c 65 6e 20 2d 20 |& fi_nam|e[len - |
|000014d0| 31 5d 20 3d 3d 20 27 6f | 27 20 26 26 20 66 69 5f |1] == 'o|' && fi_|
|000014e0| 6e 61 6d 65 5b 6c 65 6e | 20 2d 20 32 5d 20 3d 3d |name[len| - 2] ==|
|000014f0| 20 27 2e 27 29 0a 58 2b | 20 20 20 20 20 20 20 66 | '.').X+| f|
|00001500| 69 5f 6e 61 6d 65 5b 6c | 65 6e 20 2d 20 31 5d 20 |i_name[l|en - 1] |
|00001510| 3d 20 27 63 27 3b 0a 58 | 2b 20 20 20 20 20 7d 0a |= 'c';.X|+ }.|
|00001520| 58 2b 20 0a 58 2b 20 20 | 20 20 20 66 69 5f 6e 61 |X+ .X+ | fi_na|
|00001530| 6d 65 20 3d 20 73 61 76 | 65 73 74 72 69 6e 67 28 |me = sav|estring(|
|00001540| 66 69 5f 6e 61 6d 65 2c | 20 73 74 72 6c 65 6e 28 |fi_name,| strlen(|
|00001550| 66 69 5f 6e 61 6d 65 29 | 20 2b 20 31 29 3b 0a 58 |fi_name)| + 1);.X|
|00001560| 2b 20 0a 58 2b 20 20 20 | 20 20 66 69 2d 3e 6e 65 |+ .X+ | fi->ne|
|00001570| 78 74 20 3d 20 28 73 74 | 72 75 63 74 20 66 69 6c |xt = (st|ruct fil|
|00001580| 65 69 6e 66 6f 20 2a 29 | 78 6d 61 6c 6c 6f 63 28 |einfo *)|xmalloc(|
|00001590| 73 69 7a 65 6f 66 28 73 | 74 72 75 63 74 20 66 69 |sizeof(s|truct fi|
|000015a0| 6c 65 69 6e 66 6f 29 29 | 3b 0a 58 2b 20 20 20 20 |leinfo))|;.X+ |
|000015b0| 20 66 69 20 3d 20 66 69 | 2d 3e 6e 65 78 74 3b 0a | fi = fi|->next;.|
|000015c0| 58 2b 20 0a 58 2b 20 20 | 20 20 20 66 69 2d 3e 61 |X+ .X+ | fi->a|
|000015d0| 64 64 72 65 73 73 20 3d | 20 66 69 5f 65 6e 74 72 |ddress =| fi_entr|
|000015e0| 79 2e 61 64 64 72 65 73 | 73 3b 0a 58 2b 20 20 20 |y.addres|s;.X+ |
|000015f0| 20 20 66 69 2d 3e 74 65 | 78 74 73 69 7a 65 20 3d | fi->te|xtsize =|
|00001600| 20 66 69 5f 65 6e 74 72 | 79 2e 74 65 78 74 73 69 | fi_entr|y.textsi|
|00001610| 7a 65 3b 0a 58 2b 20 20 | 20 20 20 66 69 2d 3e 70 |ze;.X+ | fi->p|
|00001620| 73 79 6d 6f 66 66 20 3d | 20 66 69 5f 65 6e 74 72 |symoff =| fi_entr|
|00001630| 79 2e 74 79 70 65 33 6f | 66 66 3b 0a 58 2b 20 20 |y.type3o|ff;.X+ |
|00001640| 20 20 20 66 69 2d 3e 70 | 73 79 6d 73 7a 20 3d 20 | fi->p|symsz = |
|00001650| 66 69 5f 65 6e 74 72 79 | 2e 74 79 70 65 33 73 7a |fi_entry|.type3sz|
|00001660| 3b 0a 58 2b 20 20 20 20 | 20 66 69 2d 3e 73 74 72 |;.X+ | fi->str|
|00001670| 74 61 62 6f 66 66 20 3d | 20 66 69 5f 65 6e 74 72 |taboff =| fi_entr|
|00001680| 79 2e 74 79 70 65 34 6f | 66 66 3b 0a 58 2b 20 20 |y.type4o|ff;.X+ |
|00001690| 20 20 20 66 69 2d 3e 73 | 74 72 74 61 62 73 7a 20 | fi->s|trtabsz |
|000016a0| 3d 20 66 69 5f 65 6e 74 | 72 79 2e 74 79 70 65 34 |= fi_ent|ry.type4|
|000016b0| 73 7a 3b 0a 58 2b 20 20 | 20 20 20 66 69 2d 3e 6e |sz;.X+ | fi->n|
|000016c0| 74 61 62 6f 66 66 20 3d | 20 66 69 5f 65 6e 74 72 |taboff =| fi_entr|
|000016d0| 79 2e 74 79 70 65 35 6f | 66 66 3b 0a 58 2b 20 20 |y.type5o|ff;.X+ |
|000016e0| 20 20 20 66 69 2d 3e 6e | 74 61 62 73 7a 20 3d 20 | fi->n|tabsz = |
|000016f0| 66 69 5f 65 6e 74 72 79 | 2e 74 79 70 65 35 73 7a |fi_entry|.type5sz|
|00001700| 3b 0a 58 2b 20 20 20 20 | 20 66 69 2d 3e 6d 73 63 |;.X+ | fi->msc|
|00001710| 64 65 62 75 67 69 6e 66 | 6f 20 3d 20 28 66 69 5f |debuginf|o = (fi_|
|00001720| 65 6e 74 72 79 2e 74 79 | 70 65 36 73 7a 20 21 3d |entry.ty|pe6sz !=|
|00001730| 20 30 29 3b 0a 58 2b 20 | 20 20 20 20 66 69 2d 3e | 0);.X+ | fi->|
|00001740| 66 69 6c 65 6e 61 6d 65 | 20 3d 20 66 69 5f 6e 61 |filename| = fi_na|
|00001750| 6d 65 3b 0a 58 2b 20 20 | 20 7d 0a 58 2b 20 20 20 |me;.X+ | }.X+ |
|00001760| 66 69 2d 3e 6e 65 78 74 | 20 3d 20 30 3b 20 20 66 |fi->next| = 0; f|
|00001770| 69 20 3d 20 66 69 5f 74 | 61 62 6c 65 3b 20 20 66 |i = fi_t|able; f|
|00001780| 69 5f 74 61 62 6c 65 20 | 3d 20 66 69 5f 74 61 62 |i_table |= fi_tab|
|00001790| 6c 65 2d 3e 6e 65 78 74 | 3b 20 20 66 72 65 65 28 |le->next|; free(|
|000017a0| 66 69 29 3b 0a 58 2b 20 | 0a 58 2b 20 23 69 66 64 |fi);.X+ |.X+ #ifd|
|000017b0| 65 66 20 58 5f 44 45 42 | 55 47 0a 58 2b 20 20 20 |ef X_DEB|UG.X+ |
|000017c0| 20 20 70 72 69 6e 74 66 | 28 22 5c 6e 61 64 64 72 | printf|("\naddr|
|000017d0| 65 73 73 20 20 20 74 65 | 78 74 73 7a 20 20 73 79 |ess te|xtsz sy|
|000017e0| 6d 6f 66 66 20 20 20 73 | 79 6d 73 7a 20 20 73 74 |moff s|ymsz st|
|000017f0| 72 6f 66 66 20 20 20 73 | 74 72 73 7a 20 20 74 61 |roff s|trsz ta|
|00001800| 62 6f 66 66 20 20 20 74 | 61 62 73 7a 20 20 6e 61 |boff t|absz na|
|00001810| 6d 65 5c 6e 5c 6e 22 29 | 3b 0a 58 2b 20 20 20 66 |me\n\n")|;.X+ f|
|00001820| 6f 72 20 28 66 69 20 3d | 20 66 69 5f 74 61 62 6c |or (fi =| fi_tabl|
|00001830| 65 3b 20 66 69 20 21 3d | 20 30 3b 20 66 69 20 3d |e; fi !=| 0; fi =|
|00001840| 20 66 69 2d 3e 6e 65 78 | 74 29 0a 58 2b 20 20 20 | fi->nex|t).X+ |
|00001850| 7b 0a 58 2b 20 20 20 20 | 20 70 72 69 6e 74 66 28 |{.X+ | printf(|
|00001860| 22 25 20 38 78 20 20 25 | 20 36 64 20 20 25 20 36 |"% 8x %| 6d % 6|
|00001870| 64 20 20 25 20 36 64 20 | 20 25 20 36 64 20 20 25 |d % 6d | % 6d %|
|00001880| 20 36 64 20 20 25 20 36 | 64 20 20 25 36 64 20 20 | 6d % 6|d %6d |
|00001890| 25 73 5c 6e 22 2c 20 66 | 69 2d 3e 61 64 64 72 65 |%s\n", f|i->addre|
|000018a0| 73 73 2c 20 66 69 2d 3e | 74 65 78 74 73 69 7a 65 |ss, fi->|textsize|
|000018b0| 2c 20 66 69 2d 3e 70 73 | 79 6d 6f 66 66 2c 20 66 |, fi->ps|ymoff, f|
|000018c0| 69 2d 3e 70 73 79 6d 73 | 7a 2c 20 66 69 2d 3e 73 |i->psyms|z, fi->s|
|000018d0| 74 72 74 61 62 6f 66 66 | 2c 20 66 69 2d 3e 73 74 |trtaboff|, fi->st|
|000018e0| 72 74 61 62 73 7a 2c 20 | 66 69 2d 3e 6e 74 61 62 |rtabsz, |fi->ntab|
|000018f0| 6f 66 66 2c 20 66 69 2d | 3e 6e 74 61 62 73 7a 2c |off, fi-|>ntabsz,|
|00001900| 20 66 69 2d 3e 66 69 6c | 65 6e 61 6d 65 29 3b 0a | fi->fil|ename);.|
|00001910| 58 2b 20 20 20 7d 0a 58 | 2b 20 20 20 70 72 69 6e |X+ }.X|+ prin|
|00001920| 74 66 28 22 5c 6e 22 29 | 3b 0a 58 2b 20 23 65 6e |tf("\n")|;.X+ #en|
|00001930| 64 69 66 20 2f 2a 20 58 | 5f 44 45 42 55 47 20 2a |dif /* X|_DEBUG *|
|00001940| 2f 0a 58 2b 20 7d 0a 58 | 2b 20 0a 58 2b 20 73 74 |/.X+ }.X|+ .X+ st|
|00001950| 61 74 69 63 20 72 65 61 | 64 5f 73 65 67 5f 74 61 |atic rea|d_seg_ta|
|00001960| 62 6c 65 28 66 70 2c 20 | 70 6f 73 2c 20 73 69 7a |ble(fp, |pos, siz|
|00001970| 65 2c 20 6e 61 6d 65 29 | 0a 58 2b 20 46 49 4c 45 |e, name)|.X+ FILE|
|00001980| 20 2a 66 70 3b 0a 58 2b | 20 6c 6f 6e 67 20 70 6f | *fp;.X+| long po|
|00001990| 73 2c 20 73 69 7a 65 3b | 0a 58 2b 20 7b 0a 58 2b |s, size;|.X+ {.X+|
|000019a0| 20 20 20 73 65 67 5f 74 | 61 62 6c 65 20 3d 20 28 | seg_t|able = (|
|000019b0| 73 74 72 75 63 74 20 78 | 73 65 67 20 2a 29 20 78 |struct x|seg *) x|
|000019c0| 6d 61 6c 6c 6f 63 28 73 | 69 7a 65 29 3b 0a 58 2b |malloc(s|ize);.X+|
|000019d0| 20 20 20 66 73 65 65 6b | 28 66 70 2c 20 70 6f 73 | fseek|(fp, pos|
|000019e0| 2c 20 30 29 3b 0a 58 2b | 20 20 20 69 66 20 28 66 |, 0);.X+| if (f|
|000019f0| 72 65 61 64 28 28 63 68 | 61 72 20 2a 29 73 65 67 |read((ch|ar *)seg|
|00001a00| 5f 74 61 62 6c 65 2c 20 | 73 69 7a 65 2c 20 31 2c |_table, |size, 1,|
|00001a10| 20 66 70 29 20 21 3d 20 | 31 29 0a 58 2b 20 20 20 | fp) != |1).X+ |
|00001a20| 20 20 70 65 72 72 6f 72 | 5f 77 69 74 68 5f 6e 61 | perror|_with_na|
|00001a30| 6d 65 28 6e 61 6d 65 29 | 3b 0a 58 2b 20 20 20 6e |me(name)|;.X+ n|
|00001a40| 75 6d 5f 73 65 67 5f 74 | 61 62 6c 65 5f 65 6e 74 |um_seg_t|able_ent|
|00001a50| 72 69 65 73 20 3d 20 73 | 69 7a 65 20 2f 20 73 69 |ries = s|ize / si|
|00001a60| 7a 65 6f 66 20 28 73 74 | 72 75 63 74 20 78 73 65 |zeof (st|ruct xse|
|00001a70| 67 29 3b 0a 58 2b 20 7d | 0a 58 2b 20 0a 58 2b 20 |g);.X+ }|.X+ .X+ |
|00001a80| 0a 58 2b 20 73 74 72 75 | 63 74 20 78 73 65 67 20 |.X+ stru|ct xseg |
|00001a90| 2a 66 69 6e 64 5f 73 65 | 67 6d 65 6e 74 28 74 79 |*find_se|gment(ty|
|00001aa0| 70 65 2c 20 61 74 74 72 | 29 0a 58 2b 20 69 6e 74 |pe, attr|).X+ int|
|00001ab0| 20 74 79 70 65 2c 20 61 | 74 74 72 3b 0a 58 2b 20 | type, a|ttr;.X+ |
|00001ac0| 7b 0a 58 2b 20 20 20 73 | 74 72 75 63 74 20 78 73 |{.X+ s|truct xs|
|00001ad0| 65 67 20 2a 63 73 65 67 | 3b 0a 58 2b 20 0a 58 2b |eg *cseg|;.X+ .X+|
|00001ae0| 20 20 20 66 6f 72 20 28 | 63 73 65 67 20 3d 20 73 | for (|cseg = s|
|00001af0| 65 67 5f 74 61 62 6c 65 | 3b 20 63 73 65 67 20 3c |eg_table|; cseg <|
|00001b00| 20 73 65 67 5f 74 61 62 | 6c 65 20 2b 20 6e 75 6d | seg_tab|le + num|
|00001b10| 5f 73 65 67 5f 74 61 62 | 6c 65 5f 65 6e 74 72 69 |_seg_tab|le_entri|
|00001b20| 65 73 3b 20 2b 2b 63 73 | 65 67 29 0a 58 2b 20 20 |es; ++cs|eg).X+ |
|00001b30| 20 69 66 20 28 63 73 65 | 67 2d 3e 78 73 5f 74 79 | if (cse|g->xs_ty|
|00001b40| 70 65 20 3d 3d 20 74 79 | 70 65 20 26 26 0a 58 2b |pe == ty|pe &&.X+|
|00001b50| 20 20 20 20 20 28 61 74 | 74 72 20 3d 3d 20 49 47 | (at|tr == IG|
|00001b60| 4e 4f 52 45 5f 41 54 54 | 52 20 7c 7c 20 61 74 74 |NORE_ATT|R || att|
|00001b70| 72 20 3d 3d 20 63 73 65 | 67 2d 3e 78 73 5f 61 74 |r == cse|g->xs_at|
|00001b80| 74 72 29 29 0a 58 2b 20 | 20 20 20 20 72 65 74 75 |tr)).X+ | retu|
|00001b90| 72 6e 20 63 73 65 67 3b | 0a 58 2b 20 20 20 72 65 |rn cseg;|.X+ re|
|00001ba0| 74 75 72 6e 20 4e 55 4c | 4c 3b 0a 58 2b 20 7d 0a |turn NUL|L;.X+ }.|
|00001bb0| 58 2b 20 0a 58 2b 20 73 | 74 61 74 69 63 20 69 6e |X+ .X+ s|tatic in|
|00001bc0| 74 20 63 6f 6d 70 61 72 | 65 5f 6d 69 73 63 5f 66 |t compar|e_misc_f|
|00001bd0| 75 6e 63 74 69 6f 6e 73 | 20 28 66 6e 31 2c 20 66 |unctions| (fn1, f|
|00001be0| 6e 32 29 0a 58 2b 20 73 | 74 72 75 63 74 20 6d 69 |n2).X+ s|truct mi|
|00001bf0| 73 63 5f 66 75 6e 63 74 | 69 6f 6e 20 2a 66 6e 31 |sc_funct|ion *fn1|
|00001c00| 2c 20 2a 66 6e 32 3b 0a | 58 2b 20 7b 0a 58 2b 20 |, *fn2;.|X+ {.X+ |
|00001c10| 20 20 2f 2a 20 52 65 74 | 75 72 6e 20 61 20 73 69 | /* Ret|urn a si|
|00001c20| 67 6e 65 64 20 72 65 73 | 75 6c 74 20 62 61 73 65 |gned res|ult base|
|00001c30| 64 20 6f 6e 20 75 6e 73 | 69 67 6e 65 64 20 63 6f |d on uns|igned co|
|00001c40| 6d 70 61 72 69 73 6f 6e | 73 0a 58 2b 20 20 20 20 |mparison|s.X+ |
|00001c50| 20 20 73 6f 20 74 68 61 | 74 20 77 65 20 73 6f 72 | so tha|t we sor|
|00001c60| 74 20 69 6e 74 6f 20 75 | 6e 73 69 67 6e 65 64 20 |t into u|nsigned |
|00001c70| 6e 75 6d 65 72 69 63 20 | 6f 72 64 65 72 2e 20 20 |numeric |order. |
|00001c80| 2a 2f 0a 58 2b 20 0a 58 | 2b 20 20 20 69 66 20 28 |*/.X+ .X|+ if (|
|00001c90| 66 6e 31 2d 3e 61 64 64 | 72 65 73 73 20 3c 20 66 |fn1->add|ress < f|
|00001ca0| 6e 32 2d 3e 61 64 64 72 | 65 73 73 29 0a 58 2b 20 |n2->addr|ess).X+ |
|00001cb0| 20 20 20 20 72 65 74 75 | 72 6e 20 2d 31 3b 0a 58 | retu|rn -1;.X|
|00001cc0| 2b 20 20 20 69 66 20 28 | 66 6e 31 2d 3e 61 64 64 |+ if (|fn1->add|
|00001cd0| 72 65 73 73 20 3e 20 66 | 6e 32 2d 3e 61 64 64 72 |ress > f|n2->addr|
|00001ce0| 65 73 73 29 0a 58 2b 20 | 20 20 20 20 72 65 74 75 |ess).X+ | retu|
|00001cf0| 72 6e 20 31 3b 0a 58 2b | 20 20 20 72 65 74 75 72 |rn 1;.X+| retur|
|00001d00| 6e 20 30 3b 0a 58 2b 20 | 7d 0a 58 2b 20 0a 58 2b |n 0;.X+ |}.X+ .X+|
|00001d10| 20 73 74 61 74 69 63 20 | 69 6e 74 20 72 65 61 64 | static |int read|
|00001d20| 5f 6d 69 73 63 5f 66 75 | 6e 63 74 69 6f 6e 73 28 |_misc_fu|nctions(|
|00001d30| 66 70 2c 20 73 65 67 73 | 69 7a 65 2c 20 6e 61 6d |fp, segs|ize, nam|
|00001d40| 65 29 0a 58 2b 20 46 49 | 4c 45 20 2a 66 70 3b 0a |e).X+ FI|LE *fp;.|
|00001d50| 58 2b 20 69 6e 74 20 73 | 65 67 73 69 7a 65 3b 0a |X+ int s|egsize;.|
|00001d60| 58 2b 20 63 68 61 72 20 | 2a 6e 61 6d 65 3b 0a 58 |X+ char |*name;.X|
|00001d70| 2b 20 7b 0a 58 2b 20 20 | 20 63 68 61 72 20 2a 73 |+ {.X+ | char *s|
|00001d80| 79 6d 64 61 74 61 2c 20 | 2a 70 2c 20 2a 73 74 72 |ymdata, |*p, *str|
|00001d90| 5f 62 75 66 66 3b 0a 58 | 2b 20 20 20 6c 6f 6e 67 |_buff;.X|+ long|
|00001da0| 20 73 79 6d 5f 63 6f 75 | 6e 74 20 3d 20 30 2c 20 | sym_cou|nt = 0, |
|00001db0| 73 74 72 5f 63 6f 75 6e | 74 20 3d 20 30 2c 20 69 |str_coun|t = 0, i|
|00001dc0| 3b 0a 58 2b 20 20 20 73 | 74 72 75 63 74 20 6d 69 |;.X+ s|truct mi|
|00001dd0| 73 63 5f 66 75 6e 63 74 | 69 6f 6e 20 2a 6d 69 73 |sc_funct|ion *mis|
|00001de0| 63 70 3b 0a 58 2b 20 20 | 20 73 74 72 75 63 74 20 |cp;.X+ | struct |
|00001df0| 73 79 6d 20 73 79 6d 62 | 3b 0a 58 2b 20 0a 58 2b |sym symb|;.X+ .X+|
|00001e00| 20 20 20 2f 2a 20 67 72 | 61 62 20 74 68 65 20 73 | /* gr|ab the s|
|00001e10| 79 6d 62 6f 6c 20 74 61 | 62 6c 65 20 2a 2f 0a 58 |ymbol ta|ble */.X|
|00001e20| 2b 20 0a 58 2b 20 20 20 | 73 79 6d 64 61 74 61 20 |+ .X+ |symdata |
|00001e30| 3d 20 61 6c 6c 6f 63 61 | 28 73 65 67 73 69 7a 65 |= alloca|(segsize|
|00001e40| 20 2b 20 31 29 3b 0a 58 | 2b 20 20 20 69 66 20 28 | + 1);.X|+ if (|
|00001e50| 66 72 65 61 64 28 73 79 | 6d 64 61 74 61 2c 20 73 |fread(sy|mdata, s|
|00001e60| 65 67 73 69 7a 65 2c 20 | 31 2c 20 66 70 29 20 21 |egsize, |1, fp) !|
|00001e70| 3d 20 31 29 0a 58 2b 20 | 20 20 20 20 20 20 70 65 |= 1).X+ | pe|
|00001e80| 72 72 6f 72 5f 77 69 74 | 68 5f 6e 61 6d 65 28 6e |rror_wit|h_name(n|
|00001e90| 61 6d 65 29 3b 0a 58 2b | 20 0a 58 2b 20 20 20 2f |ame);.X+| .X+ /|
|00001ea0| 2a 20 66 69 72 73 74 20 | 70 61 73 73 2c 20 77 6f |* first |pass, wo|
|00001eb0| 72 6b 20 6f 75 74 20 68 | 6f 77 20 6d 61 6e 79 20 |rk out h|ow many |
|00001ec0| 73 79 6d 62 6f 6c 73 20 | 74 68 65 72 65 20 61 72 |symbols |there ar|
|00001ed0| 65 20 61 6e 64 20 74 68 | 65 20 73 69 7a 65 20 6f |e and th|e size o|
|00001ee0| 66 20 74 68 65 0a 58 2b | 20 20 20 20 2a 20 73 74 |f the.X+| * st|
|00001ef0| 72 69 6e 67 73 0a 58 2b | 20 20 20 20 2a 2f 0a 58 |rings.X+| */.X|
|00001f00| 2b 20 0a 58 2b 20 20 20 | 70 20 3d 20 73 79 6d 64 |+ .X+ |p = symd|
|00001f10| 61 74 61 3b 0a 58 2b 20 | 20 20 77 68 69 6c 65 20 |ata;.X+ | while |
|00001f20| 28 70 20 3c 20 73 79 6d | 64 61 74 61 20 2b 20 73 |(p < sym|data + s|
|00001f30| 65 67 73 69 7a 65 29 0a | 58 2b 20 20 20 7b 0a 58 |egsize).|X+ {.X|
|00001f40| 2b 20 09 69 6e 74 20 6c | 65 6e 3b 0a 58 2b 20 0a |+ .int l|en;.X+ .|
|00001f50| 58 2b 20 09 70 20 2b 3d | 20 73 69 7a 65 6f 66 28 |X+ .p +=| sizeof(|
|00001f60| 73 74 72 75 63 74 20 73 | 79 6d 29 3b 0a 58 2b 20 |struct s|ym);.X+ |
|00001f70| 09 6c 65 6e 20 3d 20 73 | 74 72 6c 65 6e 28 70 29 |.len = s|trlen(p)|
|00001f80| 20 2b 20 31 3b 0a 58 2b | 20 09 73 74 72 5f 63 6f | + 1;.X+| .str_co|
|00001f90| 75 6e 74 20 2b 3d 20 6c | 65 6e 3b 20 20 70 20 2b |unt += l|en; p +|
|00001fa0| 3d 20 6c 65 6e 3b 20 20 | 73 79 6d 5f 63 6f 75 6e |= len; |sym_coun|
|00001fb0| 74 2b 2b 3b 0a 58 2b 20 | 20 20 7d 0a 58 2b 20 0a |t++;.X+ | }.X+ .|
|00001fc0| 58 2b 20 20 20 2f 2a 20 | 4e 6f 77 20 62 75 69 6c |X+ /* |Now buil|
|00001fd0| 64 20 74 68 65 20 6d 69 | 73 63 20 66 75 6e 63 74 |d the mi|sc funct|
|00001fe0| 69 6f 6e 20 76 65 63 74 | 6f 72 20 2a 2f 0a 58 2b |ion vect|or */.X+|
|00001ff0| 20 0a 58 2b 20 20 20 73 | 74 72 5f 62 75 66 66 20 | .X+ s|tr_buff |
|00002000| 3d 20 78 6d 61 6c 6c 6f | 63 28 73 74 72 5f 63 6f |= xmallo|c(str_co|
|00002010| 75 6e 74 2b 31 29 3b 0a | 58 2b 20 20 20 6d 69 73 |unt+1);.|X+ mis|
|00002020| 63 5f 66 75 6e 63 74 69 | 6f 6e 5f 76 65 63 74 6f |c_functi|on_vecto|
|00002030| 72 20 3d 0a 58 2b 20 20 | 20 20 20 28 73 74 72 75 |r =.X+ | (stru|
|00002040| 63 74 20 6d 69 73 63 5f | 66 75 6e 63 74 69 6f 6e |ct misc_|function|
|00002050| 20 2a 29 20 78 6d 61 6c | 6c 6f 63 20 28 73 79 6d | *) xmal|loc (sym|
|00002060| 5f 63 6f 75 6e 74 20 2a | 20 73 69 7a 65 6f 66 28 |_count *| sizeof(|
|00002070| 73 74 72 75 63 74 20 6d | 69 73 63 5f 66 75 6e 63 |struct m|isc_func|
|00002080| 74 69 6f 6e 29 29 3b 0a | 58 2b 20 20 20 6d 69 73 |tion));.|X+ mis|
|00002090| 63 5f 66 75 6e 63 74 69 | 6f 6e 5f 63 6f 75 6e 74 |c_functi|on_count|
|000020a0| 20 3d 20 73 79 6d 5f 63 | 6f 75 6e 74 3b 0a 58 2b | = sym_c|ount;.X+|
|000020b0| 20 0a 58 2b 20 20 20 70 | 20 3d 20 73 79 6d 64 61 | .X+ p| = symda|
|000020c0| 74 61 3b 20 20 6d 69 73 | 63 70 20 3d 20 6d 69 73 |ta; mis|cp = mis|
|000020d0| 63 5f 66 75 6e 63 74 69 | 6f 6e 5f 76 65 63 74 6f |c_functi|on_vecto|
|000020e0| 72 3b 0a 58 2b 20 20 20 | 77 68 69 6c 65 20 28 70 |r;.X+ |while (p|
|000020f0| 20 3c 20 73 79 6d 64 61 | 74 61 20 2b 20 73 65 67 | < symda|ta + seg|
|00002100| 73 69 7a 65 29 0a 58 2b | 20 20 20 7b 0a 58 2b 20 |size).X+| {.X+ |
|00002110| 09 69 6e 74 20 6c 65 6e | 3b 0a 58 2b 20 0a 58 2b |.int len|;.X+ .X+|
|00002120| 20 09 73 79 6d 62 20 3d | 20 2a 28 28 73 74 72 75 | .symb =| *((stru|
|00002130| 63 74 20 73 79 6d 20 2a | 29 70 29 3b 0a 58 2b 20 |ct sym *|)p);.X+ |
|00002140| 09 70 20 2b 3d 20 73 69 | 7a 65 6f 66 28 73 74 72 |.p += si|zeof(str|
|00002150| 75 63 74 20 73 79 6d 29 | 3b 0a 58 2b 20 0a 58 2b |uct sym)|;.X+ .X+|
|00002160| 20 09 69 66 20 28 2a 70 | 20 3d 3d 20 27 5f 27 29 | .if (*p| == '_')|
|00002170| 0a 58 2b 20 09 20 20 73 | 74 72 63 70 79 28 73 74 |.X+ . s|trcpy(st|
|00002180| 72 5f 62 75 66 66 2c 20 | 70 2b 31 29 3b 0a 58 2b |r_buff, |p+1);.X+|
|00002190| 20 09 65 6c 73 65 0a 58 | 2b 20 09 20 20 73 74 72 | .else.X|+ . str|
|000021a0| 63 70 79 28 73 74 72 5f | 62 75 66 66 2c 20 70 29 |cpy(str_|buff, p)|
|000021b0| 3b 0a 58 2b 20 0a 58 2b | 20 09 2f 2a 20 74 68 65 |;.X+ .X+| ./* the|
|000021c0| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 77 69 6c 6c 20 | followi|ng will |
|000021d0| 72 65 73 75 6c 74 20 69 | 6e 20 61 20 67 61 72 62 |result i|n a garb|
|000021e0| 61 67 65 20 62 79 74 65 | 20 65 76 65 72 79 20 74 |age byte| every t|
|000021f0| 69 6d 65 20 61 20 73 79 | 6d 62 6f 6c 0a 58 2b 20 |ime a sy|mbol.X+ |
|00002200| 09 20 2a 20 73 74 61 72 | 74 73 20 77 69 74 68 20 |. * star|ts with |
|00002210| 61 20 5f 2c 20 49 20 63 | 61 6e 27 79 20 62 65 20 |a _, I c|an'y be |
|00002220| 62 6f 74 68 65 72 65 64 | 20 74 6f 20 66 69 78 20 |bothered| to fix |
|00002230| 69 74 2e 0a 58 2b 20 09 | 20 2a 2f 0a 58 2b 20 0a |it..X+ .| */.X+ .|
|00002240| 58 2b 20 09 6d 69 73 63 | 70 2d 3e 6e 61 6d 65 20 |X+ .misc|p->name |
|00002250| 3d 20 73 74 72 5f 62 75 | 66 66 3b 0a 58 2b 20 09 |= str_bu|ff;.X+ .|
|00002260| 6c 65 6e 20 3d 20 73 74 | 72 6c 65 6e 28 70 29 20 |len = st|rlen(p) |
|00002270| 2b 20 31 3b 0a 58 2b 20 | 09 73 74 72 5f 62 75 66 |+ 1;.X+ |.str_buf|
|00002280| 66 20 2b 3d 20 6c 65 6e | 3b 20 20 70 20 2b 3d 20 |f += len|; p += |
|00002290| 6c 65 6e 3b 0a 58 2b 20 | 09 6d 69 73 63 70 2d 3e |len;.X+ |.miscp->|
|000022a0| 61 64 64 72 65 73 73 20 | 3d 20 73 79 6d 62 2e 73 |address |= symb.s|
|000022b0| 5f 76 61 6c 75 65 3b 0a | 58 2b 20 09 73 77 69 74 |_value;.|X+ .swit|
|000022c0| 63 68 28 73 79 6d 62 2e | 73 5f 74 79 70 65 20 26 |ch(symb.|s_type &|
|000022d0| 20 53 5f 54 59 50 45 29 | 0a 58 2b 20 09 7b 0a 58 | S_TYPE)|.X+ .{.X|
|000022e0| 2b 20 09 63 61 73 65 20 | 53 5f 55 4e 44 45 46 3a |+ .case |S_UNDEF:|
|000022f0| 20 20 6d 69 73 63 70 2d | 3e 74 79 70 65 20 3d 20 | miscp-|>type = |
|00002300| 6d 66 5f 75 6e 6b 6e 6f | 77 6e 3b 20 20 62 72 65 |mf_unkno|wn; bre|
|00002310| 61 6b 3b 0a 58 2b 20 09 | 63 61 73 65 20 53 5f 41 |ak;.X+ .|case S_A|
|00002320| 42 53 3a 20 20 20 20 6d | 69 73 63 70 2d 3e 74 79 |BS: m|iscp->ty|
|00002330| 70 65 20 3d 20 6d 66 5f | 61 62 73 3b 20 20 62 72 |pe = mf_|abs; br|
|00002340| 65 61 6b 3b 0a 58 2b 20 | 09 63 61 73 65 20 53 5f |eak;.X+ |.case S_|
|00002350| 54 45 58 54 3a 20 20 20 | 6d 69 73 63 70 2d 3e 74 |TEXT: |miscp->t|
|00002360| 79 70 65 20 3d 20 6d 66 | 5f 74 65 78 74 3b 20 20 |ype = mf|_text; |
|00002370| 62 72 65 61 6b 3b 0a 58 | 2b 20 09 63 61 73 65 20 |break;.X|+ .case |
|00002380| 53 5f 44 41 54 41 3a 20 | 20 20 6d 69 73 63 70 2d |S_DATA: | miscp-|
|00002390| 3e 74 79 70 65 20 3d 20 | 6d 66 5f 64 61 74 61 3b |>type = |mf_data;|
|000023a0| 20 20 62 72 65 61 6b 3b | 0a 58 2b 20 09 63 61 73 | break;|.X+ .cas|
|000023b0| 65 20 53 5f 42 53 53 3a | 20 20 20 20 6d 69 73 63 |e S_BSS:| misc|
|000023c0| 70 2d 3e 74 79 70 65 20 | 3d 20 6d 66 5f 62 73 73 |p->type |= mf_bss|
|000023d0| 3b 20 20 62 72 65 61 6b | 3b 0a 58 2b 20 09 63 61 |; break|;.X+ .ca|
|000023e0| 73 65 20 53 5f 43 4f 4d | 4d 3a 20 20 20 6d 69 73 |se S_COM|M: mis|
|000023f0| 63 70 2d 3e 74 79 70 65 | 20 3d 20 6d 66 5f 64 61 |cp->type| = mf_da|
|00002400| 74 61 3b 20 20 62 72 65 | 61 6b 3b 0a 58 2b 20 09 |ta; bre|ak;.X+ .|
|00002410| 63 61 73 65 20 53 5f 52 | 45 47 3a 20 20 20 20 6d |case S_R|EG: m|
|00002420| 69 73 63 70 2d 3e 74 79 | 70 65 20 3d 20 6d 66 5f |iscp->ty|pe = mf_|
|00002430| 75 6e 6b 6e 6f 77 6e 3b | 20 20 62 72 65 61 6b 3b |unknown;| break;|
|00002440| 0a 58 2b 20 09 63 61 73 | 65 20 53 5f 43 4f 4d 42 |.X+ .cas|e S_COMB|
|00002450| 3a 20 20 20 6d 69 73 63 | 70 2d 3e 74 79 70 65 20 |: misc|p->type |
|00002460| 3d 20 6d 66 5f 75 6e 6b | 6e 6f 77 6e 3b 20 20 62 |= mf_unk|nown; b|
|00002470| 72 65 61 6b 3b 0a 58 2b | 20 09 63 61 73 65 20 53 |reak;.X+| .case S|
|00002480| 5f 53 45 47 3a 20 20 20 | 20 6d 69 73 63 70 2d 3e |_SEG: | miscp->|
|00002490| 74 79 70 65 20 3d 20 6d | 66 5f 75 6e 6b 6e 6f 77 |type = m|f_unknow|
|000024a0| 6e 3b 20 20 62 72 65 61 | 6b 3b 0a 58 2b 20 09 63 |n; brea|k;.X+ .c|
|000024b0| 61 73 65 20 53 5f 46 4e | 3a 20 20 20 20 20 6d 69 |ase S_FN|: mi|
|000024c0| 73 63 70 2d 3e 74 79 70 | 65 20 3d 20 6d 66 5f 75 |scp->typ|e = mf_u|
|000024d0| 6e 6b 6e 6f 77 6e 3b 20 | 20 62 72 65 61 6b 3b 0a |nknown; | break;.|
|000024e0| 58 2b 20 09 64 65 77 66 | 61 75 6c 74 3a 20 20 20 |X+ .dewf|ault: |
|000024f0| 20 20 20 6d 69 73 63 70 | 2d 3e 74 79 70 65 20 3d | miscp|->type =|
|00002500| 20 6d 66 5f 75 6e 6b 6e | 6f 77 6e 3b 20 20 62 72 | mf_unkn|own; br|
|00002510| 65 61 6b 3b 0a 58 2b 20 | 09 7d 0a 58 2b 20 09 6d |eak;.X+ |.}.X+ .m|
|00002520| 69 73 63 70 2b 2b 3b 0a | 58 2b 20 20 20 7d 0a 58 |iscp++;.|X+ }.X|
|00002530| 2b 20 0a 58 2b 20 20 20 | 71 73 6f 72 74 20 28 6d |+ .X+ |qsort (m|
|00002540| 69 73 63 5f 66 75 6e 63 | 74 69 6f 6e 5f 76 65 63 |isc_func|tion_vec|
|00002550| 74 6f 72 2c 20 6d 69 73 | 63 5f 66 75 6e 63 74 69 |tor, mis|c_functi|
|00002560| 6f 6e 5f 63 6f 75 6e 74 | 2c 0a 58 2b 20 20 20 20 |on_count|,.X+ |
|00002570| 20 73 69 7a 65 6f 66 20 | 28 73 74 72 75 63 74 20 | sizeof |(struct |
|00002580| 6d 69 73 63 5f 66 75 6e | 63 74 69 6f 6e 29 2c 20 |misc_fun|ction), |
|00002590| 63 6f 6d 70 61 72 65 5f | 6d 69 73 63 5f 66 75 6e |compare_|misc_fun|
|000025a0| 63 74 69 6f 6e 73 29 3b | 0a 58 2b 20 0a 58 2b 20 |ctions);|.X+ .X+ |
|000025b0| 23 69 66 64 65 66 20 58 | 5f 44 45 42 55 47 0a 58 |#ifdef X|_DEBUG.X|
|000025c0| 2b 20 20 20 7b 0a 58 2b | 20 20 20 20 20 73 74 72 |+ {.X+| str|
|000025d0| 75 63 74 20 6d 69 73 63 | 5f 66 75 6e 63 74 69 6f |uct misc|_functio|
|000025e0| 6e 20 2a 6d 69 73 63 70 | 3b 0a 58 2b 20 20 20 20 |n *miscp|;.X+ |
|000025f0| 20 69 6e 74 20 69 3b 0a | 58 2b 20 0a 58 2b 20 20 | int i;.|X+ .X+ |
|00002600| 20 20 20 70 72 69 6e 74 | 66 28 22 74 79 70 65 20 | print|f("type |
|00002610| 20 20 20 20 20 61 64 64 | 72 65 73 73 20 20 6e 61 | add|ress na|
|00002620| 6d 65 5c 6e 5c 6e 22 29 | 3b 0a 58 2b 20 20 20 20 |me\n\n")|;.X+ |
|00002630| 20 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 69 20 3c | for (i |= 0; i <|
|00002640| 20 6d 69 73 63 5f 66 75 | 6e 63 74 69 6f 6e 5f 63 | misc_fu|nction_c|
|00002650| 6f 75 6e 74 3b 20 69 2b | 2b 29 0a 58 2b 20 20 20 |ount; i+|+).X+ |
|00002660| 20 20 7b 0a 58 2b 20 20 | 20 20 20 20 20 6d 69 73 | {.X+ | mis|
|00002670| 63 70 20 3d 20 26 6d 69 | 73 63 5f 66 75 6e 63 74 |cp = &mi|sc_funct|
|00002680| 69 6f 6e 5f 76 65 63 74 | 6f 72 5b 69 5d 3b 0a 58 |ion_vect|or[i];.X|
|00002690| 2b 20 20 20 20 20 20 20 | 73 77 69 74 63 68 20 28 |+ |switch (|
|000026a0| 6d 69 73 63 70 2d 3e 74 | 79 70 65 29 0a 58 2b 20 |miscp->t|ype).X+ |
|000026b0| 20 20 20 20 20 20 7b 0a | 58 2b 20 20 20 20 20 20 | {.|X+ |
|000026c0| 20 63 61 73 65 20 6d 66 | 5f 75 6e 6b 6e 6f 77 6e | case mf|_unknown|
|000026d0| 3a 20 70 72 69 6e 74 66 | 28 22 25 2d 39 73 22 2c |: printf|("%-9s",|
|000026e0| 22 75 6e 6b 6e 6f 77 6e | 22 29 3b 20 20 62 72 65 |"unknown|"); bre|
|000026f0| 61 6b 3b 0a 58 2b 20 20 | 20 20 20 20 20 63 61 73 |ak;.X+ | cas|
|00002700| 65 20 6d 66 5f 74 65 78 | 74 3a 20 20 20 20 70 72 |e mf_tex|t: pr|
|00002710| 69 6e 74 66 28 22 25 2d | 39 73 22 2c 22 74 65 78 |intf("%-|9s","tex|
|00002720| 74 22 29 3b 20 20 62 72 | 65 61 6b 3b 0a 58 2b 20 |t"); br|eak;.X+ |
|00002730| 20 20 20 20 20 20 63 61 | 73 65 20 6d 66 5f 64 61 | ca|se mf_da|
|00002740| 74 61 3a 20 20 20 20 70 | 72 69 6e 74 66 28 22 25 |ta: p|rintf("%|
|00002750| 2d 39 73 22 2c 22 64 61 | 74 61 22 29 3b 20 20 62 |-9s","da|ta"); b|
|00002760| 72 65 61 6b 3b 0a 58 2b | 20 20 20 20 20 20 20 63 |reak;.X+| c|
|00002770| 61 73 65 20 6d 66 5f 62 | 73 73 3a 20 20 20 20 20 |ase mf_b|ss: |
|00002780| 70 72 69 6e 74 66 28 22 | 25 2d 39 73 22 2c 22 62 |printf("|%-9s","b|
|00002790| 73 73 22 29 3b 20 20 62 | 72 65 61 6b 3b 0a 58 2b |ss"); b|reak;.X+|
|000027a0| 20 20 20 20 20 20 20 63 | 61 73 65 20 6d 66 5f 61 | c|ase mf_a|
|000027b0| 62 73 3a 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 |bs: |printf("|
|000027c0| 25 2d 39 73 22 2c 22 61 | 62 73 22 29 3b 20 20 62 |%-9s","a|bs"); b|
|000027d0| 72 65 61 6b 3b 0a 58 2b | 20 20 20 20 20 20 20 64 |reak;.X+| d|
|000027e0| 65 66 61 75 6c 74 3a 20 | 20 20 20 20 20 20 20 20 |efault: | |
|000027f0| 70 72 69 6e 74 66 28 22 | 25 2d 39 73 22 2c 22 55 |printf("|%-9s","U|
|00002800| 4e 4b 4e 4f 57 4e 22 29 | 3b 20 20 62 72 65 61 6b |NKNOWN")|; break|
|00002810| 3b 0a 58 2b 20 20 20 20 | 20 20 20 7d 0a 58 2b 20 |;.X+ | }.X+ |
|00002820| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 25 20 | pr|intf("% |
|00002830| 38 78 20 20 22 2c 20 6d | 69 73 63 70 2d 3e 61 64 |8x ", m|iscp->ad|
|00002840| 64 72 65 73 73 29 3b 0a | 58 2b 20 20 20 20 20 20 |dress);.|X+ |
|00002850| 20 70 72 69 6e 74 66 28 | 22 25 73 5c 6e 22 2c 20 | printf(|"%s\n", |
|00002860| 6d 69 73 63 70 2d 3e 6e | 61 6d 65 29 3b 0a 58 2b |miscp->n|ame);.X+|
|00002870| 20 20 20 20 20 7d 0a 58 | 2b 20 20 20 7d 0a 58 2b | }.X|+ }.X+|
|00002880| 20 23 65 6e 64 69 66 20 | 2f 2a 20 58 5f 44 45 42 | #endif |/* X_DEB|
|00002890| 55 47 20 2a 2f 0a 58 2b | 20 20 20 72 65 74 75 72 |UG */.X+| retur|
|000028a0| 6e 20 6d 69 73 63 5f 66 | 75 6e 63 74 69 6f 6e 5f |n misc_f|unction_|
|000028b0| 63 6f 75 6e 74 3b 0a 58 | 2b 20 7d 0a 58 2b 20 0a |count;.X|+ }.X+ .|
|000028c0| 58 2b 20 70 72 6f 63 65 | 73 73 5f 61 5f 6f 75 74 |X+ proce|ss_a_out|
|000028d0| 28 64 65 73 63 2c 20 6e | 61 6d 65 29 0a 58 2b 20 |(desc, n|ame).X+ |
|000028e0| 69 6e 74 20 64 65 73 63 | 3b 0a 58 2b 20 63 68 61 |int desc|;.X+ cha|
|000028f0| 72 20 2a 6e 61 6d 65 3b | 0a 58 2b 20 7b 0a 58 2b |r *name;|.X+ {.X+|
|00002900| 20 20 20 73 74 72 75 63 | 74 20 78 65 78 65 63 20 | struc|t xexec |
|00002910| 65 78 65 63 5f 61 6f 75 | 74 68 64 72 3b 0a 58 2b |exec_aou|thdr;.X+|
|00002920| 20 20 20 73 74 72 75 63 | 74 20 78 65 78 74 20 2a | struc|t xext *|
|00002930| 78 65 78 74 3b 0a 58 2b | 20 20 20 73 74 72 75 63 |xext;.X+| struc|
|00002940| 74 20 78 73 65 67 20 2a | 63 73 65 67 3b 0a 58 2b |t xseg *|cseg;.X+|
|00002950| 20 20 20 46 49 4c 45 20 | 2a 66 70 3b 0a 58 2b 20 | FILE |*fp;.X+ |
|00002960| 0a 58 2b 20 20 20 6c 73 | 65 65 6b 28 64 65 73 63 |.X+ ls|eek(desc|
|00002970| 2c 20 30 4c 2c 20 30 29 | 3b 0a 58 2b 20 20 20 69 |, 0L, 0)|;.X+ i|
|00002980| 66 20 28 28 66 70 20 3d | 20 66 64 6f 70 65 6e 28 |f ((fp =| fdopen(|
|00002990| 64 75 70 28 64 65 73 63 | 29 2c 20 22 72 22 29 29 |dup(desc|), "r"))|
|000029a0| 20 3d 3d 20 4e 55 4c 4c | 29 0a 58 2b 20 09 09 70 | == NULL|).X+ ..p|
|000029b0| 65 72 72 6f 72 5f 77 69 | 74 68 5f 6e 61 6d 65 28 |error_wi|th_name(|
|000029c0| 6e 61 6d 65 29 3b 0a 58 | 2b 20 0a 58 2b 20 20 20 |name);.X|+ .X+ |
|000029d0| 69 66 20 28 66 72 65 61 | 64 28 28 63 68 61 72 20 |if (frea|d((char |
|000029e0| 2a 29 26 65 78 65 63 5f | 61 6f 75 74 68 64 72 2c |*)&exec_|aouthdr,|
|000029f0| 20 73 69 7a 65 6f 66 28 | 73 74 72 75 63 74 20 78 | sizeof(|struct x|
|00002a00| 65 78 65 63 29 2c 20 31 | 2c 20 66 70 29 20 21 3d |exec), 1|, fp) !=|
|00002a10| 20 31 29 0a 58 2b 20 20 | 20 20 20 70 65 72 72 6f | 1).X+ | perro|
|00002a20| 72 5f 77 69 74 68 5f 6e | 61 6d 65 28 6e 61 6d 65 |r_with_n|ame(name|
|00002a30| 29 3b 0a 58 2b 20 20 20 | 0a 58 2b 20 20 20 78 65 |);.X+ |.X+ xe|
|00002a40| 78 74 20 3d 20 28 73 74 | 72 75 63 74 20 78 65 78 |xt = (st|ruct xex|
|00002a50| 74 20 2a 29 20 61 6c 6c | 6f 63 61 28 65 78 65 63 |t *) all|oca(exec|
|00002a60| 5f 61 6f 75 74 68 64 72 | 2e 78 5f 65 78 74 29 3b |_aouthdr|.x_ext);|
|00002a70| 0a 58 2b 20 20 20 69 66 | 20 28 66 72 65 61 64 28 |.X+ if| (fread(|
|00002a80| 28 63 68 61 72 20 2a 29 | 78 65 78 74 2c 20 65 78 |(char *)|xext, ex|
|00002a90| 65 63 5f 61 6f 75 74 68 | 64 72 2e 78 5f 65 78 74 |ec_aouth|dr.x_ext|
|00002aa0| 2c 20 31 2c 20 66 70 29 | 20 21 3d 20 31 29 0a 58 |, 1, fp)| != 1).X|
|00002ab0| 2b 20 20 20 20 20 70 65 | 72 72 6f 72 5f 77 69 74 |+ pe|rror_wit|
|00002ac0| 68 5f 6e 61 6d 65 28 6e | 61 6d 65 29 3b 0a 58 2b |h_name(n|ame);.X+|
|00002ad0| 20 20 20 0a 58 2b 20 20 | 20 72 65 61 64 5f 73 65 | .X+ | read_se|
|00002ae0| 67 5f 74 61 62 6c 65 28 | 66 70 2c 20 78 65 78 74 |g_table(|fp, xext|
|00002af0| 2d 3e 78 65 5f 73 65 67 | 70 6f 73 2c 20 78 65 78 |->xe_seg|pos, xex|
|00002b00| 74 2d 3e 78 65 5f 73 65 | 67 73 69 7a 65 2c 20 6e |t->xe_se|gsize, n|
|00002b10| 61 6d 65 29 3b 0a 58 2b | 20 0a 58 2b 20 20 20 69 |ame);.X+| .X+ i|
|00002b20| 66 20 28 63 73 65 67 20 | 3d 20 66 69 6e 64 5f 73 |f (cseg |= find_s|
|00002b30| 65 67 6d 65 6e 74 28 58 | 53 5f 54 53 59 4d 53 2c |egment(X|S_TSYMS,|
|00002b40| 20 32 29 29 0a 58 2b 20 | 20 20 7b 0a 58 2b 20 20 | 2)).X+ | {.X+ |
|00002b50| 20 20 20 66 73 65 65 6b | 28 66 70 2c 20 63 73 65 | fseek|(fp, cse|
|00002b60| 67 2d 3e 78 73 5f 66 69 | 6c 70 6f 73 2c 20 30 29 |g->xs_fi|lpos, 0)|
|00002b70| 3b 0a 58 2b 20 20 20 20 | 20 72 65 61 64 5f 66 69 |;.X+ | read_fi|
|00002b80| 6c 65 69 6e 66 6f 5f 74 | 61 62 6c 65 28 66 70 2c |leinfo_t|able(fp,|
|00002b90| 20 63 73 65 67 2d 3e 78 | 73 5f 70 73 69 7a 65 2c | cseg->x|s_psize,|
|00002ba0| 20 6e 61 6d 65 29 3b 0a | 58 2b 20 20 20 7d 0a 58 | name);.|X+ }.X|
|00002bb0| 2b 20 0a 58 2b 20 20 20 | 66 63 6c 6f 73 65 28 66 |+ .X+ |fclose(f|
|00002bc0| 70 29 3b 0a 58 2b 20 7d | 0a 58 2b 20 0a 58 2b 20 |p);.X+ }|.X+ .X+ |
|00002bd0| 70 72 6f 63 65 73 73 5f | 67 6c 6f 62 61 6c 5f 73 |process_|global_s|
|00002be0| 79 6d 62 6f 6c 5f 74 61 | 62 6c 65 28 64 65 73 63 |ymbol_ta|ble(desc|
|00002bf0| 2c 20 6e 61 6d 65 29 0a | 58 2b 20 69 6e 74 20 64 |, name).|X+ int d|
|00002c00| 65 73 63 3b 0a 58 2b 20 | 63 68 61 72 20 2a 6e 61 |esc;.X+ |char *na|
|00002c10| 6d 65 3b 0a 58 2b 20 7b | 0a 58 2b 20 20 20 73 74 |me;.X+ {|.X+ st|
|00002c20| 72 75 63 74 20 78 73 65 | 67 20 2a 63 73 65 67 3b |ruct xse|g *cseg;|
|00002c30| 0a 58 2b 20 20 20 46 49 | 4c 45 20 2a 66 70 3b 0a |.X+ FI|LE *fp;.|
|00002c40| 58 2b 20 0a 58 2b 20 20 | 20 69 66 20 28 28 66 70 |X+ .X+ | if ((fp|
|00002c50| 20 3d 20 66 64 6f 70 65 | 6e 28 64 75 70 28 64 65 | = fdope|n(dup(de|
|00002c60| 73 63 29 2c 20 22 72 22 | 29 29 20 3d 3d 20 4e 55 |sc), "r"|)) == NU|
|00002c70| 4c 4c 29 0a 58 2b 20 09 | 09 70 65 72 72 6f 72 5f |LL).X+ .|.perror_|
|00002c80| 77 69 74 68 5f 6e 61 6d | 65 28 6e 61 6d 65 29 3b |with_nam|e(name);|
|00002c90| 0a 58 2b 20 0a 58 2b 20 | 20 20 69 66 20 28 63 73 |.X+ .X+ | if (cs|
|00002ca0| 65 67 20 3d 20 66 69 6e | 64 5f 73 65 67 6d 65 6e |eg = fin|d_segmen|
|00002cb0| 74 28 58 53 5f 54 53 59 | 4d 53 2c 20 31 29 29 0a |t(XS_TSY|MS, 1)).|
|00002cc0| 58 2b 20 20 20 7b 0a 58 | 2b 20 20 20 20 20 66 73 |X+ {.X|+ fs|
|00002cd0| 65 65 6b 28 66 70 2c 20 | 63 73 65 67 2d 3e 78 73 |eek(fp, |cseg->xs|
|00002ce0| 5f 66 69 6c 70 6f 73 2c | 20 30 29 3b 0a 58 2b 20 |_filpos,| 0);.X+ |
|00002cf0| 20 20 20 20 72 65 61 64 | 5f 6d 69 73 63 5f 66 75 | read|_misc_fu|
|00002d00| 6e 63 74 69 6f 6e 73 28 | 66 70 2c 20 63 73 65 67 |nctions(|fp, cseg|
|00002d10| 2d 3e 78 73 5f 70 73 69 | 7a 65 2c 20 6e 61 6d 65 |->xs_psi|ze, name|
|00002d20| 29 3b 0a 58 2b 20 20 20 | 7d 0a 58 2b 20 20 20 66 |);.X+ |}.X+ f|
|00002d30| 63 6c 6f 73 65 28 66 70 | 29 3b 0a 58 2b 20 7d 0a |close(fp|);.X+ }.|
|00002d40| 58 2b 20 0a 58 2b 20 73 | 74 61 74 69 63 20 73 74 |X+ .X+ s|tatic st|
|00002d50| 72 75 63 74 20 66 69 6c | 65 69 6e 66 6f 20 2a 63 |ruct fil|einfo *c|
|00002d60| 75 72 72 65 6e 74 5f 66 | 69 3b 0a 58 2b 20 73 74 |urrent_f|i;.X+ st|
|00002d70| 61 74 69 63 20 69 6e 74 | 20 66 69 72 73 74 5f 67 |atic int| first_g|
|00002d80| 65 74 5f 66 69 6c 65 69 | 6e 66 6f 5f 63 61 6c 6c |et_filei|nfo_call|
|00002d90| 20 3d 20 31 3b 0a 58 2b | 20 0a 58 2b 20 69 6e 69 | = 1;.X+| .X+ ini|
|00002da0| 74 5f 66 69 6c 65 69 6e | 66 6f 5f 70 72 6f 63 65 |t_filein|fo_proce|
|00002db0| 73 73 69 6e 67 28 29 20 | 20 2f 2a 20 73 74 61 72 |ssing() | /* star|
|00002dc0| 74 20 70 72 6f 63 65 73 | 73 69 6e 67 20 74 68 65 |t proces|sing the|
|00002dd0| 20 6c 69 73 74 20 6f 66 | 20 66 69 6c 65 73 20 2a | list of| files *|
|00002de0| 2f 0a 58 2b 20 7b 0a 58 | 2b 20 20 20 66 69 72 73 |/.X+ {.X|+ firs|
|00002df0| 74 5f 67 65 74 5f 66 69 | 6c 65 69 6e 66 6f 5f 63 |t_get_fi|leinfo_c|
|00002e00| 61 6c 6c 20 3d 20 31 3b | 0a 58 2b 20 7d 0a 58 2b |all = 1;|.X+ }.X+|
|00002e10| 20 0a 58 2b 20 6c 6f 6e | 67 20 67 65 74 5f 6e 65 | .X+ lon|g get_ne|
|00002e20| 78 74 5f 66 69 6c 65 69 | 6e 66 6f 28 73 74 72 6f |xt_filei|nfo(stro|
|00002e30| 66 66 2c 20 6e 73 79 6d | 73 2c 20 61 64 64 72 65 |ff, nsym|s, addre|
|00002e40| 73 73 2c 20 73 79 6d 74 | 61 62 6f 66 66 29 0a 58 |ss, symt|aboff).X|
|00002e50| 2b 20 6c 6f 6e 67 20 2a | 73 74 72 6f 66 66 2c 20 |+ long *|stroff, |
|00002e60| 2a 6e 73 79 6d 73 2c 20 | 2a 61 64 64 72 65 73 73 |*nsyms, |*address|
|00002e70| 2c 20 2a 73 79 6d 74 61 | 62 6f 66 66 3b 0a 58 2b |, *symta|boff;.X+|
|00002e80| 20 7b 0a 58 2b 20 20 20 | 73 74 72 75 63 74 20 78 | {.X+ |struct x|
|00002e90| 73 65 67 20 2a 63 73 65 | 67 3b 0a 58 2b 20 0a 58 |seg *cse|g;.X+ .X|
|00002ea0| 2b 20 20 20 69 66 20 28 | 66 69 72 73 74 5f 67 65 |+ if (|first_ge|
|00002eb0| 74 5f 66 69 6c 65 69 6e | 66 6f 5f 63 61 6c 6c 29 |t_filein|fo_call)|
|00002ec0| 0a 58 2b 20 20 20 7b 0a | 58 2b 20 20 20 20 20 63 |.X+ {.|X+ c|
|00002ed0| 75 72 72 65 6e 74 5f 66 | 69 20 3d 20 66 69 5f 74 |urrent_f|i = fi_t|
|00002ee0| 61 62 6c 65 3b 0a 58 2b | 20 20 20 20 20 66 69 72 |able;.X+| fir|
|00002ef0| 73 74 5f 67 65 74 5f 66 | 69 6c 65 69 6e 66 6f 5f |st_get_f|ileinfo_|
|00002f00| 63 61 6c 6c 20 3d 20 30 | 3b 0a 58 2b 20 20 20 7d |call = 0|;.X+ }|
|00002f10| 0a 58 2b 20 20 20 65 6c | 73 65 0a 58 2b 20 20 20 |.X+ el|se.X+ |
|00002f20| 20 20 63 75 72 72 65 6e | 74 5f 66 69 20 3d 20 63 | curren|t_fi = c|
|00002f30| 75 72 72 65 6e 74 5f 66 | 69 2d 3e 6e 65 78 74 3b |urrent_f|i->next;|
|00002f40| 0a 58 2b 20 20 20 0a 58 | 2b 20 20 20 69 66 20 28 |.X+ .X|+ if (|
|00002f50| 63 75 72 72 65 6e 74 5f | 66 69 20 3d 3d 20 30 29 |current_|fi == 0)|
|00002f60| 0a 58 2b 20 20 20 20 20 | 72 65 74 75 72 6e 20 30 |.X+ |return 0|
|00002f70| 3b 0a 58 2b 20 0a 58 2b | 20 20 20 69 66 20 28 63 |;.X+ .X+| if (c|
|00002f80| 75 72 72 65 6e 74 5f 66 | 69 2d 3e 6d 73 63 64 65 |urrent_f|i->mscde|
|00002f90| 62 75 67 69 6e 66 6f 29 | 0a 58 2b 20 20 20 7b 0a |buginfo)|.X+ {.|
|00002fa0| 58 2b 20 20 20 20 20 2a | 73 74 72 6f 66 66 20 3d |X+ *|stroff =|
|00002fb0| 20 30 3b 0a 58 2b 20 20 | 20 20 20 2a 6e 73 79 6d | 0;.X+ | *nsym|
|00002fc0| 73 20 3d 20 30 3b 0a 58 | 2b 20 20 20 20 20 2a 61 |s = 0;.X|+ *a|
|00002fd0| 64 64 72 65 73 73 20 3d | 20 63 75 72 72 65 6e 74 |ddress =| current|
|00002fe0| 5f 66 69 2d 3e 61 64 64 | 72 65 73 73 3b 0a 58 2b |_fi->add|ress;.X+|
|00002ff0| 20 20 20 7d 0a 58 2b 20 | 20 20 65 6c 73 65 20 69 | }.X+ | else i|
|00003000| 66 20 28 63 73 65 67 20 | 3d 20 66 69 6e 64 5f 73 |f (cseg |= find_s|
|00003010| 65 67 6d 65 6e 74 28 58 | 53 5f 54 53 59 4d 53 2c |egment(X|S_TSYMS,|
|00003020| 20 35 29 29 0a 58 2b 20 | 20 20 7b 0a 58 2b 20 20 | 5)).X+ | {.X+ |
|00003030| 20 20 20 2a 73 79 6d 74 | 61 62 6f 66 66 20 3d 20 | *symt|aboff = |
|00003040| 63 73 65 67 2d 3e 78 73 | 5f 66 69 6c 70 6f 73 20 |cseg->xs|_filpos |
|00003050| 2b 20 63 75 72 72 65 6e | 74 5f 66 69 2d 3e 6e 74 |+ curren|t_fi->nt|
|00003060| 61 62 6f 66 66 3b 0a 58 | 2b 20 20 20 20 20 2a 73 |aboff;.X|+ *s|
|00003070| 74 72 6f 66 66 20 3d 20 | 63 75 72 72 65 6e 74 5f |troff = |current_|
|00003080| 66 69 2d 3e 73 74 72 74 | 61 62 6f 66 66 3b 0a 58 |fi->strt|aboff;.X|
|00003090| 2b 20 20 20 20 20 2a 6e | 73 79 6d 73 20 3d 20 63 |+ *n|syms = c|
|000030a0| 75 72 72 65 6e 74 5f 66 | 69 2d 3e 6e 74 61 62 73 |urrent_f|i->ntabs|
|000030b0| 7a 20 2f 20 73 69 7a 65 | 6f 66 28 73 74 72 75 63 |z / size|of(struc|
|000030c0| 74 20 67 61 73 5f 6e 6c | 69 73 74 29 3b 0a 58 2b |t gas_nl|ist);.X+|
|000030d0| 20 20 20 20 20 2a 61 64 | 64 72 65 73 73 20 3d 20 | *ad|dress = |
|000030e0| 63 75 72 72 65 6e 74 5f | 66 69 2d 3e 61 64 64 72 |current_|fi->addr|
|000030f0| 65 73 73 3b 0a 58 2b 20 | 20 20 20 20 72 65 74 75 |ess;.X+ | retu|
|00003100| 72 6e 20 31 3b 0a 58 2b | 20 20 20 7d 0a 58 2b 20 |rn 1;.X+| }.X+ |
|00003110| 20 20 65 6c 73 65 0a 58 | 2b 20 20 20 7b 0a 58 2b | else.X|+ {.X+|
|00003120| 20 20 20 20 20 2a 73 79 | 6d 74 61 62 6f 66 66 20 | *sy|mtaboff |
|00003130| 3d 20 30 3b 0a 58 2b 20 | 20 20 20 20 2a 73 74 72 |= 0;.X+ | *str|
|00003140| 6f 66 66 20 3d 20 30 3b | 0a 58 2b 20 20 20 20 20 |off = 0;|.X+ |
|00003150| 2a 6e 73 79 6d 73 20 3d | 20 30 3b 0a 58 2b 20 20 |*nsyms =| 0;.X+ |
|00003160| 20 20 20 2a 61 64 64 72 | 65 73 73 20 3d 20 30 3b | *addr|ess = 0;|
|00003170| 0a 58 2b 20 20 20 7d 0a | 58 2b 20 7d 0a 58 2b 20 |.X+ }.|X+ }.X+ |
|00003180| 0a 58 2b 20 23 69 66 64 | 65 66 20 54 45 53 54 0a |.X+ #ifd|ef TEST.|
|00003190| 58 2b 20 0a 58 2b 20 6d | 61 69 6e 28 29 0a 58 2b |X+ .X+ m|ain().X+|
|000031a0| 20 7b 0a 58 2b 20 09 63 | 68 61 72 20 2a 73 74 61 | {.X+ .c|har *sta|
|000031b0| 62 3b 0a 58 2b 20 09 6c | 6f 6e 67 20 73 74 72 5f |b;.X+ .l|ong str_|
|000031c0| 6f 66 66 73 65 74 2c 20 | 6e 73 79 6d 73 2c 20 61 |offset, |nsyms, a|
|000031d0| 64 64 72 65 73 73 2c 20 | 6e 74 61 62 6f 66 66 3b |ddress, |ntaboff;|
|000031e0| 0a 58 2b 20 20 09 69 6e | 74 20 64 65 73 63 3b 0a |.X+ .in|t desc;.|
|000031f0| 58 2b 20 09 73 74 72 75 | 63 74 20 78 73 65 67 20 |X+ .stru|ct xseg |
|00003200| 2a 63 73 65 67 3b 0a 58 | 2b 20 0a 58 2b 20 09 70 |*cseg;.X|+ .X+ .p|
|00003210| 72 6f 63 65 73 73 5f 61 | 5f 6f 75 74 28 28 64 65 |rocess_a|_out((de|
|00003220| 73 63 20 3d 20 6f 70 65 | 6e 28 22 61 2e 6f 75 74 |sc = ope|n("a.out|
|00003230| 22 2c 20 4f 5f 52 44 4f | 4e 4c 59 2c 20 30 29 29 |", O_RDO|NLY, 0))|
|00003240| 2c 20 22 61 2e 6f 75 74 | 22 29 3b 0a 58 2b 20 0a |, "a.out|");.X+ .|
|00003250| 58 2b 20 09 70 72 69 6e | 74 66 28 22 5c 6e 22 29 |X+ .prin|tf("\n")|
|00003260| 3b 0a 58 2b 20 0a 58 2b | 20 20 20 20 20 20 09 20 |;.X+ .X+| . |
|00003270| 20 69 66 20 28 63 73 65 | 67 20 3d 20 66 69 6e 64 | if (cse|g = find|
|00003280| 5f 73 65 67 6d 65 6e 74 | 28 58 53 5f 54 53 59 4d |_segment|(XS_TSYM|
|00003290| 53 2c 20 34 29 29 0a 58 | 2b 20 20 20 20 20 20 09 |S, 4)).X|+ .|
|000032a0| 20 20 7b 0a 58 2b 20 09 | 20 20 20 20 6c 73 65 65 | {.X+ .| lsee|
|000032b0| 6b 28 64 65 73 63 2c 20 | 63 73 65 67 2d 3e 78 73 |k(desc, |cseg->xs|
|000032c0| 5f 66 69 6c 70 6f 73 2c | 20 30 29 3b 0a 58 2b 20 |_filpos,| 0);.X+ |
|000032d0| 09 20 20 20 20 73 74 61 | 62 20 3d 20 61 6c 6c 6f |. sta|b = allo|
|000032e0| 63 61 28 63 73 65 67 2d | 3e 78 73 5f 70 73 69 7a |ca(cseg-|>xs_psiz|
|000032f0| 65 29 3b 0a 58 2b 20 09 | 20 20 20 20 72 65 61 64 |e);.X+ .| read|
|00003300| 28 64 65 73 63 2c 20 73 | 74 61 62 2c 20 63 73 65 |(desc, s|tab, cse|
|00003310| 67 2d 3e 78 73 5f 70 73 | 69 7a 65 29 3b 0a 58 2b |g->xs_ps|ize);.X+|
|00003320| 20 09 20 20 7d 0a 58 2b | 20 09 20 20 65 6c 73 65 | . }.X+| . else|
|00003330| 0a 58 2b 20 09 20 20 20 | 20 73 74 61 62 20 3d 20 |.X+ . | stab = |
|00003340| 30 3b 0a 58 2b 20 0a 58 | 2b 20 20 20 20 20 20 20 |0;.X+ .X|+ |
|00003350| 20 20 20 20 69 6e 69 74 | 5f 66 69 6c 65 69 6e 66 | init|_fileinf|
|00003360| 6f 5f 70 72 6f 63 65 73 | 73 69 6e 67 28 29 3b 0a |o_proces|sing();.|
|00003370| 58 2b 20 09 20 20 77 68 | 69 6c 65 20 28 67 65 74 |X+ . wh|ile (get|
|00003380| 5f 6e 65 78 74 5f 66 69 | 6c 65 69 6e 66 6f 28 26 |_next_fi|leinfo(&|
|00003390| 73 74 72 5f 6f 66 66 73 | 65 74 2c 26 6e 73 79 6d |str_offs|et,&nsym|
|000033a0| 73 2c 26 61 64 64 72 65 | 73 73 2c 26 6e 74 61 62 |s,&addre|ss,&ntab|
|000033b0| 6f 66 66 29 29 0a 58 2b | 20 09 20 20 7b 0a 58 2b |off)).X+| . {.X+|
|000033c0| 20 09 20 20 20 20 6c 73 | 65 65 6b 28 64 65 73 63 | . ls|eek(desc|
|000033d0| 2c 20 6e 74 61 62 6f 66 | 66 2c 20 30 29 3b 0a 58 |, ntabof|f, 0);.X|
|000033e0| 2b 20 09 20 20 20 20 70 | 72 69 6e 74 66 28 22 5c |+ . p|rintf("\|
|000033f0| 6e 20 20 74 79 70 65 20 | 20 20 20 64 65 73 63 20 |n type | desc |
|00003400| 20 20 20 20 76 61 6c 75 | 65 20 20 73 74 72 6f 66 | valu|e strof|
|00003410| 66 20 20 73 74 72 69 6e | 67 20 28 25 23 78 29 5c |f strin|g (%#x)\|
|00003420| 6e 22 2c 20 61 64 64 72 | 65 73 73 29 3b 0a 58 2b |n", addr|ess);.X+|
|00003430| 20 09 20 20 20 20 77 68 | 69 6c 65 20 28 6e 73 79 | . wh|ile (nsy|
|00003440| 6d 73 2d 2d 29 0a 58 2b | 20 09 20 20 20 20 7b 0a |ms--).X+| . {.|
|00003450| 58 2b 20 09 20 20 20 20 | 20 20 73 74 72 75 63 74 |X+ . | struct|
|00003460| 20 67 61 73 5f 6e 6c 69 | 73 74 20 6e 6c 3b 0a 58 | gas_nli|st nl;.X|
|00003470| 2b 20 0a 58 2b 20 09 20 | 20 20 20 20 20 72 65 61 |+ .X+ . | rea|
|00003480| 64 28 64 65 73 63 2c 20 | 26 6e 6c 2c 20 73 69 7a |d(desc, |&nl, siz|
|00003490| 65 6f 66 28 6e 6c 29 29 | 3b 0a 58 2b 20 09 20 20 |eof(nl))|;.X+ . |
|000034a0| 20 20 20 20 70 72 69 6e | 74 66 28 22 25 20 36 78 | prin|tf("% 6x|
|000034b0| 20 20 25 20 36 78 20 20 | 25 20 38 78 20 20 25 20 | % 6x |% 8x % |
|000034c0| 36 78 20 25 73 5c 6e 22 | 2c 0a 58 2b 20 09 09 20 |6x %s\n"|,.X+ .. |
|000034d0| 20 20 20 20 28 75 6e 73 | 69 67 6e 65 64 20 63 68 | (uns|igned ch|
|000034e0| 61 72 29 6e 6c 2e 6e 5f | 74 79 70 65 2c 0a 58 2b |ar)nl.n_|type,.X+|
|000034f0| 20 09 09 20 20 20 20 20 | 28 75 6e 73 69 67 6e 65 | .. |(unsigne|
|00003500| 64 20 73 68 6f 72 74 29 | 6e 6c 2e 6e 5f 64 65 73 |d short)|nl.n_des|
|00003510| 63 2c 0a 58 2b 20 09 09 | 20 20 20 20 20 28 75 6e |c,.X+ ..| (un|
|00003520| 73 69 67 6e 65 64 20 69 | 6e 74 29 6e 6c 2e 6e 5f |signed i|nt)nl.n_|
|00003530| 76 61 6c 75 65 2c 0a 58 | 2b 20 09 09 20 20 20 20 |value,.X|+ .. |
|00003540| 20 6e 6c 2e 6e 5f 75 6e | 2e 6e 5f 73 74 72 78 20 | nl.n_un|.n_strx |
|00003550| 3f 20 73 74 61 62 20 2b | 20 73 74 72 5f 6f 66 66 |? stab +| str_off|
|00003560| 73 65 74 20 2b 20 6e 6c | 2e 6e 5f 75 6e 2e 6e 5f |set + nl|.n_un.n_|
|00003570| 73 74 72 78 20 3a 20 22 | 22 29 3b 0a 58 2b 20 09 |strx : "|");.X+ .|
|00003580| 20 20 20 20 7d 0a 58 2b | 20 09 20 20 20 20 6c 73 | }.X+| . ls|
|00003590| 65 65 6b 28 64 65 73 63 | 2c 20 30 4c 2c 20 30 29 |eek(desc|, 0L, 0)|
|000035a0| 3b 0a 58 2b 20 09 20 20 | 7d 0a 58 2b 20 7d 0a 58 |;.X+ . |}.X+ }.X|
|000035b0| 2b 20 0a 58 2b 20 70 65 | 72 72 6f 72 5f 77 69 74 |+ .X+ pe|rror_wit|
|000035c0| 68 5f 6e 61 6d 65 20 28 | 73 74 72 69 6e 67 29 0a |h_name (|string).|
|000035d0| 58 2b 20 20 20 20 20 20 | 63 68 61 72 20 2a 73 74 |X+ |char *st|
|000035e0| 72 69 6e 67 3b 0a 58 2b | 20 7b 0a 58 2b 20 20 20 |ring;.X+| {.X+ |
|000035f0| 65 78 74 65 72 6e 20 69 | 6e 74 20 73 79 73 5f 6e |extern i|nt sys_n|
|00003600| 65 72 72 3b 0a 58 2b 20 | 20 20 65 78 74 65 72 6e |err;.X+ | extern|
|00003610| 20 63 68 61 72 20 2a 73 | 79 73 5f 65 72 72 6c 69 | char *s|ys_errli|
|00003620| 73 74 5b 5d 3b 0a 58 2b | 20 20 20 65 78 74 65 72 |st[];.X+| exter|
|00003630| 6e 20 69 6e 74 20 65 72 | 72 6e 6f 3b 0a 58 2b 20 |n int er|rno;.X+ |
|00003640| 20 20 63 68 61 72 20 2a | 65 72 72 3b 0a 58 2b 20 | char *|err;.X+ |
|00003650| 20 20 63 68 61 72 20 2a | 63 6f 6d 62 69 6e 65 64 | char *|combined|
|00003660| 3b 0a 58 2b 20 0a 58 2b | 20 20 20 69 66 20 28 65 |;.X+ .X+| if (e|
|00003670| 72 72 6e 6f 20 3c 20 73 | 79 73 5f 6e 65 72 72 29 |rrno < s|ys_nerr)|
|00003680| 0a 58 2b 20 20 20 20 20 | 65 72 72 20 3d 20 73 79 |.X+ |err = sy|
|00003690| 73 5f 65 72 72 6c 69 73 | 74 5b 65 72 72 6e 6f 5d |s_errlis|t[errno]|
|000036a0| 3b 0a 58 2b 20 20 20 65 | 6c 73 65 0a 58 2b 20 20 |;.X+ e|lse.X+ |
|000036b0| 20 20 20 65 72 72 20 3d | 20 22 75 6e 6b 6e 6f 77 | err =| "unknow|
|000036c0| 6e 20 65 72 72 6f 72 22 | 3b 0a 58 2b 20 0a 58 2b |n error"|;.X+ .X+|
|000036d0| 20 20 20 63 6f 6d 62 69 | 6e 65 64 20 3d 20 28 63 | combi|ned = (c|
|000036e0| 68 61 72 20 2a 29 20 61 | 6c 6c 6f 63 61 20 28 73 |har *) a|lloca (s|
|000036f0| 74 72 6c 65 6e 20 28 65 | 72 72 29 20 2b 20 73 74 |trlen (e|rr) + st|
|00003700| 72 6c 65 6e 20 28 73 74 | 72 69 6e 67 29 20 2b 20 |rlen (st|ring) + |
|00003710| 33 29 3b 0a 58 2b 20 20 | 20 73 74 72 63 70 79 20 |3);.X+ | strcpy |
|00003720| 28 63 6f 6d 62 69 6e 65 | 64 2c 20 73 74 72 69 6e |(combine|d, strin|
|00003730| 67 29 3b 0a 58 2b 20 20 | 20 73 74 72 63 61 74 20 |g);.X+ | strcat |
|00003740| 28 63 6f 6d 62 69 6e 65 | 64 2c 20 22 3a 20 22 29 |(combine|d, ": ")|
|00003750| 3b 0a 58 2b 20 20 20 73 | 74 72 63 61 74 20 28 63 |;.X+ s|trcat (c|
|00003760| 6f 6d 62 69 6e 65 64 2c | 20 65 72 72 29 3b 0a 58 |ombined,| err);.X|
|00003770| 2b 20 0a 58 2b 20 20 20 | 65 72 72 6f 72 20 28 22 |+ .X+ |error ("|
|00003780| 25 73 2e 22 2c 20 63 6f | 6d 62 69 6e 65 64 29 3b |%s.", co|mbined);|
|00003790| 0a 58 2b 20 7d 0a 58 2b | 20 0a 58 2b 20 65 72 72 |.X+ }.X+| .X+ err|
|000037a0| 6f 72 20 28 73 74 72 69 | 6e 67 2c 20 61 72 67 31 |or (stri|ng, arg1|
|000037b0| 2c 20 61 72 67 32 2c 20 | 61 72 67 33 29 0a 58 2b |, arg2, |arg3).X+|
|000037c0| 20 20 20 20 20 20 63 68 | 61 72 20 2a 73 74 72 69 | ch|ar *stri|
|000037d0| 6e 67 3b 0a 58 2b 20 20 | 20 20 20 20 69 6e 74 20 |ng;.X+ | int |
|000037e0| 61 72 67 31 2c 20 61 72 | 67 32 2c 20 61 72 67 33 |arg1, ar|g2, arg3|
|000037f0| 3b 0a 58 2b 20 7b 0a 58 | 2b 20 20 20 66 66 6c 75 |;.X+ {.X|+ fflu|
|00003800| 73 68 20 28 73 74 64 6f | 75 74 29 3b 0a 58 2b 20 |sh (stdo|ut);.X+ |
|00003810| 20 20 66 70 72 69 6e 74 | 66 20 28 73 74 64 65 72 | fprint|f (stder|
|00003820| 72 2c 20 73 74 72 69 6e | 67 2c 20 61 72 67 31 2c |r, strin|g, arg1,|
|00003830| 20 61 72 67 32 2c 20 61 | 72 67 33 29 3b 0a 58 2b | arg2, a|rg3);.X+|
|00003840| 20 20 20 66 70 72 69 6e | 74 66 20 28 73 74 64 65 | fprin|tf (stde|
|00003850| 72 72 2c 20 22 5c 6e 22 | 29 3b 0a 58 2b 20 20 20 |rr, "\n"|);.X+ |
|00003860| 65 78 69 74 28 31 29 3b | 0a 58 2b 20 7d 0a 58 2b |exit(1);|.X+ }.X+|
|00003870| 20 0a 58 2b 20 63 68 61 | 72 20 2a 20 78 6d 61 6c | .X+ cha|r * xmal|
|00003880| 6c 6f 63 20 28 73 69 7a | 65 29 0a 58 2b 20 20 20 |loc (siz|e).X+ |
|00003890| 20 20 20 6c 6f 6e 67 20 | 73 69 7a 65 3b 0a 58 2b | long |size;.X+|
|000038a0| 20 7b 0a 58 2b 20 20 20 | 72 65 67 69 73 74 65 72 | {.X+ |register|
|000038b0| 20 63 68 61 72 20 2a 76 | 61 6c 20 3d 20 28 63 68 | char *v|al = (ch|
|000038c0| 61 72 20 2a 29 20 6d 61 | 6c 6c 6f 63 20 28 73 69 |ar *) ma|lloc (si|
|000038d0| 7a 65 29 3b 0a 58 2b 20 | 20 20 69 66 20 28 21 76 |ze);.X+ | if (!v|
|000038e0| 61 6c 29 0a 58 2b 20 20 | 20 20 20 65 72 72 6f 72 |al).X+ | error|
|000038f0| 20 28 22 76 69 72 74 75 | 61 6c 20 6d 65 6d 6f 72 | ("virtu|al memor|
|00003900| 79 20 65 78 68 61 75 73 | 74 65 64 2e 22 29 3b 0a |y exhaus|ted.");.|
|00003910| 58 2b 20 20 20 72 65 74 | 75 72 6e 20 76 61 6c 3b |X+ ret|urn val;|
|00003920| 0a 58 2b 20 7d 0a 58 2b | 20 0a 58 2b 20 63 68 61 |.X+ }.X+| .X+ cha|
|00003930| 72 20 2a 73 61 76 65 73 | 74 72 69 6e 67 20 28 70 |r *saves|tring (p|
|00003940| 74 72 2c 20 73 69 7a 65 | 29 0a 58 2b 20 20 20 20 |tr, size|).X+ |
|00003950| 20 20 63 68 61 72 20 2a | 70 74 72 3b 0a 58 2b 20 | char *|ptr;.X+ |
|00003960| 20 20 20 20 20 69 6e 74 | 20 73 69 7a 65 3b 0a 58 | int| size;.X|
|00003970| 2b 20 7b 0a 58 2b 20 20 | 20 72 65 67 69 73 74 65 |+ {.X+ | registe|
|00003980| 72 20 63 68 61 72 20 2a | 70 20 3d 20 28 63 68 61 |r char *|p = (cha|
|00003990| 72 20 2a 29 20 78 6d 61 | 6c 6c 6f 63 20 28 73 69 |r *) xma|lloc (si|
|000039a0| 7a 65 20 2b 20 31 29 3b | 0a 58 2b 20 20 20 6d 65 |ze + 1);|.X+ me|
|000039b0| 6d 63 70 79 28 70 2c 20 | 70 74 72 2c 20 73 69 7a |mcpy(p, |ptr, siz|
|000039c0| 65 29 3b 0a 58 2b 20 20 | 20 70 5b 73 69 7a 65 5d |e);.X+ | p[size]|
|000039d0| 20 3d 20 30 3b 0a 58 2b | 20 20 20 72 65 74 75 72 | = 0;.X+| retur|
|000039e0| 6e 20 70 3b 0a 58 2b 20 | 7d 0a 58 2b 20 0a 58 2b |n p;.X+ |}.X+ .X+|
|000039f0| 20 23 65 6e 64 69 66 20 | 2f 2a 20 54 45 53 54 20 | #endif |/* TEST |
|00003a00| 2a 2f 0a 58 2a 2a 2a 20 | 64 69 73 74 2d 67 64 62 |*/.X*** |dist-gdb|
|00003a10| 2e 6f 6c 64 2f 78 65 6e | 69 78 33 38 36 2d 64 65 |.old/xen|ix386-de|
|00003a20| 70 2e 63 09 54 68 75 20 | 4a 61 6e 20 20 31 20 30 |p.c.Thu |Jan 1 0|
|00003a30| 30 3a 30 30 3a 30 30 20 | 31 39 37 30 0a 58 2d 2d |0:00:00 |1970.X--|
|00003a40| 2d 20 78 65 6e 69 78 33 | 38 36 2d 64 65 70 2e 63 |- xenix3|86-dep.c|
|00003a50| 09 4d 6f 6e 20 4d 61 79 | 20 20 37 20 31 35 3a 30 |.Mon May| 7 15:0|
|00003a60| 32 3a 31 30 20 31 39 39 | 30 0a 58 2a 2a 2a 2a 2a |2:10 199|0.X*****|
|00003a70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0a 58 2a 2a 2a 20 |********|**.X*** |
|00003a80| 30 20 2a 2a 2a 2a 0a 58 | 2d 2d 2d 20 31 2c 31 32 |0 ****.X|--- 1,12|
|00003a90| 37 35 20 2d 2d 2d 2d 0a | 58 2b 20 2f 2a 20 4c 6f |75 ----.|X+ /* Lo|
|00003aa0| 77 20 6c 65 76 65 6c 20 | 69 6e 74 65 72 66 61 63 |w level |interfac|
|00003ab0| 65 20 74 6f 20 70 74 72 | 61 63 65 2c 20 66 6f 72 |e to ptr|ace, for|
|00003ac0| 20 47 44 42 20 77 68 65 | 6e 20 72 75 6e 6e 69 6e | GDB whe|n runnin|
|00003ad0| 67 20 6f 6e 20 74 68 65 | 20 49 6e 74 65 6c 20 33 |g on the| Intel 3|
|00003ae0| 38 36 2e 0a 58 2b 20 20 | 20 20 43 6f 70 79 72 69 |86..X+ | Copyri|
|00003af0| 67 68 74 20 28 43 29 20 | 31 39 38 38 2c 20 31 39 |ght (C) |1988, 19|
|00003b00| 38 39 20 46 72 65 65 20 | 53 6f 66 74 77 61 72 65 |89 Free |Software|
|00003b10| 20 46 6f 75 6e 64 61 74 | 69 6f 6e 2c 20 49 6e 63 | Foundat|ion, Inc|
|00003b20| 2e 0a 58 2b 20 0a 58 2b | 20 54 68 69 73 20 66 69 |..X+ .X+| This fi|
|00003b30| 6c 65 20 69 73 20 70 61 | 72 74 20 6f 66 20 47 44 |le is pa|rt of GD|
|00003b40| 42 2e 0a 58 2b 20 0a 58 | 2b 20 47 44 42 20 69 73 |B..X+ .X|+ GDB is|
|00003b50| 20 66 72 65 65 20 73 6f | 66 74 77 61 72 65 3b 20 | free so|ftware; |
|00003b60| 79 6f 75 20 63 61 6e 20 | 72 65 64 69 73 74 72 69 |you can |redistri|
|00003b70| 62 75 74 65 20 69 74 20 | 61 6e 64 2f 6f 72 20 6d |bute it |and/or m|
|00003b80| 6f 64 69 66 79 0a 58 2b | 20 69 74 20 75 6e 64 65 |odify.X+| it unde|
|00003b90| 72 20 74 68 65 20 74 65 | 72 6d 73 20 6f 66 20 74 |r the te|rms of t|
|00003ba0| 68 65 20 47 4e 55 20 47 | 65 6e 65 72 61 6c 20 50 |he GNU G|eneral P|
|00003bb0| 75 62 6c 69 63 20 4c 69 | 63 65 6e 73 65 20 61 73 |ublic Li|cense as|
|00003bc0| 20 70 75 62 6c 69 73 68 | 65 64 20 62 79 0a 58 2b | publish|ed by.X+|
|00003bd0| 20 74 68 65 20 46 72 65 | 65 20 53 6f 66 74 77 61 | the Fre|e Softwa|
|00003be0| 72 65 20 46 6f 75 6e 64 | 61 74 69 6f 6e 3b 20 65 |re Found|ation; e|
|00003bf0| 69 74 68 65 72 20 76 65 | 72 73 69 6f 6e 20 31 2c |ither ve|rsion 1,|
|00003c00| 20 6f 72 20 28 61 74 20 | 79 6f 75 72 20 6f 70 74 | or (at |your opt|
|00003c10| 69 6f 6e 29 0a 58 2b 20 | 61 6e 79 20 6c 61 74 65 |ion).X+ |any late|
|00003c20| 72 20 76 65 72 73 69 6f | 6e 2e 0a 58 2b 20 0a 58 |r versio|n..X+ .X|
|00003c30| 2b 20 47 44 42 20 69 73 | 20 64 69 73 74 72 69 62 |+ GDB is| distrib|
|00003c40| 75 74 65 64 20 69 6e 20 | 74 68 65 20 68 6f 70 65 |uted in |the hope|
|00003c50| 20 74 68 61 74 20 69 74 | 20 77 69 6c 6c 20 62 65 | that it| will be|
|00003c60| 20 75 73 65 66 75 6c 2c | 0a 58 2b 20 62 75 74 20 | useful,|.X+ but |
|00003c70| 57 49 54 48 4f 55 54 20 | 41 4e 59 20 57 41 52 52 |WITHOUT |ANY WARR|
|00003c80| 41 4e 54 59 3b 20 77 69 | 74 68 6f 75 74 20 65 76 |ANTY; wi|thout ev|
|00003c90| 65 6e 20 74 68 65 20 69 | 6d 70 6c 69 65 64 20 77 |en the i|mplied w|
|00003ca0| 61 72 72 61 6e 74 79 20 | 6f 66 0a 58 2b 20 4d 45 |arranty |of.X+ ME|
|00003cb0| 52 43 48 41 4e 54 41 42 | 49 4c 49 54 59 20 6f 72 |RCHANTAB|ILITY or|
|00003cc0| 20 46 49 54 4e 45 53 53 | 20 46 4f 52 20 41 20 50 | FITNESS| FOR A P|
|00003cd0| 41 52 54 49 43 55 4c 41 | 52 20 50 55 52 50 4f 53 |ARTICULA|R PURPOS|
|00003ce0| 45 2e 20 20 53 65 65 20 | 74 68 65 0a 58 2b 20 47 |E. See |the.X+ G|
|00003cf0| 4e 55 20 47 65 6e 65 72 | 61 6c 20 50 75 62 6c 69 |NU Gener|al Publi|
|00003d00| 63 20 4c 69 63 65 6e 73 | 65 20 66 6f 72 20 6d 6f |c Licens|e for mo|
|00003d10| 72 65 20 64 65 74 61 69 | 6c 73 2e 0a 58 2b 20 0a |re detai|ls..X+ .|
|00003d20| 58 2b 20 59 6f 75 20 73 | 68 6f 75 6c 64 20 68 61 |X+ You s|hould ha|
|00003d30| 76 65 20 72 65 63 65 69 | 76 65 64 20 61 20 63 6f |ve recei|ved a co|
|00003d40| 70 79 20 6f 66 20 74 68 | 65 20 47 4e 55 20 47 65 |py of th|e GNU Ge|
|00003d50| 6e 65 72 61 6c 20 50 75 | 62 6c 69 63 20 4c 69 63 |neral Pu|blic Lic|
|00003d60| 65 6e 73 65 0a 58 2b 20 | 61 6c 6f 6e 67 20 77 69 |ense.X+ |along wi|
|00003d70| 74 68 20 47 44 42 3b 20 | 73 65 65 20 74 68 65 20 |th GDB; |see the |
|00003d80| 66 69 6c 65 20 43 4f 50 | 59 49 4e 47 2e 20 20 49 |file COP|YING. I|
|00003d90| 66 20 6e 6f 74 2c 20 77 | 72 69 74 65 20 74 6f 0a |f not, w|rite to.|
|00003da0| 58 2b 20 74 68 65 20 46 | 72 65 65 20 53 6f 66 74 |X+ the F|ree Soft|
|00003db0| 77 61 72 65 20 46 6f 75 | 6e 64 61 74 69 6f 6e 2c |ware Fou|ndation,|
|00003dc0| 20 36 37 35 20 4d 61 73 | 73 20 41 76 65 2c 20 43 | 675 Mas|s Ave, C|
|00003dd0| 61 6d 62 72 69 64 67 65 | 2c 20 4d 41 20 30 32 31 |ambridge|, MA 021|
|00003de0| 33 39 2c 20 55 53 41 2e | 20 20 2a 2f 0a 58 2b 20 |39, USA.| */.X+ |
|00003df0| 0a 58 2b 20 23 69 6e 63 | 6c 75 64 65 20 3c 73 74 |.X+ #inc|lude <st|
|00003e00| 64 69 6f 2e 68 3e 0a 58 | 2b 20 23 69 6e 63 6c 75 |dio.h>.X|+ #inclu|
|00003e10| 64 65 20 22 64 65 66 73 | 2e 68 22 0a 58 2b 20 23 |de "defs|.h".X+ #|
|00003e20| 69 6e 63 6c 75 64 65 20 | 22 70 61 72 61 6d 2e 68 |include |"param.h|
|00003e30| 22 0a 58 2b 20 23 69 6e | 63 6c 75 64 65 20 22 66 |".X+ #in|clude "f|
|00003e40| 72 61 6d 65 2e 68 22 0a | 58 2b 20 23 69 6e 63 6c |rame.h".|X+ #incl|
|00003e50| 75 64 65 20 22 69 6e 66 | 65 72 69 6f 72 2e 68 22 |ude "inf|erior.h"|
|00003e60| 0a 58 2b 20 0a 58 2b 20 | 23 69 66 64 65 66 20 55 |.X+ .X+ |#ifdef U|
|00003e70| 53 47 0a 58 2b 20 23 69 | 6e 63 6c 75 64 65 20 3c |SG.X+ #i|nclude <|
|00003e80| 73 79 73 2f 74 79 70 65 | 73 2e 68 3e 0a 58 2b 20 |sys/type|s.h>.X+ |
|00003e90| 23 65 6e 64 69 66 0a 58 | 2b 20 0a 58 2b 20 23 69 |#endif.X|+ .X+ #i|
|00003ea0| 6e 63 6c 75 64 65 20 3c | 73 74 64 69 6f 2e 68 3e |nclude <|stdio.h>|
|00003eb0| 0a 58 2b 20 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |.X+ #inc|lude <sy|
|00003ec0| 73 2f 70 61 72 61 6d 2e | 68 3e 0a 58 2b 20 23 69 |s/param.|h>.X+ #i|
|00003ed0| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 64 69 72 2e |nclude <|sys/dir.|
|00003ee0| 68 3e 0a 58 2b 20 23 69 | 6e 63 6c 75 64 65 20 3c |h>.X+ #i|nclude <|
|00003ef0| 73 69 67 6e 61 6c 2e 68 | 3e 0a 58 2b 20 23 69 66 |signal.h|>.X+ #if|
|00003f00| 64 65 66 20 4d 5f 58 45 | 4e 49 58 0a 58 2b 20 23 |def M_XE|NIX.X+ #|
|00003f10| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 2f 70 61 67 |include |<sys/pag|
|00003f20| 65 2e 68 3e 0a 58 2b 20 | 23 69 6e 63 6c 75 64 65 |e.h>.X+ |#include|
|00003f30| 20 3c 73 79 73 2f 73 65 | 67 2e 68 3e 0a 58 2b 20 | <sys/se|g.h>.X+ |
|00003f40| 23 65 6e 64 69 66 0a 58 | 2b 20 23 69 6e 63 6c 75 |#endif.X|+ #inclu|
|00003f50| 64 65 20 3c 73 79 73 2f | 75 73 65 72 2e 68 3e 0a |de <sys/|user.h>.|
|00003f60| 58 2b 20 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |X+ #incl|ude <sys|
|00003f70| 2f 69 6f 63 74 6c 2e 68 | 3e 0a 58 2b 20 23 69 6e |/ioctl.h|>.X+ #in|
|00003f80| 63 6c 75 64 65 20 3c 66 | 63 6e 74 6c 2e 68 3e 0a |clude <f|cntl.h>.|
|00003f90| 58 2b 20 0a 58 2b 20 23 | 69 66 64 65 66 20 43 4f |X+ .X+ #|ifdef CO|
|00003fa0| 46 46 5f 45 4e 43 41 50 | 53 55 4c 41 54 45 0a 58 |FF_ENCAP|SULATE.X|
|00003fb0| 2b 20 23 69 6e 63 6c 75 | 64 65 20 22 61 2e 6f 75 |+ #inclu|de "a.ou|
|00003fc0| 74 2e 65 6e 63 61 70 2e | 68 22 0a 58 2b 20 23 65 |t.encap.|h".X+ #e|
|00003fd0| 6c 73 65 0a 58 2b 20 23 | 69 66 6e 64 65 66 20 4d |lse.X+ #|ifndef M|
|00003fe0| 5f 58 45 4e 49 58 09 09 | 09 2f 2a 20 62 72 61 69 |_XENIX..|./* brai|
|00003ff0| 6e 2d 64 65 61 64 20 78 | 65 6e 69 78 20 73 74 72 |n-dead x|enix str|
|00004000| 69 6b 65 73 20 61 67 61 | 69 6e 20 2a 2f 0a 58 2b |ikes aga|in */.X+|
|00004010| 20 23 69 6e 63 6c 75 64 | 65 20 3c 61 2e 6f 75 74 | #includ|e <a.out|
|00004020| 2e 68 3e 0a 58 2b 20 23 | 65 6e 64 69 66 0a 58 2b |.h>.X+ #|endif.X+|
|00004030| 20 23 65 6e 64 69 66 0a | 58 2b 20 0a 58 2b 20 23 | #endif.|X+ .X+ #|
|00004040| 69 66 6e 64 65 66 20 4e | 5f 53 45 54 5f 4d 41 47 |ifndef N|_SET_MAG|
|00004050| 49 43 0a 58 2b 20 23 69 | 66 64 65 66 20 43 4f 46 |IC.X+ #i|fdef COF|
|00004060| 46 5f 46 4f 52 4d 41 54 | 0a 58 2b 20 23 64 65 66 |F_FORMAT|.X+ #def|
|00004070| 69 6e 65 20 4e 5f 53 45 | 54 5f 4d 41 47 49 43 28 |ine N_SE|T_MAGIC(|
|00004080| 65 78 65 63 2c 20 76 61 | 6c 29 20 28 28 65 78 65 |exec, va|l) ((exe|
|00004090| 63 29 2e 6d 61 67 69 63 | 20 3d 20 28 76 61 6c 29 |c).magic| = (val)|
|000040a0| 29 0a 58 2b 20 23 65 6c | 73 65 0a 58 2b 20 23 64 |).X+ #el|se.X+ #d|
|000040b0| 65 66 69 6e 65 20 4e 5f | 53 45 54 5f 4d 41 47 49 |efine N_|SET_MAGI|
|000040c0| 43 28 61 65 78 65 63 2c | 20 76 61 6c 29 20 28 28 |C(aexec,| val) ((|
|000040d0| 61 65 78 65 63 29 2e 78 | 61 5f 6d 61 67 69 63 20 |aexec).x|a_magic |
|000040e0| 3d 20 28 76 61 6c 29 29 | 0a 58 2b 20 23 65 6e 64 |= (val))|.X+ #end|
|000040f0| 69 66 0a 58 2b 20 23 65 | 6e 64 69 66 0a 58 2b 20 |if.X+ #e|ndif.X+ |
|00004100| 0a 58 2b 20 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |.X+ #inc|lude <sy|
|00004110| 73 2f 66 69 6c 65 2e 68 | 3e 0a 58 2b 20 23 69 6e |s/file.h|>.X+ #in|
|00004120| 63 6c 75 64 65 20 3c 73 | 79 73 2f 73 74 61 74 2e |clude <s|ys/stat.|
|00004130| 68 3e 0a 58 2b 20 23 69 | 6e 63 6c 75 64 65 20 3c |h>.X+ #i|nclude <|
|00004140| 73 79 73 2f 70 72 6f 63 | 2e 68 3e 0a 58 2b 20 0a |sys/proc|.h>.X+ .|
|00004150| 58 2b 20 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |X+ #incl|ude <sys|
|00004160| 2f 72 65 67 2e 68 3e 0a | 58 2b 20 0a 58 2b 20 75 |/reg.h>.|X+ .X+ u|
|00004170| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 20 74 65 |nsigned |short te|
|00004180| 78 74 5f 73 65 67 69 64 | 3b 09 2f 2a 20 73 65 67 |xt_segid|;./* seg|
|00004190| 6d 65 6e 74 20 6e 75 6d | 62 65 72 20 6f 66 20 74 |ment num|ber of t|
|000041a0| 65 78 74 20 73 65 67 6d | 65 6e 74 20 2a 2f 0a 58 |ext segm|ent */.X|
|000041b0| 2b 20 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |+ unsign|ed short|
|000041c0| 20 64 61 74 61 5f 73 65 | 67 69 64 3b 09 2f 2a 20 | data_se|gid;./* |
|000041d0| 73 65 67 6d 65 6e 74 20 | 6e 75 6d 62 65 72 20 6f |segment |number o|
|000041e0| 66 20 64 61 74 61 20 73 | 65 67 6d 65 6e 74 20 2a |f data s|egment *|
|000041f0| 2f 0a 58 2b 20 65 78 74 | 65 72 6e 20 43 4f 52 45 |/.X+ ext|ern CORE|
|00004200| 5f 41 44 44 52 20 74 65 | 78 74 5f 65 6e 64 3b 20 |_ADDR te|xt_end; |
|00004210| 5c 0a 58 2b 20 0a 58 2b | 20 23 69 66 64 65 66 20 |\.X+ .X+| #ifdef |
|00004220| 58 5f 44 45 42 55 47 0a | 58 2b 20 50 74 72 61 63 |X_DEBUG.|X+ Ptrac|
|00004230| 65 28 6c 2c 20 61 2c 20 | 62 2c 20 63 2c 20 64 29 |e(l, a, |b, c, d)|
|00004240| 0a 58 2b 20 69 6e 74 20 | 6c 3b 0a 58 2b 20 69 6e |.X+ int |l;.X+ in|
|00004250| 74 20 61 2c 20 62 2c 20 | 63 2c 20 64 3b 0a 58 2b |t a, b, |c, d;.X+|
|00004260| 20 7b 0a 58 2b 20 09 70 | 72 69 6e 74 66 28 22 61 | {.X+ .p|rintf("a|
|00004270| 74 20 6c 69 6e 65 20 25 | 64 2c 20 72 65 71 20 3d |t line %|d, req =|
|00004280| 20 25 64 2c 20 70 69 64 | 20 3d 20 25 64 2c 20 61 | %d, pid| = %d, a|
|00004290| 64 64 72 20 3d 20 25 23 | 78 2c 20 64 61 74 61 20 |ddr = %#|x, data |
|000042a0| 3d 20 25 64 5c 6e 22 2c | 0a 58 2b 20 09 20 20 20 |= %d\n",|.X+ . |
|000042b0| 20 20 20 20 6c 2c 20 61 | 2c 20 62 2c 20 63 2c 20 | l, a|, b, c, |
|000042c0| 64 29 3b 0a 58 2b 20 20 | 20 20 20 20 20 20 20 72 |d);.X+ | r|
|000042d0| 65 74 75 72 6e 20 70 74 | 72 61 63 65 20 28 61 2c |eturn pt|race (a,|
|000042e0| 20 62 2c 20 63 2c 20 64 | 29 3b 0a 58 2b 20 7d 0a | b, c, d|);.X+ }.|
|000042f0| 58 2b 20 0a 58 2b 20 23 | 64 65 66 69 6e 65 20 70 |X+ .X+ #|define p|
|00004300| 74 72 61 63 65 28 61 2c | 62 2c 63 2c 64 29 20 50 |trace(a,|b,c,d) P|
|00004310| 74 72 61 63 65 28 5f 5f | 4c 49 4e 45 5f 5f 2c 20 |trace(__|LINE__, |
|00004320| 61 2c 20 62 2c 20 63 2c | 20 64 29 0a 58 2b 20 23 |a, b, c,| d).X+ #|
|00004330| 65 6e 64 69 66 20 2f 2a | 20 58 5f 44 45 42 55 47 |endif /*| X_DEBUG|
|00004340| 20 2a 2f 0a 58 2b 20 0a | 58 2b 20 74 79 70 65 64 | */.X+ .|X+ typed|
|00004350| 65 66 20 73 74 72 75 63 | 74 20 73 61 64 64 72 20 |ef struc|t saddr |
|00004360| 50 54 52 41 43 45 3b 0a | 58 2b 20 73 74 61 74 69 |PTRACE;.|X+ stati|
|00004370| 63 20 50 54 52 41 43 45 | 20 74 6d 70 74 72 61 63 |c PTRACE| tmptrac|
|00004380| 65 3b 0a 58 2b 20 65 78 | 74 65 72 6e 20 69 6e 74 |e;.X+ ex|tern int|
|00004390| 20 65 72 72 6e 6f 3b 0a | 58 2b 20 0c 0a 58 2b 20 | errno;.|X+ ..X+ |
|000043a0| 2f 2a 20 54 68 69 73 20 | 66 75 6e 63 74 69 6f 6e |/* This |function|
|000043b0| 20 73 69 6d 70 6c 79 20 | 63 61 6c 6c 73 20 70 74 | simply |calls pt|
|000043c0| 72 61 63 65 20 77 69 74 | 68 20 74 68 65 20 67 69 |race wit|h the gi|
|000043d0| 76 65 6e 20 61 72 67 75 | 6d 65 6e 74 73 2e 20 20 |ven argu|ments. |
|000043e0| 0a 58 2b 20 20 20 20 49 | 74 20 65 78 69 73 74 73 |.X+ I|t exists|
|000043f0| 20 73 6f 20 74 68 61 74 | 20 61 6c 6c 20 63 61 6c | so that| all cal|
|00004400| 6c 73 20 74 6f 20 70 74 | 72 61 63 65 20 61 72 65 |ls to pt|race are|
|00004410| 20 69 73 6f 6c 61 74 65 | 64 20 69 6e 20 74 68 69 | isolate|d in thi|
|00004420| 73 20 0a 58 2b 20 20 20 | 20 6d 61 63 68 69 6e 65 |s .X+ | machine|
|00004430| 2d 64 65 70 65 6e 64 65 | 6e 74 20 66 69 6c 65 2e |-depende|nt file.|
|00004440| 20 2a 2f 0a 58 2b 20 69 | 6e 74 0a 58 2b 20 63 61 | */.X+ i|nt.X+ ca|
|00004450| 6c 6c 5f 70 74 72 61 63 | 65 20 28 72 65 71 75 65 |ll_ptrac|e (reque|
|00004460| 73 74 2c 20 70 69 64 2c | 20 61 72 67 33 2c 20 61 |st, pid,| arg3, a|
|00004470| 72 67 34 29 0a 58 2b 20 | 20 20 20 20 20 69 6e 74 |rg4).X+ | int|
|00004480| 20 72 65 71 75 65 73 74 | 2c 20 70 69 64 2c 20 61 | request|, pid, a|
|00004490| 72 67 33 2c 20 61 72 67 | 34 3b 0a 58 2b 20 7b 0a |rg3, arg|4;.X+ {.|
|000044a0| 58 2b 20 20 20 72 65 74 | 75 72 6e 20 70 74 72 61 |X+ ret|urn ptra|
|000044b0| 63 65 20 28 72 65 71 75 | 65 73 74 2c 20 70 69 64 |ce (requ|est, pid|
|000044c0| 2c 20 61 72 67 33 2c 20 | 61 72 67 34 29 3b 0a 58 |, arg3, |arg4);.X|
|000044d0| 2b 20 7d 0a 58 2b 20 0a | 58 2b 20 6b 69 6c 6c 5f |+ }.X+ .|X+ kill_|
|000044e0| 69 6e 66 65 72 69 6f 72 | 20 28 29 0a 58 2b 20 7b |inferior| ().X+ {|
|000044f0| 0a 58 2b 20 20 20 69 66 | 20 28 72 65 6d 6f 74 65 |.X+ if| (remote|
|00004500| 5f 64 65 62 75 67 67 69 | 6e 67 29 0a 58 2b 20 20 |_debuggi|ng).X+ |
|00004510| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 2b 20 20 20 | retur|n;.X+ |
|00004520| 69 66 20 28 69 6e 66 65 | 72 69 6f 72 5f 70 69 64 |if (infe|rior_pid|
|00004530| 20 3d 3d 20 30 29 0a 58 | 2b 20 20 20 20 20 72 65 | == 0).X|+ re|
|00004540| 74 75 72 6e 3b 0a 58 2b | 20 20 20 70 74 72 61 63 |turn;.X+| ptrac|
|00004550| 65 20 28 38 2c 20 69 6e | 66 65 72 69 6f 72 5f 70 |e (8, in|ferior_p|
|00004560| 69 64 2c 20 30 2c 20 30 | 29 3b 0a 58 2b 20 20 20 |id, 0, 0|);.X+ |
|00004570| 77 61 69 74 20 28 30 29 | 3b 0a 58 2b 20 20 20 69 |wait (0)|;.X+ i|
|00004580| 6e 66 65 72 69 6f 72 5f | 64 69 65 64 20 28 29 3b |nferior_|died ();|
|00004590| 0a 58 2b 20 7d 0a 58 2b | 20 0a 58 2b 20 2f 2a 20 |.X+ }.X+| .X+ /* |
|000045a0| 54 68 69 73 20 69 73 20 | 75 73 65 64 20 77 68 65 |This is |used whe|
|000045b0| 6e 20 47 44 42 20 69 73 | 20 65 78 69 74 69 6e 67 |n GDB is| exiting|
|000045c0| 2e 20 20 49 74 20 67 69 | 76 65 73 20 6c 65 73 73 |. It gi|ves less|
|000045d0| 20 63 68 61 6e 63 65 20 | 6f 66 20 65 72 72 6f 72 | chance |of error|
|000045e0| 2e 2a 2f 0a 58 2b 20 0a | 58 2b 20 6b 69 6c 6c 5f |.*/.X+ .|X+ kill_|
|000045f0| 69 6e 66 65 72 69 6f 72 | 5f 66 61 73 74 20 28 29 |inferior|_fast ()|
|00004600| 0a 58 2b 20 7b 0a 58 2b | 20 20 20 69 66 20 28 72 |.X+ {.X+| if (r|
|00004610| 65 6d 6f 74 65 5f 64 65 | 62 75 67 67 69 6e 67 29 |emote_de|bugging)|
|00004620| 0a 58 2b 20 20 20 20 20 | 72 65 74 75 72 6e 3b 0a |.X+ |return;.|
|00004630| 58 2b 20 20 20 69 66 20 | 28 69 6e 66 65 72 69 6f |X+ if |(inferio|
|00004640| 72 5f 70 69 64 20 3d 3d | 20 30 29 0a 58 2b 20 20 |r_pid ==| 0).X+ |
|00004650| 20 20 20 72 65 74 75 72 | 6e 3b 0a 58 2b 20 20 20 | retur|n;.X+ |
|00004660| 70 74 72 61 63 65 20 28 | 38 2c 20 69 6e 66 65 72 |ptrace (|8, infer|
|00004670| 69 6f 72 5f 70 69 64 2c | 20 30 2c 20 30 29 3b 0a |ior_pid,| 0, 0);.|
|00004680| 58 2b 20 20 20 77 61 69 | 74 20 28 30 29 3b 0a 58 |X+ wai|t (0);.X|
|00004690| 2b 20 7d 0a 58 2b 20 0a | 58 2b 20 2f 2a 20 52 65 |+ }.X+ .|X+ /* Re|
|000046a0| 73 75 6d 65 20 65 78 65 | 63 75 74 69 6f 6e 20 6f |sume exe|cution o|
|000046b0| 66 20 74 68 65 20 69 6e | 66 65 72 69 6f 72 20 70 |f the in|ferior p|
|000046c0| 72 6f 63 65 73 73 2e 0a | 58 2b 20 20 20 20 49 66 |rocess..|X+ If|
|000046d0| 20 53 54 45 50 20 69 73 | 20 6e 6f 6e 7a 65 72 6f | STEP is| nonzero|
|000046e0| 2c 20 73 69 6e 67 6c 65 | 2d 73 74 65 70 20 69 74 |, single|-step it|
|000046f0| 2e 0a 58 2b 20 20 20 20 | 49 66 20 53 49 47 4e 41 |..X+ |If SIGNA|
|00004700| 4c 20 69 73 20 6e 6f 6e | 7a 65 72 6f 2c 20 67 69 |L is non|zero, gi|
|00004710| 76 65 20 69 74 20 74 68 | 61 74 20 73 69 67 6e 61 |ve it th|at signa|
|00004720| 6c 2e 20 20 2a 2f 0a 58 | 2b 20 0a 58 2b 20 76 6f |l. */.X|+ .X+ vo|
|00004730| 69 64 0a 58 2b 20 72 65 | 73 75 6d 65 20 28 73 74 |id.X+ re|sume (st|
|00004740| 65 70 2c 20 73 69 67 6e | 61 6c 29 0a 58 2b 20 20 |ep, sign|al).X+ |
|00004750| 20 20 20 20 69 6e 74 20 | 73 74 65 70 3b 0a 58 2b | int |step;.X+|
|00004760| 20 20 20 20 20 20 69 6e | 74 20 73 69 67 6e 61 6c | in|t signal|
|00004770| 3b 0a 58 2b 20 7b 0a 58 | 2b 20 20 20 50 54 52 41 |;.X+ {.X|+ PTRA|
|00004780| 43 45 20 61 64 64 72 3b | 0a 58 2b 20 20 20 61 64 |CE addr;|.X+ ad|
|00004790| 64 72 2e 73 61 5f 73 65 | 67 20 3d 20 30 3b 0a 58 |dr.sa_se|g = 0;.X|
|000047a0| 2b 20 20 20 61 64 64 72 | 2e 73 61 5f 6f 66 66 20 |+ addr|.sa_off |
|000047b0| 3d 20 31 3b 0a 58 2b 20 | 20 20 65 72 72 6e 6f 20 |= 1;.X+ | errno |
|000047c0| 3d 20 30 3b 0a 58 2b 20 | 20 20 69 66 20 28 72 65 |= 0;.X+ | if (re|
|000047d0| 6d 6f 74 65 5f 64 65 62 | 75 67 67 69 6e 67 29 0a |mote_deb|ugging).|
|000047e0| 58 2b 20 20 20 20 20 72 | 65 6d 6f 74 65 5f 72 65 |X+ r|emote_re|
|000047f0| 73 75 6d 65 20 28 73 74 | 65 70 2c 20 73 69 67 6e |sume (st|ep, sign|
|00004800| 61 6c 29 3b 0a 58 2b 20 | 20 20 65 6c 73 65 0a 58 |al);.X+ | else.X|
|00004810| 2b 20 20 20 20 20 7b 0a | 58 2b 20 20 20 20 20 20 |+ {.|X+ |
|00004820| 20 2f 2a 20 70 74 72 61 | 63 65 20 28 73 74 65 70 | /* ptra|ce (step|
|00004830| 20 3f 20 39 20 3a 20 37 | 2c 20 69 6e 66 65 72 69 | ? 9 : 7|, inferi|
|00004840| 6f 72 5f 70 69 64 2c 20 | 26 61 64 64 72 2c 20 73 |or_pid, |&addr, s|
|00004850| 69 67 6e 61 6c 29 3b 20 | 2a 2f 0a 58 2b 20 20 20 |ignal); |*/.X+ |
|00004860| 20 20 20 20 70 74 72 61 | 63 65 20 28 73 74 65 70 | ptra|ce (step|
|00004870| 20 3f 20 39 20 3a 20 37 | 2c 20 69 6e 66 65 72 69 | ? 9 : 7|, inferi|
|00004880| 6f 72 5f 70 69 64 2c 20 | 31 2c 20 73 69 67 6e 61 |or_pid, |1, signa|
|00004890| 6c 29 3b 0a 58 2b 20 20 | 20 20 20 20 20 69 66 20 |l);.X+ | if |
|000048a0| 28 65 72 72 6e 6f 29 0a | 58 2b 20 09 70 65 72 72 |(errno).|X+ .perr|
|000048b0| 6f 72 5f 77 69 74 68 5f | 6e 61 6d 65 20 28 22 70 |or_with_|name ("p|
|000048c0| 74 72 61 63 65 22 29 3b | 0a 58 2b 20 20 20 20 20 |trace");|.X+ |
|000048d0| 7d 0a 58 2b 20 7d 0a 58 | 2b 20 0c 0a 58 2b 20 76 |}.X+ }.X|+ ..X+ v|
|000048e0| 6f 69 64 0a 58 2b 20 66 | 65 74 63 68 5f 69 6e 66 |oid.X+ f|etch_inf|
|000048f0| 65 72 69 6f 72 5f 72 65 | 67 69 73 74 65 72 73 20 |erior_re|gisters |
|00004900| 28 29 0a 58 2b 20 7b 0a | 58 2b 20 20 20 72 65 67 |().X+ {.|X+ reg|
|00004910| 69 73 74 65 72 20 69 6e | 74 20 72 65 67 6e 6f 3b |ister in|t regno;|
|00004920| 0a 58 2b 20 20 20 72 65 | 67 69 73 74 65 72 20 75 |.X+ re|gister u|
|00004930| 6e 73 69 67 6e 65 64 20 | 69 6e 74 20 72 65 67 61 |nsigned |int rega|
|00004940| 64 64 72 3b 0a 58 2b 20 | 20 20 63 68 61 72 20 62 |ddr;.X+ | char b|
|00004950| 75 66 5b 4d 41 58 5f 52 | 45 47 49 53 54 45 52 5f |uf[MAX_R|EGISTER_|
|00004960| 52 41 57 5f 53 49 5a 45 | 5d 3b 0a 58 2b 20 20 20 |RAW_SIZE|];.X+ |
|00004970| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 3b 0a |register| int i;.|
|00004980| 58 2b 20 0a 58 2b 20 20 | 20 73 74 72 75 63 74 20 |X+ .X+ | struct |
|00004990| 75 73 65 72 20 75 3b 0a | 58 2b 20 20 20 75 6e 73 |user u;.|X+ uns|
|000049a0| 69 67 6e 65 64 20 69 6e | 74 20 6f 66 66 73 65 74 |igned in|t offset|
|000049b0| 20 3d 20 28 63 68 61 72 | 20 2a 29 20 26 75 2e 75 | = (char| *) &u.u|
|000049c0| 5f 61 72 30 20 2d 20 28 | 63 68 61 72 20 2a 29 20 |_ar0 - (|char *) |
|000049d0| 26 75 3b 0a 58 2b 20 20 | 20 6f 66 66 73 65 74 20 |&u;.X+ | offset |
|000049e0| 3d 20 70 74 72 61 63 65 | 20 28 33 2c 20 69 6e 66 |= ptrace| (3, inf|
|000049f0| 65 72 69 6f 72 5f 70 69 | 64 2c 20 6f 66 66 73 65 |erior_pi|d, offse|
|00004a00| 74 2c 20 30 29 20 2d 20 | 4b 45 52 4e 45 4c 5f 55 |t, 0) - |KERNEL_U|
|00004a10| 5f 41 44 44 52 3b 0a 58 | 2b 20 0a 58 2b 20 20 20 |_ADDR;.X|+ .X+ |
|00004a20| 66 6f 72 20 28 72 65 67 | 6e 6f 20 3d 20 30 3b 20 |for (reg|no = 0; |
|00004a30| 72 65 67 6e 6f 20 3c 20 | 4e 55 4d 5f 52 45 47 53 |regno < |NUM_REGS|
|00004a40| 3b 20 72 65 67 6e 6f 2b | 2b 29 0a 58 2b 20 20 20 |; regno+|+).X+ |
|00004a50| 20 20 7b 0a 58 2b 20 20 | 20 20 20 20 20 72 65 67 | {.X+ | reg|
|00004a60| 61 64 64 72 20 3d 20 72 | 65 67 69 73 74 65 72 5f |addr = r|egister_|
|00004a70| 61 64 64 72 20 28 72 65 | 67 6e 6f 2c 20 6f 66 66 |addr (re|gno, off|
|00004a80| 73 65 74 29 3b 0a 58 2b | 20 20 20 20 20 20 20 66 |set);.X+| f|
|00004a90| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 52 |or (i = |0; i < R|
|00004aa0| 45 47 49 53 54 45 52 5f | 52 41 57 5f 53 49 5a 45 |EGISTER_|RAW_SIZE|
|00004ab0| 20 28 72 65 67 6e 6f 29 | 3b 20 69 20 2b 3d 20 73 | (regno)|; i += s|
|00004ac0| 69 7a 65 6f 66 20 28 69 | 6e 74 29 29 0a 58 2b 20 |izeof (i|nt)).X+ |
|00004ad0| 20 09 7b 0a 58 2b 20 20 | 09 20 20 2a 28 69 6e 74 | .{.X+ |. *(int|
|00004ae0| 20 2a 29 20 26 62 75 66 | 5b 69 5d 20 3d 20 70 74 | *) &buf|[i] = pt|
|00004af0| 72 61 63 65 20 28 33 2c | 20 69 6e 66 65 72 69 6f |race (3,| inferio|
|00004b00| 72 5f 70 69 64 2c 20 72 | 65 67 61 64 64 72 2c 20 |r_pid, r|egaddr, |
|00004b10| 30 29 3b 0a 58 2b 20 20 | 09 20 20 72 65 67 61 64 |0);.X+ |. regad|
|00004b20| 64 72 20 2b 3d 20 73 69 | 7a 65 6f 66 20 28 69 6e |dr += si|zeof (in|
|00004b30| 74 29 3b 0a 58 2b 20 20 | 09 7d 0a 58 2b 20 20 20 |t);.X+ |.}.X+ |
|00004b40| 20 20 20 20 73 75 70 70 | 6c 79 5f 72 65 67 69 73 | supp|ly_regis|
|00004b50| 74 65 72 20 28 72 65 67 | 6e 6f 2c 20 62 75 66 29 |ter (reg|no, buf)|
|00004b60| 3b 0a 58 2b 20 20 20 20 | 20 7d 0a 58 2b 20 7d 0a |;.X+ | }.X+ }.|
|00004b70| 58 2b 20 0a 58 2b 20 2f | 2a 20 53 74 6f 72 65 20 |X+ .X+ /|* Store |
|00004b80| 6f 75 72 20 72 65 67 69 | 73 74 65 72 20 76 61 6c |our regi|ster val|
|00004b90| 75 65 73 20 62 61 63 6b | 20 69 6e 74 6f 20 74 68 |ues back| into th|
|00004ba0| 65 20 69 6e 66 65 72 69 | 6f 72 2e 0a 58 2b 20 20 |e inferi|or..X+ |
|00004bb0| 20 20 49 66 20 52 45 47 | 4e 4f 20 69 73 20 2d 31 | If REG|NO is -1|
|00004bc0| 2c 20 64 6f 20 74 68 69 | 73 20 66 6f 72 20 61 6c |, do thi|s for al|
|00004bd0| 6c 20 72 65 67 69 73 74 | 65 72 73 2e 0a 58 2b 20 |l regist|ers..X+ |
|00004be0| 20 20 20 4f 74 68 65 72 | 77 69 73 65 2c 20 52 45 | Other|wise, RE|
|00004bf0| 47 4e 4f 20 73 70 65 63 | 69 66 69 65 73 20 77 68 |GNO spec|ifies wh|
|00004c00| 69 63 68 20 72 65 67 69 | 73 74 65 72 20 28 73 6f |ich regi|ster (so|
|00004c10| 20 77 65 20 63 61 6e 20 | 73 61 76 65 20 74 69 6d | we can |save tim|
|00004c20| 65 29 2e 20 20 2a 2f 0a | 58 2b 20 0a 58 2b 20 73 |e). */.|X+ .X+ s|
|00004c30| 74 6f 72 65 5f 69 6e 66 | 65 72 69 6f 72 5f 72 65 |tore_inf|erior_re|
|00004c40| 67 69 73 74 65 72 73 20 | 28 72 65 67 6e 6f 29 0a |gisters |(regno).|
|00004c50| 58 2b 20 20 20 20 20 20 | 69 6e 74 20 72 65 67 6e |X+ |int regn|
|00004c60| 6f 3b 0a 58 2b 20 7b 0a | 58 2b 20 20 20 72 65 67 |o;.X+ {.|X+ reg|
|00004c70| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 69 |ister un|signed i|
|00004c80| 6e 74 20 72 65 67 61 64 | 64 72 3b 0a 58 2b 20 20 |nt regad|dr;.X+ |
|00004c90| 20 63 68 61 72 20 62 75 | 66 5b 38 30 5d 3b 0a 58 | char bu|f[80];.X|
|00004ca0| 2b 20 0a 58 2b 20 20 20 | 73 74 72 75 63 74 20 75 |+ .X+ |struct u|
|00004cb0| 73 65 72 20 75 3b 0a 58 | 2b 20 20 20 75 6e 73 69 |ser u;.X|+ unsi|
|00004cc0| 67 6e 65 64 20 69 6e 74 | 20 6f 66 66 73 65 74 20 |gned int| offset |
|00004cd0| 3d 20 28 63 68 61 72 20 | 2a 29 20 26 75 2e 75 5f |= (char |*) &u.u_|
|00004ce0| 61 72 30 20 2d 20 28 63 | 68 61 72 20 2a 29 20 26 |ar0 - (c|har *) &|
|00004cf0| 75 3b 0a 58 2b 20 20 20 | 6f 66 66 73 65 74 20 3d |u;.X+ |offset =|
|00004d00| 20 70 74 72 61 63 65 20 | 28 33 2c 20 69 6e 66 65 | ptrace |(3, infe|
|00004d10| 72 69 6f 72 5f 70 69 64 | 2c 20 6f 66 66 73 65 74 |rior_pid|, offset|
|00004d20| 2c 20 30 29 20 2d 20 4b | 45 52 4e 45 4c 5f 55 5f |, 0) - K|ERNEL_U_|
|00004d30| 41 44 44 52 3b 0a 58 2b | 20 0a 58 2b 20 20 20 69 |ADDR;.X+| .X+ i|
|00004d40| 66 20 28 72 65 67 6e 6f | 20 3e 3d 20 30 29 0a 58 |f (regno| >= 0).X|
|00004d50| 2b 20 20 20 20 20 7b 0a | 58 2b 20 20 20 20 20 20 |+ {.|X+ |
|00004d60| 20 72 65 67 61 64 64 72 | 20 3d 20 72 65 67 69 73 | regaddr| = regis|
|00004d70| 74 65 72 5f 61 64 64 72 | 20 28 72 65 67 6e 6f 2c |ter_addr| (regno,|
|00004d80| 20 6f 66 66 73 65 74 29 | 3b 0a 58 2b 20 20 20 20 | offset)|;.X+ |
|00004d90| 20 20 20 65 72 72 6e 6f | 20 3d 20 30 3b 0a 58 2b | errno| = 0;.X+|
|00004da0| 20 20 20 20 20 20 20 70 | 74 72 61 63 65 20 28 36 | p|trace (6|
|00004db0| 2c 20 69 6e 66 65 72 69 | 6f 72 5f 70 69 64 2c 20 |, inferi|or_pid, |
|00004dc0| 72 65 67 61 64 64 72 2c | 20 72 65 61 64 5f 72 65 |regaddr,| read_re|
|00004dd0| 67 69 73 74 65 72 20 28 | 72 65 67 6e 6f 29 29 3b |gister (|regno));|
|00004de0| 0a 58 2b 20 20 20 20 20 | 20 20 69 66 20 28 65 72 |.X+ | if (er|
|00004df0| 72 6e 6f 20 21 3d 20 30 | 29 0a 58 2b 20 09 7b 0a |rno != 0|).X+ .{.|
|00004e00| 58 2b 20 09 20 20 73 70 | 72 69 6e 74 66 20 28 62 |X+ . sp|rintf (b|
|00004e10| 75 66 2c 20 22 77 72 69 | 74 69 6e 67 20 72 65 67 |uf, "wri|ting reg|
|00004e20| 69 73 74 65 72 20 6e 75 | 6d 62 65 72 20 25 64 22 |ister nu|mber %d"|
|00004e30| 2c 20 72 65 67 6e 6f 29 | 3b 0a 58 2b 20 09 20 20 |, regno)|;.X+ . |
|00004e40| 70 65 72 72 6f 72 5f 77 | 69 74 68 5f 6e 61 6d 65 |perror_w|ith_name|
|00004e50| 20 28 62 75 66 29 3b 0a | 58 2b 20 09 7d 0a 58 2b | (buf);.|X+ .}.X+|
|00004e60| 20 20 20 20 20 7d 0a 58 | 2b 20 20 20 65 6c 73 65 | }.X|+ else|
|00004e70| 20 66 6f 72 20 28 72 65 | 67 6e 6f 20 3d 20 30 3b | for (re|gno = 0;|
|00004e80| 20 72 65 67 6e 6f 20 3c | 20 4e 55 4d 5f 52 45 47 | regno <| NUM_REG|
|00004e90| 53 3b 20 72 65 67 6e 6f | 2b 2b 29 0a 58 2b 20 20 |S; regno|++).X+ |
|00004ea0| 20 20 20 7b 0a 58 2b 20 | 20 20 20 20 20 20 72 65 | {.X+ | re|
|00004eb0| 67 61 64 64 72 20 3d 20 | 72 65 67 69 73 74 65 72 |gaddr = |register|
|00004ec0| 5f 61 64 64 72 20 28 72 | 65 67 6e 6f 2c 20 6f 66 |_addr (r|egno, of|
|00004ed0| 66 73 65 74 29 3b 0a 58 | 2b 20 20 20 20 20 20 20 |fset);.X|+ |
|00004ee0| 65 72 72 6e 6f 20 3d 20 | 30 3b 0a 58 2b 20 20 20 |errno = |0;.X+ |
|00004ef0| 20 20 20 20 70 74 72 61 | 63 65 20 28 36 2c 20 69 | ptra|ce (6, i|
|00004f00| 6e 66 65 72 69 6f 72 5f | 70 69 64 2c 20 72 65 67 |nferior_|pid, reg|
|00004f10| 61 64 64 72 2c 20 72 65 | 61 64 5f 72 65 67 69 73 |addr, re|ad_regis|
|00004f20| 74 65 72 20 28 72 65 67 | 6e 6f 29 29 3b 0a 58 2b |ter (reg|no));.X+|
|00004f30| 20 20 20 20 20 20 20 69 | 66 20 28 65 72 72 6e 6f | i|f (errno|
|00004f40| 20 21 3d 20 30 29 0a 58 | 2b 20 09 7b 0a 58 2b 20 | != 0).X|+ .{.X+ |
|00004f50| 09 20 20 73 70 72 69 6e | 74 66 20 28 62 75 66 2c |. sprin|tf (buf,|
|00004f60| 20 22 77 72 69 74 69 6e | 67 20 72 65 67 69 73 74 | "writin|g regist|
|00004f70| 65 72 20 6e 75 6d 62 65 | 72 20 25 64 22 2c 20 72 |er numbe|r %d", r|
|00004f80| 65 67 6e 6f 29 3b 0a 58 | 2b 20 09 20 20 70 65 72 |egno);.X|+ . per|
|00004f90| 72 6f 72 5f 77 69 74 68 | 5f 6e 61 6d 65 20 28 62 |ror_with|_name (b|
|00004fa0| 75 66 29 3b 0a 58 2b 20 | 09 7d 0a 58 2b 20 20 20 |uf);.X+ |.}.X+ |
|00004fb0| 20 20 7d 0a 58 2b 20 7d | 0a 58 2b 20 0c 0a 58 2b | }.X+ }|.X+ ..X+|
|00004fc0| 20 2f 2a 20 43 6f 70 79 | 20 4c 45 4e 20 62 79 74 | /* Copy| LEN byt|
|00004fd0| 65 73 20 66 72 6f 6d 20 | 69 6e 66 65 72 69 6f 72 |es from |inferior|
|00004fe0| 27 73 20 6d 65 6d 6f 72 | 79 20 73 74 61 72 74 69 |'s memor|y starti|
|00004ff0| 6e 67 20 61 74 20 4d 45 | 4d 41 44 44 52 0a 58 2b |ng at ME|MADDR.X+|
|00005000| 20 20 20 20 74 6f 20 64 | 65 62 75 67 67 65 72 20 | to d|ebugger |
|00005010| 6d 65 6d 6f 72 79 20 73 | 74 61 72 74 69 6e 67 20 |memory s|tarting |
|00005020| 61 74 20 4d 59 41 44 44 | 52 2e 20 0a 58 2b 20 20 |at MYADD|R. .X+ |
|00005030| 20 20 4f 6e 20 66 61 69 | 6c 75 72 65 20 28 63 61 | On fai|lure (ca|
|00005040| 6e 6e 6f 74 20 72 65 61 | 64 20 66 72 6f 6d 20 69 |nnot rea|d from i|
|00005050| 6e 66 65 72 69 6f 72 2c | 20 75 73 75 61 6c 6c 79 |nferior,| usually|
|00005060| 20 62 65 63 61 75 73 65 | 20 61 64 64 72 65 73 73 | because| address|
|00005070| 20 69 73 20 6f 75 74 0a | 58 2b 20 20 20 20 6f 66 | is out.|X+ of|
|00005080| 20 62 6f 75 6e 64 73 29 | 20 72 65 74 75 72 6e 73 | bounds)| returns|
|00005090| 20 74 68 65 20 76 61 6c | 75 65 20 6f 66 20 65 72 | the val|ue of er|
|000050a0| 72 6e 6f 2e 20 2a 2f 0a | 58 2b 20 0a 58 2b 20 69 |rno. */.|X+ .X+ i|
|000050b0| 6e 74 0a 58 2b 20 72 65 | 61 64 5f 69 6e 66 65 72 |nt.X+ re|ad_infer|
|000050c0| 69 6f 72 5f 6d 65 6d 6f | 72 79 20 28 6d 65 6d 61 |ior_memo|ry (mema|
|000050d0| 64 64 72 2c 20 6d 79 61 | 64 64 72 2c 20 6c 65 6e |ddr, mya|ddr, len|
|000050e0| 29 0a 58 2b 20 20 20 20 | 20 20 43 4f 52 45 5f 41 |).X+ | CORE_A|
|000050f0| 44 44 52 20 6d 65 6d 61 | 64 64 72 3b 0a 58 2b 20 |DDR mema|ddr;.X+ |
|00005100| 20 20 20 20 20 63 68 61 | 72 20 2a 6d 79 61 64 64 | cha|r *myadd|
|00005110| 72 3b 0a 58 2b 20 20 20 | 20 20 20 69 6e 74 20 6c |r;.X+ | int l|
|00005120| 65 6e 3b 0a 58 2b 20 7b | 0a 58 2b 20 20 20 72 65 |en;.X+ {|.X+ re|
|00005130| 67 69 73 74 65 72 20 69 | 6e 74 20 69 3b 0a 58 2b |gister i|nt i;.X+|
|00005140| 20 20 20 2f 2a 20 52 6f | 75 6e 64 20 73 74 61 72 | /* Ro|und star|
|00005150| 74 69 6e 67 20 61 64 64 | 72 65 73 73 20 64 6f 77 |ting add|ress dow|
|00005160| 6e 20 74 6f 20 6c 6f 6e | 67 77 6f 72 64 20 62 6f |n to lon|gword bo|
|00005170| 75 6e 64 61 72 79 2e 20 | 20 2a 2f 0a 58 2b 20 20 |undary. | */.X+ |
|00005180| 20 72 65 67 69 73 74 65 | 72 20 43 4f 52 45 5f 41 | registe|r CORE_A|
|00005190| 44 44 52 20 61 64 64 72 | 20 3d 20 6d 65 6d 61 64 |DDR addr| = memad|
|000051a0| 64 72 20 26 20 2d 20 73 | 69 7a 65 6f 66 20 28 69 |dr & - s|izeof (i|
|000051b0| 6e 74 29 3b 0a 58 2b 20 | 20 20 2f 2a 20 52 6f 75 |nt);.X+ | /* Rou|
|000051c0| 6e 64 20 65 6e 64 69 6e | 67 20 61 64 64 72 65 73 |nd endin|g addres|
|000051d0| 73 20 75 70 3b 20 67 65 | 74 20 6e 75 6d 62 65 72 |s up; ge|t number|
|000051e0| 20 6f 66 20 6c 6f 6e 67 | 77 6f 72 64 73 20 74 68 | of long|words th|
|000051f0| 61 74 20 6d 61 6b 65 73 | 2e 20 20 2a 2f 0a 58 2b |at makes|. */.X+|
|00005200| 20 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 | regis|ter int |
|00005210| 63 6f 75 6e 74 0a 58 2b | 20 20 20 20 20 3d 20 28 |count.X+| = (|
|00005220| 28 28 6d 65 6d 61 64 64 | 72 20 2b 20 6c 65 6e 29 |((memadd|r + len)|
|00005230| 20 2d 20 61 64 64 72 29 | 20 2b 20 73 69 7a 65 6f | - addr)| + sizeo|
|00005240| 66 20 28 69 6e 74 29 20 | 2d 20 31 29 20 2f 20 73 |f (int) |- 1) / s|
|00005250| 69 7a 65 6f 66 20 28 69 | 6e 74 29 3b 0a 58 2b 20 |izeof (i|nt);.X+ |
|00005260| 20 20 2f 2a 20 41 6c 6c | 6f 63 61 74 65 20 62 75 | /* All|ocate bu|
|00005270| 66 66 65 72 20 6f 66 20 | 74 68 61 74 20 6d 61 6e |ffer of |that man|
|00005280| 79 20 6c 6f 6e 67 77 6f | 72 64 73 2e 20 20 2a 2f |y longwo|rds. */|
|00005290| 0a 58 2b 20 20 20 72 65 | 67 69 73 74 65 72 20 69 |.X+ re|gister i|
|000052a0| 6e 74 20 2a 62 75 66 66 | 65 72 20 3d 20 28 69 6e |nt *buff|er = (in|
|000052b0| 74 20 2a 29 20 61 6c 6c | 6f 63 61 20 28 63 6f 75 |t *) all|oca (cou|
|000052c0| 6e 74 20 2a 20 73 69 7a | 65 6f 66 20 28 69 6e 74 |nt * siz|eof (int|
|000052d0| 29 29 3b 0a 58 2b 20 20 | 20 65 78 74 65 72 6e 20 |));.X+ | extern |
|000052e0| 69 6e 74 20 65 72 72 6e | 6f 3b 0a 58 2b 20 0a 58 |int errn|o;.X+ .X|
|000052f0| 2b 20 20 20 2f 2a 20 52 | 65 61 64 20 61 6c 6c 20 |+ /* R|ead all |
|00005300| 74 68 65 20 6c 6f 6e 67 | 77 6f 72 64 73 20 2a 2f |the long|words */|
|00005310| 0a 58 2b 20 20 20 66 6f | 72 20 28 69 20 3d 20 30 |.X+ fo|r (i = 0|
|00005320| 3b 20 69 20 3c 20 63 6f | 75 6e 74 3b 20 69 2b 2b |; i < co|unt; i++|
|00005330| 2c 20 61 64 64 72 20 2b | 3d 20 73 69 7a 65 6f 66 |, addr +|= sizeof|
|00005340| 20 28 69 6e 74 29 29 0a | 58 2b 20 20 20 20 20 7b | (int)).|X+ {|
|00005350| 0a 58 2b 20 20 20 20 20 | 20 20 65 72 72 6e 6f 20 |.X+ | errno |
|00005360| 3d 20 30 3b 0a 58 2b 20 | 20 20 20 20 20 20 69 66 |= 0;.X+ | if|
|00005370| 20 28 72 65 6d 6f 74 65 | 5f 64 65 62 75 67 67 69 | (remote|_debuggi|
|00005380| 6e 67 29 0a 58 2b 20 09 | 62 75 66 66 65 72 5b 69 |ng).X+ .|buffer[i|
|00005390| 5d 20 3d 20 72 65 6d 6f | 74 65 5f 66 65 74 63 68 |] = remo|te_fetch|
|000053a0| 5f 77 6f 72 64 20 28 61 | 64 64 72 29 3b 0a 58 2b |_word (a|ddr);.X+|
|000053b0| 20 20 20 20 20 20 20 65 | 6c 73 65 0a 58 2b 20 09 | e|lse.X+ .|
|000053c0| 62 75 66 66 65 72 5b 69 | 5d 20 3d 20 70 74 72 61 |buffer[i|] = ptra|
|000053d0| 63 65 20 28 61 64 64 72 | 20 3c 3d 20 74 65 78 74 |ce (addr| <= text|
|000053e0| 5f 65 6e 64 20 3f 20 31 | 20 3a 20 32 2c 20 69 6e |_end ? 1| : 2, in|
|000053f0| 66 65 72 69 6f 72 5f 70 | 69 64 2c 0a 58 2b 20 09 |ferior_p|id,.X+ .|
|00005400| 09 61 64 64 72 2c 20 30 | 29 3b 0a 58 2b 20 20 20 |.addr, 0|);.X+ |
|00005410| 20 20 20 20 69 66 20 28 | 65 72 72 6e 6f 29 0a 58 | if (|errno).X|
|00005420| 2b 20 09 72 65 74 75 72 | 6e 20 65 72 72 6e 6f 3b |+ .retur|n errno;|
|00005430| 0a 58 2b 20 20 20 20 20 | 7d 0a 58 2b 20 0a 58 2b |.X+ |}.X+ .X+|
|00005440| 20 20 20 2f 2a 20 43 6f | 70 79 20 61 70 70 72 6f | /* Co|py appro|
|00005450| 70 72 69 61 74 65 20 62 | 79 74 65 73 20 6f 75 74 |priate b|ytes out|
|00005460| 20 6f 66 20 74 68 65 20 | 62 75 66 66 65 72 2e 20 | of the |buffer. |
|00005470| 20 2a 2f 0a 58 2b 20 20 | 20 62 63 6f 70 79 20 28 | */.X+ | bcopy (|
|00005480| 28 63 68 61 72 20 2a 29 | 20 62 75 66 66 65 72 20 |(char *)| buffer |
|00005490| 2b 20 28 6d 65 6d 61 64 | 64 72 20 26 20 28 73 69 |+ (memad|dr & (si|
|000054a0| 7a 65 6f 66 20 28 69 6e | 74 29 20 2d 20 31 29 29 |zeof (in|t) - 1))|
|000054b0| 2c 20 6d 79 61 64 64 72 | 2c 20 6c 65 6e 29 3b 0a |, myaddr|, len);.|
|000054c0| 58 2b 20 20 20 72 65 74 | 75 72 6e 20 30 3b 0a 58 |X+ ret|urn 0;.X|
|000054d0| 2b 20 7d 0a 58 2b 20 0a | 58 2b 20 2f 2a 20 43 6f |+ }.X+ .|X+ /* Co|
|000054e0| 70 79 20 4c 45 4e 20 62 | 79 74 65 73 20 6f 66 20 |py LEN b|ytes of |
|000054f0| 64 61 74 61 20 66 72 6f | 6d 20 64 65 62 75 67 67 |data fro|m debugg|
|00005500| 65 72 20 6d 65 6d 6f 72 | 79 20 61 74 20 4d 59 41 |er memor|y at MYA|
|00005510| 44 44 52 0a 58 2b 20 20 | 20 20 74 6f 20 69 6e 66 |DDR.X+ | to inf|
|00005520| 65 72 69 6f 72 27 73 20 | 6d 65 6d 6f 72 79 20 61 |erior's |memory a|
|00005530| 74 20 4d 45 4d 41 44 44 | 52 2e 0a 58 2b 20 20 20 |t MEMADD|R..X+ |
|00005540| 20 4f 6e 20 66 61 69 6c | 75 72 65 20 28 63 61 6e | On fail|ure (can|
|00005550| 6e 6f 74 20 77 72 69 74 | 65 20 74 68 65 20 69 6e |not writ|e the in|
|00005560| 66 65 72 69 6f 72 29 0a | 58 2b 20 20 20 20 72 65 |ferior).|X+ re|
|00005570| 74 75 72 6e 73 20 74 68 | 65 20 76 61 6c 75 65 20 |turns th|e value |
|00005580| 6f 66 20 65 72 72 6e 6f | 2e 20 20 2a 2f 0a 58 2b |of errno|. */.X+|
|00005590| 20 0a 58 2b 20 69 6e 74 | 0a 58 2b 20 77 72 69 74 | .X+ int|.X+ writ|
|000055a0| 65 5f 69 6e 66 65 72 69 | 6f 72 5f 6d 65 6d 6f 72 |e_inferi|or_memor|
|000055b0| 79 20 28 6d 65 6d 61 64 | 64 72 2c 20 6d 79 61 64 |y (memad|dr, myad|
|000055c0| 64 72 2c 20 6c 65 6e 29 | 0a 58 2b 20 20 20 20 20 |dr, len)|.X+ |
|000055d0| 20 43 4f 52 45 5f 41 44 | 44 52 20 6d 65 6d 61 64 | CORE_AD|DR memad|
|000055e0| 64 72 3b 0a 58 2b 20 20 | 20 20 20 20 63 68 61 72 |dr;.X+ | char|
|000055f0| 20 2a 6d 79 61 64 64 72 | 3b 0a 58 2b 20 20 20 20 | *myaddr|;.X+ |
|00005600| 20 20 69 6e 74 20 6c 65 | 6e 3b 0a 58 2b 20 7b 0a | int le|n;.X+ {.|
|00005610| 58 2b 20 20 20 72 65 67 | 69 73 74 65 72 20 69 6e |X+ reg|ister in|
|00005620| 74 20 69 3b 0a 58 2b 20 | 20 20 2f 2a 20 52 6f 75 |t i;.X+ | /* Rou|
|00005630| 6e 64 20 73 74 61 72 74 | 69 6e 67 20 61 64 64 72 |nd start|ing addr|
|00005640| 65 73 73 20 64 6f 77 6e | 20 74 6f 20 6c 6f 6e 67 |ess down| to long|
|00005650| 77 6f 72 64 20 62 6f 75 | 6e 64 61 72 79 2e 20 20 |word bou|ndary. |
|00005660| 2a 2f 0a 58 2b 20 20 20 | 72 65 67 69 73 74 65 72 |*/.X+ |register|
|00005670| 20 43 4f 52 45 5f 41 44 | 44 52 20 61 64 64 72 20 | CORE_AD|DR addr |
|00005680| 3d 20 6d 65 6d 61 64 64 | 72 20 26 20 2d 20 73 69 |= memadd|r & - si|
|00005690| 7a 65 6f 66 20 28 69 6e | 74 29 3b 0a 58 2b 20 20 |zeof (in|t);.X+ |
|000056a0| 20 2f 2a 20 52 6f 75 6e | 64 20 65 6e 64 69 6e 67 | /* Roun|d ending|
|000056b0| 20 61 64 64 72 65 73 73 | 20 75 70 3b 20 67 65 74 | address| up; get|
|000056c0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 6c 6f 6e 67 77 | number |of longw|
|000056d0| 6f 72 64 73 20 74 68 61 | 74 20 6d 61 6b 65 73 2e |ords tha|t makes.|
|000056e0| 20 20 2a 2f 0a 58 2b 20 | 20 20 72 65 67 69 73 74 | */.X+ | regist|
|000056f0| 65 72 20 69 6e 74 20 63 | 6f 75 6e 74 0a 58 2b 20 |er int c|ount.X+ |
|00005700| 20 20 20 20 3d 20 28 28 | 28 6d 65 6d 61 64 64 72 | = ((|(memaddr|
|00005710| 20 2b 20 6c 65 6e 29 20 | 2d 20 61 64 64 72 29 20 | + len) |- addr) |
|00005720| 2b 20 73 69 7a 65 6f 66 | 20 28 69 6e 74 29 20 2d |+ sizeof| (int) -|
|00005730| 20 31 29 20 2f 20 73 69 | 7a 65 6f 66 20 28 69 6e | 1) / si|zeof (in|
|00005740| 74 29 3b 0a 58 2b 20 20 | 20 2f 2a 20 41 6c 6c 6f |t);.X+ | /* Allo|
|00005750| 63 61 74 65 20 62 75 66 | 66 65 72 20 6f 66 20 74 |cate buf|fer of t|
|00005760| 68 61 74 20 6d 61 6e 79 | 20 6c 6f 6e 67 77 6f 72 |hat many| longwor|
|00005770| 64 73 2e 20 20 2a 2f 0a | 58 2b 20 20 20 72 65 67 |ds. */.|X+ reg|
|00005780| 69 73 74 65 72 20 69 6e | 74 20 2a 62 75 66 66 65 |ister in|t *buffe|
|00005790| 72 20 3d 20 28 69 6e 74 | 20 2a 29 20 61 6c 6c 6f |r = (int| *) allo|
|000057a0| 63 61 20 28 63 6f 75 6e | 74 20 2a 20 73 69 7a 65 |ca (coun|t * size|
|000057b0| 6f 66 20 28 69 6e 74 29 | 29 3b 0a 58 2b 20 20 20 |of (int)|);.X+ |
|000057c0| 65 78 74 65 72 6e 20 69 | 6e 74 20 65 72 72 6e 6f |extern i|nt errno|
|000057d0| 3b 0a 58 2b 20 0a 58 2b | 20 20 20 2f 2a 20 46 69 |;.X+ .X+| /* Fi|
|000057e0| 6c 6c 20 73 74 61 72 74 | 20 61 6e 64 20 65 6e 64 |ll start| and end|
|000057f0| 20 65 78 74 72 61 20 62 | 79 74 65 73 20 6f 66 20 | extra b|ytes of |
|00005800| 62 75 66 66 65 72 20 77 | 69 74 68 20 65 78 69 73 |buffer w|ith exis|
|00005810| 74 69 6e 67 20 6d 65 6d | 6f 72 79 20 64 61 74 61 |ting mem|ory data|
|00005820| 2e 20 20 2a 2f 0a 58 2b | 20 0a 58 2b 20 20 20 69 |. */.X+| .X+ i|
|00005830| 66 20 28 72 65 6d 6f 74 | 65 5f 64 65 62 75 67 67 |f (remot|e_debugg|
|00005840| 69 6e 67 29 0a 58 2b 20 | 20 20 20 20 62 75 66 66 |ing).X+ | buff|
|00005850| 65 72 5b 30 5d 20 3d 20 | 72 65 6d 6f 74 65 5f 66 |er[0] = |remote_f|
|00005860| 65 74 63 68 5f 77 6f 72 | 64 20 28 61 64 64 72 29 |etch_wor|d (addr)|
|00005870| 3b 0a 58 2b 20 20 20 65 | 6c 73 65 0a 58 2b 20 20 |;.X+ e|lse.X+ |
|00005880| 20 20 20 62 75 66 66 65 | 72 5b 30 5d 20 3d 20 70 | buffe|r[0] = p|
|00005890| 74 72 61 63 65 20 28 61 | 64 64 72 20 3c 3d 20 74 |trace (a|ddr <= t|
|000058a0| 65 78 74 5f 65 6e 64 20 | 3f 20 31 20 3a 20 32 2c |ext_end |? 1 : 2,|
|000058b0| 20 69 6e 66 65 72 69 6f | 72 5f 70 69 64 2c 20 61 | inferio|r_pid, a|
|000058c0| 64 64 72 2c 20 30 29 3b | 0a 58 2b 20 0a 58 2b 20 |ddr, 0);|.X+ .X+ |
|000058d0| 20 20 69 66 20 28 63 6f | 75 6e 74 20 3e 20 31 29 | if (co|unt > 1)|
|000058e0| 0a 58 2b 20 20 20 20 20 | 7b 0a 58 2b 20 20 20 20 |.X+ |{.X+ |
|000058f0| 20 20 20 69 66 20 28 72 | 65 6d 6f 74 65 5f 64 65 | if (r|emote_de|
|00005900| 62 75 67 67 69 6e 67 29 | 0a 58 2b 20 09 62 75 66 |bugging)|.X+ .buf|
|00005910| 66 65 72 5b 63 6f 75 6e | 74 20 2d 20 31 5d 0a 58 |fer[coun|t - 1].X|
|00005920| 2b 20 09 20 20 3d 20 72 | 65 6d 6f 74 65 5f 66 65 |+ . = r|emote_fe|
|00005930| 74 63 68 5f 77 6f 72 64 | 20 28 61 64 64 72 20 2b |tch_word| (addr +|
|00005940| 20 28 63 6f 75 6e 74 20 | 2d 20 31 29 20 2a 20 73 | (count |- 1) * s|
|00005950| 69 7a 65 6f 66 20 28 69 | 6e 74 29 29 3b 0a 58 2b |izeof (i|nt));.X+|
|00005960| 20 20 20 20 20 20 20 65 | 6c 73 65 0a 58 2b 20 09 | e|lse.X+ .|
|00005970| 62 75 66 66 65 72 5b 63 | 6f 75 6e 74 20 2d 20 31 |buffer[c|ount - 1|
|00005980| 5d 0a 58 2b 20 09 20 20 | 3d 20 70 74 72 61 63 65 |].X+ . |= ptrace|
|00005990| 20 28 61 64 64 72 20 3c | 3d 20 74 65 78 74 5f 65 | (addr <|= text_e|
|000059a0| 6e 64 20 3f 20 31 20 3a | 20 32 2c 20 69 6e 66 65 |nd ? 1 :| 2, infe|
|000059b0| 72 69 6f 72 5f 70 69 64 | 2c 0a 58 2b 20 20 20 20 |rior_pid|,.X+ |
|000059c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000059d0| 28 61 64 64 72 20 2b 20 | 28 63 6f 75 6e 74 20 2d |(addr + |(count -|
|000059e0| 20 31 29 20 2a 20 73 69 | 7a 65 6f 66 28 69 6e 74 | 1) * si|zeof(int|
|000059f0| 29 29 20 2c 20 30 29 3b | 0a 58 2b 20 20 20 20 20 |)) , 0);|.X+ |
|00005a00| 7d 0a 58 2b 20 0a 58 2b | 20 20 20 2f 2a 20 43 6f |}.X+ .X+| /* Co|
|00005a10| 70 79 20 64 61 74 61 20 | 74 6f 20 62 65 20 77 72 |py data |to be wr|
|00005a20| 69 74 74 65 6e 20 6f 76 | 65 72 20 63 6f 72 72 65 |itten ov|er corre|
|00005a30| 73 70 6f 6e 64 69 6e 67 | 20 70 61 72 74 20 6f 66 |sponding| part of|
|00005a40| 20 62 75 66 66 65 72 20 | 2a 2f 0a 58 2b 20 0a 58 | buffer |*/.X+ .X|
|00005a50| 2b 20 20 20 62 63 6f 70 | 79 20 28 6d 79 61 64 64 |+ bcop|y (myadd|
|00005a60| 72 2c 20 28 63 68 61 72 | 20 2a 29 20 62 75 66 66 |r, (char| *) buff|
|00005a70| 65 72 20 2b 20 28 6d 65 | 6d 61 64 64 72 20 26 20 |er + (me|maddr & |
|00005a80| 28 73 69 7a 65 6f 66 20 | 28 69 6e 74 29 20 2d 20 |(sizeof |(int) - |
|00005a90| 31 29 29 2c 20 6c 65 6e | 29 3b 0a 58 2b 20 0a 58 |1)), len|);.X+ .X|
|00005aa0| 2b 20 20 20 2f 2a 20 57 | 72 69 74 65 20 74 68 65 |+ /* W|rite the|
|00005ab0| 20 65 6e 74 69 72 65 20 | 62 75 66 66 65 72 2e 20 | entire |buffer. |
|00005ac0| 20 2a 2f 0a 58 2b 20 0a | 58 2b 20 20 20 66 6f 72 | */.X+ .|X+ for|
|00005ad0| 20 28 69 20 3d 20 30 3b | 20 69 20 3c 20 63 6f 75 | (i = 0;| i < cou|
|00005ae0| 6e 74 3b 20 69 2b 2b 2c | 20 61 64 64 72 20 2b 3d |nt; i++,| addr +=|
|00005af0| 20 73 69 7a 65 6f 66 20 | 28 69 6e 74 29 29 0a 58 | sizeof |(int)).X|
|00005b00| 2b 20 20 20 20 20 7b 0a | 58 2b 20 20 20 20 20 20 |+ {.|X+ |
|00005b10| 20 65 72 72 6e 6f 20 3d | 20 30 3b 0a 58 2b 20 20 | errno =| 0;.X+ |
|00005b20| 20 20 20 20 20 69 66 20 | 28 72 65 6d 6f 74 65 5f | if |(remote_|
|00005b30| 64 65 62 75 67 67 69 6e | 67 29 0a 58 2b 20 09 72 |debuggin|g).X+ .r|
|00005b40| 65 6d 6f 74 65 5f 73 74 | 6f 72 65 5f 77 6f 72 64 |emote_st|ore_word|
|00005b50| 20 28 61 64 64 72 2c 20 | 62 75 66 66 65 72 5b 69 | (addr, |buffer[i|
|00005b60| 5d 29 3b 0a 58 2b 20 20 | 20 20 20 20 20 65 6c 73 |]);.X+ | els|
|00005b70| 65 0a 58 2b 20 09 70 74 | 72 61 63 65 20 28 61 64 |e.X+ .pt|race (ad|
|00005b80| 64 72 20 3c 3d 20 74 65 | 78 74 5f 65 6e 64 20 3f |dr <= te|xt_end ?|
|00005b90| 20 34 20 3a 20 35 2c 20 | 69 6e 66 65 72 69 6f 72 | 4 : 5, |inferior|
|00005ba0| 5f 70 69 64 2c 20 61 64 | 64 72 2c 20 62 75 66 66 |_pid, ad|dr, buff|
|00005bb0| 65 72 5b 69 5d 29 3b 0a | 58 2b 20 20 20 20 20 20 |er[i]);.|X+ |
|00005bc0| 20 69 66 20 28 65 72 72 | 6e 6f 29 0a 58 2b 20 09 | if (err|no).X+ .|
|00005bd0| 72 65 74 75 72 6e 20 65 | 72 72 6e 6f 3b 0a 58 2b |return e|rrno;.X+|
|00005be0| 20 20 20 20 20 7d 0a 58 | 2b 20 0a 58 2b 20 20 20 | }.X|+ .X+ |
|00005bf0| 72 65 74 75 72 6e 20 30 | 3b 0a 58 2b 20 7d 0a 58 |return 0|;.X+ }.X|
|00005c00| 2b 20 0c 0a 58 2b 20 2f | 2a 20 57 6f 72 6b 20 77 |+ ..X+ /|* Work w|
|00005c10| 69 74 68 20 63 6f 72 65 | 20 64 75 6d 70 20 61 6e |ith core| dump an|
|00005c20| 64 20 65 78 65 63 75 74 | 61 62 6c 65 20 66 69 6c |d execut|able fil|
|00005c30| 65 73 2c 20 66 6f 72 20 | 47 44 42 2e 20 0a 58 2b |es, for |GDB. .X+|
|00005c40| 20 20 20 20 54 68 69 73 | 20 63 6f 64 65 20 77 6f | This| code wo|
|00005c50| 75 6c 64 20 62 65 20 69 | 6e 20 63 6f 72 65 2e 63 |uld be i|n core.c|
|00005c60| 20 69 66 20 69 74 20 77 | 65 72 65 6e 27 74 20 6d | if it w|eren't m|
|00005c70| 61 63 68 69 6e 65 2d 64 | 65 70 65 6e 64 65 6e 74 |achine-d|ependent|
|00005c80| 2e 20 2a 2f 0a 58 2b 20 | 0a 58 2b 20 23 69 66 6e |. */.X+ |.X+ #ifn|
|00005c90| 64 65 66 20 4e 5f 54 58 | 54 41 44 44 52 0a 58 2b |def N_TX|TADDR.X+|
|00005ca0| 20 23 64 65 66 69 6e 65 | 20 4e 5f 54 58 54 41 44 | #define| N_TXTAD|
|00005cb0| 44 52 28 68 64 72 29 20 | 30 0a 58 2b 20 23 65 6e |DR(hdr) |0.X+ #en|
|00005cc0| 64 69 66 20 2f 2a 20 6e | 6f 20 4e 5f 54 58 54 41 |dif /* n|o N_TXTA|
|00005cd0| 44 44 52 20 2a 2f 0a 58 | 2b 20 0a 58 2b 20 23 69 |DDR */.X|+ .X+ #i|
|00005ce0| 66 6e 64 65 66 20 4e 5f | 44 41 54 41 44 44 52 0a |fndef N_|DATADDR.|
|00005cf0| 58 2b 20 23 64 65 66 69 | 6e 65 20 4e 5f 44 41 54 |X+ #defi|ne N_DAT|
|00005d00| 41 44 44 52 28 68 64 72 | 29 20 68 64 72 2e 78 61 |ADDR(hdr|) hdr.xa|
|00005d10| 5f 74 65 78 74 0a 58 2b | 20 23 65 6e 64 69 66 20 |_text.X+| #endif |
|00005d20| 2f 2a 20 6e 6f 20 4e 5f | 44 41 54 41 44 44 52 20 |/* no N_|DATADDR |
|00005d30| 2a 2f 0a 58 2b 20 0a 58 | 2b 20 2f 2a 20 4d 61 6b |*/.X+ .X|+ /* Mak|
|00005d40| 65 20 43 4f 46 46 20 61 | 6e 64 20 6e 6f 6e 2d 43 |e COFF a|nd non-C|
|00005d50| 4f 46 46 20 6e 61 6d 65 | 73 20 66 6f 72 20 74 68 |OFF name|s for th|
|00005d60| 69 6e 67 73 20 61 20 6c | 69 74 74 6c 65 20 6d 6f |ings a l|ittle mo|
|00005d70| 72 65 20 63 6f 6d 70 61 | 74 69 62 6c 65 0a 58 2b |re compa|tible.X+|
|00005d80| 20 20 20 20 74 6f 20 72 | 65 64 75 63 65 20 63 6f | to r|educe co|
|00005d90| 6e 64 69 74 69 6f 6e 61 | 6c 73 20 6c 61 74 65 72 |nditiona|ls later|
|00005da0| 2e 20 20 2a 2f 0a 58 2b | 20 0a 58 2b 20 23 64 65 |. */.X+| .X+ #de|
|00005db0| 66 69 6e 65 20 41 4f 55 | 54 48 44 52 20 73 74 72 |fine AOU|THDR str|
|00005dc0| 75 63 74 20 78 65 78 65 | 63 0a 58 2b 20 0a 58 2b |uct xexe|c.X+ .X+|
|00005dd0| 20 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 73 79 | extern |char *sy|
|00005de0| 73 5f 73 69 67 6c 69 73 | 74 5b 5d 3b 0a 58 2b 20 |s_siglis|t[];.X+ |
|00005df0| 0a 58 2b 20 0a 58 2b 20 | 2f 2a 20 48 6f 6f 6b 20 |.X+ .X+ |/* Hook |
|00005e00| 66 6f 72 20 60 65 78 65 | 63 5f 66 69 6c 65 5f 63 |for `exe|c_file_c|
|00005e10| 6f 6d 6d 61 6e 64 27 20 | 63 6f 6d 6d 61 6e 64 20 |ommand' |command |
|00005e20| 74 6f 20 63 61 6c 6c 2e | 20 20 2a 2f 0a 58 2b 20 |to call.| */.X+ |
|00005e30| 0a 58 2b 20 65 78 74 65 | 72 6e 20 76 6f 69 64 20 |.X+ exte|rn void |
|00005e40| 28 2a 65 78 65 63 5f 66 | 69 6c 65 5f 64 69 73 70 |(*exec_f|ile_disp|
|00005e50| 6c 61 79 5f 68 6f 6f 6b | 29 20 28 29 3b 0a 58 2b |lay_hook|) ();.X+|
|00005e60| 20 20 20 20 0a 58 2b 20 | 2f 2a 20 46 69 6c 65 20 | .X+ |/* File |
|00005e70| 6e 61 6d 65 73 20 6f 66 | 20 63 6f 72 65 20 66 69 |names of| core fi|
|00005e80| 6c 65 20 61 6e 64 20 65 | 78 65 63 75 74 61 62 6c |le and e|xecutabl|
|00005e90| 65 20 66 69 6c 65 2e 20 | 20 2a 2f 0a 58 2b 20 0a |e file. | */.X+ .|
|00005ea0| 58 2b 20 65 78 74 65 72 | 6e 20 63 68 61 72 20 2a |X+ exter|n char *|
|00005eb0| 63 6f 72 65 66 69 6c 65 | 3b 0a 58 2b 20 65 78 74 |corefile|;.X+ ext|
|00005ec0| 65 72 6e 20 63 68 61 72 | 20 2a 65 78 65 63 66 69 |ern char| *execfi|
|00005ed0| 6c 65 3b 0a 58 2b 20 0a | 58 2b 20 2f 2a 20 44 65 |le;.X+ .|X+ /* De|
|00005ee0| 73 63 72 69 70 74 6f 72 | 73 20 6f 6e 20 77 68 69 |scriptor|s on whi|
|00005ef0| 63 68 20 63 6f 72 65 20 | 66 69 6c 65 20 61 6e 64 |ch core |file and|
|00005f00| 20 65 78 65 63 75 74 61 | 62 6c 65 20 66 69 6c 65 | executa|ble file|
|00005f10| 20 61 72 65 20 6f 70 65 | 6e 2e 0a 58 2b 20 20 20 | are ope|n..X+ |
|00005f20| 20 4e 6f 74 65 20 74 68 | 61 74 20 74 68 65 20 65 | Note th|at the e|
|00005f30| 78 65 63 63 68 61 6e 20 | 69 73 20 63 6c 6f 73 65 |xecchan |is close|
|00005f40| 64 20 77 68 65 6e 20 61 | 6e 20 69 6e 66 65 72 69 |d when a|n inferi|
|00005f50| 6f 72 20 69 73 20 63 72 | 65 61 74 65 64 0a 58 2b |or is cr|eated.X+|
|00005f60| 20 20 20 20 61 6e 64 20 | 72 65 6f 70 65 6e 65 64 | and |reopened|
|00005f70| 20 69 66 20 74 68 65 20 | 69 6e 66 65 72 69 6f 72 | if the |inferior|
|00005f80| 20 64 69 65 73 20 6f 72 | 20 69 73 20 6b 69 6c 6c | dies or| is kill|
|00005f90| 65 64 2e 20 20 2a 2f 0a | 58 2b 20 0a 58 2b 20 65 |ed. */.|X+ .X+ e|
|00005fa0| 78 74 65 72 6e 20 69 6e | 74 20 63 6f 72 65 63 68 |xtern in|t corech|
|00005fb0| 61 6e 3b 0a 58 2b 20 65 | 78 74 65 72 6e 20 69 6e |an;.X+ e|xtern in|
|00005fc0| 74 20 65 78 65 63 63 68 | 61 6e 3b 0a 58 2b 20 0a |t execch|an;.X+ .|
|00005fd0| 58 2b 20 2f 2a 20 4c 61 | 73 74 20 6d 6f 64 69 66 |X+ /* La|st modif|
|00005fe0| 69 63 61 74 69 6f 6e 20 | 74 69 6d 65 20 6f 66 20 |ication |time of |
|00005ff0| 65 78 65 63 75 74 61 62 | 6c 65 20 66 69 6c 65 2e |executab|le file.|
|00006000| 0a 58 2b 20 20 20 20 41 | 6c 73 6f 20 75 73 65 64 |.X+ A|lso used|
|00006010| 20 69 6e 20 73 6f 75 72 | 63 65 2e 63 20 74 6f 20 | in sour|ce.c to |
|00006020| 63 6f 6d 70 61 72 65 20 | 61 67 61 69 6e 73 74 20 |compare |against |
|00006030| 6d 74 69 6d 65 20 6f 66 | 20 61 20 73 6f 75 72 63 |mtime of| a sourc|
|00006040| 65 20 66 69 6c 65 2e 20 | 20 2a 2f 0a 58 2b 20 0a |e file. | */.X+ .|
|00006050| 58 2b 20 65 78 74 65 72 | 6e 20 69 6e 74 20 65 78 |X+ exter|n int ex|
|00006060| 65 63 5f 6d 74 69 6d 65 | 3b 0a 58 2b 20 0a 58 2b |ec_mtime|;.X+ .X+|
|00006070| 20 2f 2a 20 56 69 72 74 | 75 61 6c 20 61 64 64 72 | /* Virt|ual addr|
|00006080| 65 73 73 65 73 20 6f 66 | 20 62 6f 75 6e 64 73 20 |esses of| bounds |
|00006090| 6f 66 20 74 68 65 20 74 | 77 6f 20 61 72 65 61 73 |of the t|wo areas|
|000060a0| 20 6f 66 20 6d 65 6d 6f | 72 79 20 69 6e 20 74 68 | of memo|ry in th|
|000060b0| 65 20 63 6f 72 65 20 66 | 69 6c 65 2e 20 20 2a 2f |e core f|ile. */|
|000060c0| 0a 58 2b 20 0a 58 2b 20 | 65 78 74 65 72 6e 20 43 |.X+ .X+ |extern C|
|000060d0| 4f 52 45 5f 41 44 44 52 | 20 64 61 74 61 5f 73 74 |ORE_ADDR| data_st|
|000060e0| 61 72 74 3b 0a 58 2b 20 | 65 78 74 65 72 6e 20 43 |art;.X+ |extern C|
|000060f0| 4f 52 45 5f 41 44 44 52 | 20 64 61 74 61 5f 65 6e |ORE_ADDR| data_en|
|00006100| 64 3b 0a 58 2b 20 65 78 | 74 65 72 6e 20 43 4f 52 |d;.X+ ex|tern COR|
|00006110| 45 5f 41 44 44 52 20 73 | 74 61 63 6b 5f 73 74 61 |E_ADDR s|tack_sta|
|00006120| 72 74 3b 0a 58 2b 20 65 | 78 74 65 72 6e 20 43 4f |rt;.X+ e|xtern CO|
|00006130| 52 45 5f 41 44 44 52 20 | 73 74 61 63 6b 5f 65 6e |RE_ADDR |stack_en|
|00006140| 64 3b 0a 58 2b 20 0a 58 | 2b 20 2f 2a 20 56 69 72 |d;.X+ .X|+ /* Vir|
|00006150| 74 75 61 6c 20 61 64 64 | 72 65 73 73 65 73 20 6f |tual add|resses o|
|00006160| 66 20 62 6f 75 6e 64 73 | 20 6f 66 20 74 77 6f 20 |f bounds| of two |
|00006170| 61 72 65 61 73 20 6f 66 | 20 6d 65 6d 6f 72 79 20 |areas of| memory |
|00006180| 69 6e 20 74 68 65 20 65 | 78 65 63 20 66 69 6c 65 |in the e|xec file|
|00006190| 2e 0a 58 2b 20 20 20 20 | 4e 6f 74 65 20 74 68 61 |..X+ |Note tha|
|000061a0| 74 20 74 68 65 20 64 61 | 74 61 20 61 72 65 61 20 |t the da|ta area |
|000061b0| 69 6e 20 74 68 65 20 65 | 78 65 63 20 66 69 6c 65 |in the e|xec file|
|000061c0| 20 69 73 20 75 73 65 64 | 20 6f 6e 6c 79 20 77 68 | is used| only wh|
|000061d0| 65 6e 20 74 68 65 72 65 | 20 69 73 20 6e 6f 20 63 |en there| is no c|
|000061e0| 6f 72 65 20 66 69 6c 65 | 2e 20 20 2a 2f 0a 58 2b |ore file|. */.X+|
|000061f0| 20 0a 58 2b 20 65 78 74 | 65 72 6e 20 43 4f 52 45 | .X+ ext|ern CORE|
|00006200| 5f 41 44 44 52 20 74 65 | 78 74 5f 73 74 61 72 74 |_ADDR te|xt_start|
|00006210| 3b 0a 58 2b 20 65 78 74 | 65 72 6e 20 43 4f 52 45 |;.X+ ext|ern CORE|
|00006220| 5f 41 44 44 52 20 74 65 | 78 74 5f 65 6e 64 3b 0a |_ADDR te|xt_end;.|
|00006230| 58 2b 20 0a 58 2b 20 65 | 78 74 65 72 6e 20 43 4f |X+ .X+ e|xtern CO|
|00006240| 52 45 5f 41 44 44 52 20 | 65 78 65 63 5f 64 61 74 |RE_ADDR |exec_dat|
|00006250| 61 5f 73 74 61 72 74 3b | 0a 58 2b 20 65 78 74 65 |a_start;|.X+ exte|
|00006260| 72 6e 20 43 4f 52 45 5f | 41 44 44 52 20 65 78 65 |rn CORE_|ADDR exe|
|00006270| 63 5f 64 61 74 61 5f 65 | 6e 64 3b 0a 58 2b 20 0a |c_data_e|nd;.X+ .|
|00006280| 58 2b 20 2f 2a 20 41 64 | 64 72 65 73 73 20 69 6e |X+ /* Ad|dress in|
|00006290| 20 65 78 65 63 75 74 61 | 62 6c 65 20 66 69 6c 65 | executa|ble file|
|000062a0| 20 6f 66 20 73 74 61 72 | 74 20 6f 66 20 74 65 78 | of star|t of tex|
|000062b0| 74 20 61 72 65 61 20 64 | 61 74 61 2e 20 20 2a 2f |t area d|ata. */|
|000062c0| 0a 58 2b 20 0a 58 2b 20 | 65 78 74 65 72 6e 20 69 |.X+ .X+ |extern i|
|000062d0| 6e 74 20 74 65 78 74 5f | 6f 66 66 73 65 74 3b 0a |nt text_|offset;.|
|000062e0| 58 2b 20 0a 58 2b 20 2f | 2a 20 41 64 64 72 65 73 |X+ .X+ /|* Addres|
|000062f0| 73 20 69 6e 20 65 78 65 | 63 75 74 61 62 6c 65 20 |s in exe|cutable |
|00006300| 66 69 6c 65 20 6f 66 20 | 73 74 61 72 74 20 6f 66 |file of |start of|
|00006310| 20 64 61 74 61 20 61 72 | 65 61 20 64 61 74 61 2e | data ar|ea data.|
|00006320| 20 20 2a 2f 0a 58 2b 20 | 0a 58 2b 20 65 78 74 65 | */.X+ |.X+ exte|
|00006330| 72 6e 20 69 6e 74 20 65 | 78 65 63 5f 64 61 74 61 |rn int e|xec_data|
|00006340| 5f 6f 66 66 73 65 74 3b | 0a 58 2b 20 0a 58 2b 20 |_offset;|.X+ .X+ |
|00006350| 2f 2a 20 41 64 64 72 65 | 73 73 20 69 6e 20 63 6f |/* Addre|ss in co|
|00006360| 72 65 20 66 69 6c 65 20 | 6f 66 20 73 74 61 72 74 |re file |of start|
|00006370| 20 6f 66 20 64 61 74 61 | 20 61 72 65 61 20 64 61 | of data| area da|
|00006380| 74 61 2e 20 20 2a 2f 0a | 58 2b 20 0a 58 2b 20 65 |ta. */.|X+ .X+ e|
|00006390| 78 74 65 72 6e 20 69 6e | 74 20 64 61 74 61 5f 6f |xtern in|t data_o|
|000063a0| 66 66 73 65 74 3b 0a 58 | 2b 20 0a 58 2b 20 2f 2a |ffset;.X|+ .X+ /*|
|000063b0| 20 41 64 64 72 65 73 73 | 20 69 6e 20 63 6f 72 65 | Address| in core|
|000063c0| 20 66 69 6c 65 20 6f 66 | 20 73 74 61 72 74 20 6f | file of| start o|
|000063d0| 66 20 73 74 61 63 6b 20 | 61 72 65 61 20 64 61 74 |f stack |area dat|
|000063e0| 61 2e 20 20 2a 2f 0a 58 | 2b 20 0a 58 2b 20 65 78 |a. */.X|+ .X+ ex|
|000063f0| 74 65 72 6e 20 69 6e 74 | 20 73 74 61 63 6b 5f 6f |tern int| stack_o|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.