Hello, Bill!
I have article about that problem … but it is in russian
http://qnx.org.ru/docs-devel/elf.html
In two words: you can read .ELF segments without any library, as base I’m
using print_usage function by Colin Burgess for QNX6. It is in attachment -
use.c. Also here my example how to use .ELF data directly from code.
sections.c and usgcol.h .
But be careful, QNX6 loads up all ELF file into memory, so those overlays in
…elf segments will eat your memory. Here complete archive of sources for my
article ftp://ftp.qnx.org.ru/pub/projects/mike/files.tar.gz .
Good luck
With best regards, Mike Gorchak. E-mail: mike@malva.ua
begin 666 use.c
M+RH@0V]D92!B>2!#;VQI;B!"=7)G97-S(#QC8G5R9V5S<T!Q;G@N8V]M/BP@
MB-“B\J(&9I<G-T(’!U8FQI<VAE9#H@-”!$96,@,C P,“X@(” @(" @(" @
M(" @("HO#0H-"B-I9F1E9B!?7U5304=%#0HE0R M(‘1E<W0@<’)I;G1?=7-A
M9V4-"B-E;F1I9B OB!?7U5304=%(“HO#0H-“B-I;F-L=61E(#QE<G)N;RYH
M/@T*(VEN8VQU9&4@/&9C;G1L+F@^#0HC:6YC;‘5D92 <W1D:6\N:#X-"B-I
M;F-L=61E(#QS=&1L:6(N:#X-"B-I;F-L=61E(#QS>7,O9&5B=6<N:#X-“B-I
M;F-L=61E(#QS>7,O96QF+F@^#0HC:6YC;'5D92 <WES+W!R;V-F<RYH/@T*
M(VEN8VQU9&4@/‘5N:7-T9"YH/@T*#0IV;VED(’!R:6YT7W5S86=E*‘9O:60I
M#0I[#0I%;&8S,E]%:&1R"0EE:&1R.PT16QF,S)?4VAD<@D)G-H9’(@/2!.
M54Q,.PT8VAA<@D)"2IU<V%G92 ]($Y53$PL("IS:’-T<G1A8B ]($Y53$P[
M#0II;G0)“0D)9F0L(&D[#0H-”@DOB!G970@82!F:6QE(&1E<V-R:7!T;W(@
M=&@;W5R(&5X96-U=&%B;&4@B-"@EI9B H(“TQ(#T](“AF9” ](%]C;61F
M9”@I2 I#0H)“7)E='5R;CL-”@T*"2\J(’)E860@16QF($AE861E<B J+PT*
M"6EF(”@@<VEZ96]F*&5H9’(I(”$](’)E860H9F0L(“9E:&1R+”!S:7IE;V8H
M96AD<BDI(“D@>PT*“0ER971U<FX[#0H)?0T*#0H)+RH@0VAE8VL@14Q&(&UA
M9VEC(“HO#0H):68@" @(&5H9’(N95]I9&5N=%LP72 A/2 P>#=F( T"0E
M?”!E:&1R+F5?:61E;G1;,5T@(3T@)T4G#0H)“7Q(&5H9’(N95]I9&5N=%LR
M72 A/2 G3”<-”@D)?'P@96AD<BYE7VED96YT6S-=(”$](”=&)R I(‘L-"@D)
M<F5T=7)N.PT*“7T-”@T*"2\J(’)E860@<V5C=&EO;B!T86)L92 J+PT*“6EF
M(”@@’-H9’(@/2!M86QL;V,H(&5H9’(N95]S:&5N=’-I>F4@B!E:&1R+F5?
M<VAN=6T@2D@/3T@3E5,3" I('L-"@D)9V]T;R!E;F0#0H)?0T*“6EF(”@@
M+3$@/3T@;’-E96LH(&9D+"!E:&1R+F5?<VAO9F8L(%-%14M?4T54(“D@0T
M"0EG;W1O(&5N9#L-”@EI9B H("!E:&1R+F5?<VAE;G1S:7IE(“H@96AD<BYE
M7W-H;G5M(”$E860H(&9D+"!S:&1R+"!E:&1R+F5?<VAE;G1S:7IE("H@
M96AD<BYE7W-H;G5M(“D@0T"0EG;W1O(&5N9#L-”@T"2\J(’)E860@<W1R
M:6YG(&EN9&5X("HO#0H):68@" H<VAS=’)T86(@/2!M86QL;V,H(’-H9’);
M96AD<BYE7W-H<W1R;F1X72YS:%]S:7IE(“DI(#T]($Y53$P@2![#0H)"6=O
M=&@96YD.PT"7T-”@EI9B H("TQ(#T](&QS965K"!F9"P@<VAD<EME:&1R
M+F5?<VAS=’)N9’A=+G-H7V]F9G-E=“P@4T5%2U]3150@2 I#0H)"6=O=&@
M96YD.PT"6EF(”@@<VAD<EME:&1R+F5?<VAS=’)N9’A=+G-H7W-I>F4@(3T@
M<F5A9"@@9F0L(’-H<W1R=&%B+"!S:&1R6V5H9’(N95]S:’-T%TN<VA?
M<VEZ92 I(“D@>PT*“0EG;W1O(&5N9#L-”@E]#0H-”@DOB!L;V]K(‘1H<F]U
M9V@@96%C:"!S96-T:6]N(‘5N=&EL(’=E(&9I;F0@=&AE(")13EA?=7-A9V4B
M(’-E8W1I;VX@B-"@EF;W(@"!I(#T@,3L@:2 (&5H9’(N95]S:&YU;3L@
M:2LK("D@>PT"0EI9B H("%S=’)C;7 H(“9S:’-T<G1A8EMS:&1R6VE=+G-H
M7VYA;65=+”)13EA?=7-A9V4B2D-"@D)"6)R96%K.PT"7T-"@EI9B H(&D@
M/3T@96AD<BYE7W-H;G5M(“D-”@D)9V]T;R!E;F0[#0H-"@EI9B H(“AU<V%G
M92 ](&UA;&QO8R@@<VAD<EMI72YS:%]S:7IE(“DI(#T]($Y53$P@0T"0EG
M;W1O(&5N9#L-”@T*“6EF(”@@+3$@/3T@;’-E96LH(&9D+”!S:&1R6VE=+G-H
M7V]F9G-E=“P@4T5%2U]3150@2 I#0H)"6=O=&@96YD.PT#0H):68@"!S
M:&1R6VE=+G-H7W-I>F4@(3T@<F5A9"@@9F0L('5S86=E+"!S:&1R6VE=+G-H
M7W-I>F4@2 I#0H)"6=O=&@96YD.PT#0H)=W)I=&4H(%-41$524E]&24Q%
M3D\L('5S86=E+"!S:&1R6VE=+G-H7W-I>F4@3L-"@T96YD.@T"6EF(”@@
M<VAD<B I#0H)“69R964H(’-H9’(@*3L-”@EI9B H(’-H<W1R=&%B(“D-”@D)
M9G)E92@@<VAS=’)T86(@3L-"@EI9B H('5S86=E(“D-”@D)9G)E92@@=7-A
M9V4@3L-“GT-”@T:6YT(&UA:6XH=F]I9"D-“GL-”@EP<FEN=%]U<V%G92@I
6.PT#0H)<F5T=7)N(# [#0I]#0H-"@``
`
end
begin 666 sections.c
M(VEN8VQU9&4@/’-T9&EO+F@^"@HC:6YC;'5D92 B=7-G8V]L+F@B"@IC;VYS
M="!C:&%R('5S86=E6UT@7U]A='1R:6)U=&5?7R@H<V5C=&EO;B@B44Y87W5S
M86=E(BDI2 ]( H@(" B7&XE0R M($%P<&QI8V%T:6]N(&9O<B!T97-T:6YG
M('5S86=E(&-O;&]R<SI<;EQN(@H@(" B(" @1&%R:R!C;VQO<G,Z(%QN(@H@
M(" B(" @(" @(B!54T=?0DQ512 @(" @(" B0FQU95QN(@H@(" B(" @(" @
M(B!54T=?1U)%14X@(" @(" B1W)E96Y<;B((" @(B @(" @("(@55-'7T-9
M04X@(" @(" @(D-Y86Y<;B((" @(B @(" @("(@55-'7U)%1" @(" @(" @
M(E)E9%QN(@H@(" B(" @(" @(B!54T=?34%'14Y402 @(" B36%G96YT85QN
M(@H@(" B(" @(" @(B!54T=?0E)/5TX@(" @(" B0G)O=VY<;B((" @(B @
M(" @("(@55-'7TQ)1TA41U)!62 @(DQI9VAT($=R87E<;B((" @(EQN(@H@
M(" B(" @3&EG:'0@8V]L;W)S.B!<;B((" @(B @(" @("(@55-‘7T1!4DM’
M4D%9(" @(D1A<FL@1W)A>5QN(@H@(" B(" @(" @(B!54T=?3$E’2%1"3%5%
M(" B3&EG:'0@0FQU95QN(@H@(" B(" @(" @(B!54T=?3$E’2%1’4D5%3B B
M3&EG:'0@1W)E96Y<;B((" @(B @(" @("(@55-'7TQ)1TA40UE!3B @(DQI
M9VAT($-Y86Y<;B((" @(B @(" @("(@55-‘7TQ)1TA44D5$(" @(DQI9VAT
M(%)E9%QN(@H@(" B(" @(" @(B!54T=?4$E.2R @(" @(" B4&EN:UQN(@H@
M(" B(" @(" @(B!54T=?645,3$]7(" @(" B665L;&]W7&XB"B @("(@(" @
M(" B(%531U]72$E412 @(" @(")7:&ET95QN(@H*(" @55-‘7TQ)1TA41U)!
M62 B7&XB.R O+R!R971U<FX@9&5F875L="!C;VQO<G,"F-O;G-T(&-H87(@
M:6YF;UM=(%]?871T<FEB=71E7U\H’-E8W1I;VXH(E%.6%]I;F9O(BDI2 ]
M"B)35$%413U%>’!E<FEM96YT86Q<;B((DE.4U1!3$Q$25(]>#@V+W5S<B]B
M:6XO7&XB"B))3E-404Q,3D%-13US96-T:6]N<W1E<W1<;B((DY!344]<V5C
M=&EO;G-<;B((E5315(]<F]O=%QN(@HB2$]35#UD969L96MT;W)<;B((D1!
M5$4],C P,B\P."\R,2TQ-SHU-3HP,45%4U1<;B((D1%4T-225!424]./4IU
M<W0@82!S96=M96YT<R!T97-T(’!R;V=R86TN7&XB.PH*:6YT(&UA:6XH*0I[
M"B @(&-H87(@8G5F9F5R6S(U-ET["@H@("!P<FEN=&8H(EQN(BD[“B @( H@
J(”!S8V%N9B@B)7,B+"!B=69F97(I.PH@(" (" @<F5T=7)N(# ["GT
`
end
begin 666 usgcol.h
M(VEF;F1E9B!?7U531T-/3%](7U*(V1E9FEN92!?7U531T-/3%](7U*“B-D
M969I;F4@55-'7T),04-+(” @(" @(EQX,4(B(ELR,CLS,&TB"B-D969I;F4@
M55-'7T),544@(" @(" @(EQX,4(B(ELR,CLS-&TB"B-D969I;F4@55-'7T=2
M145.(" @(" @(EQX,4(B(ELR,CLS,FTB"B-D969I;F4@55-'7T-904X@(" @
M(" @(EQX,4(B(ELR,CLS-FTB"B-D969I;F4@55-'7U)%1" @(" @(" @(EQX
M,4(B(ELR,CLS,6TB"B-D969I;F4@55-'7TU!1T5.5$$@(" @(EQX,4(B(ELR
M,CLS-6TB"B-D969I;F4@55-‘7T)23U=.(" @(" @(EQX,4(B(ELR,CLS,VTB
M"B-D969I;F4@55-‘7TQ)1TA41U)!62 @(EQX,4(B(ELR,CLS-VTB"@HC9&5F
M:6YE(%531U]$05)+1U)!62 @(")<>#%"(B);,3LS,&TB"B-D969I;F4@55-’
M7TQ)1TA40DQ512 @(EQX,4(B(ELQ.S,T;2((V1E9FEN92!54T=?3$E’2%1’
M4D5%3B B7’@Q0B(B6S$[,S)M(@HC9&5F:6YE(%531U],24=(5$-904X@(")<
M>#%"(B);,3LS-FTB"B-D969I;F4@55-'7TQ)1TA44D5$(" @(EQX,4(B(ELQ
M.S,Q;2((V1E9FEN92!54T=?4$E.2R @(" @(" B7’@Q0B(B6S$[,S5M(@HC
M9&5F:6YE(%531U]914Q,3U<@(" @(")<>#%"(B);,3LS,VTB"B-D969I;F4@
M55-'7U=(251%(" @(" @(EQX,4(B(ELQ.S,W;2(*"B-E;F1I9B O+R!?7U53
)1T-/3%](7U*
`
end