Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* coffread.c extension for DLLs without debugging symbols
@ 2003-01-03 19:41 Raoul Gough
  2003-01-04  0:53 ` Michael Snyder
                   ` (2 more replies)
  0 siblings, 3 replies; 26+ messages in thread
From: Raoul Gough @ 2003-01-03 19:41 UTC (permalink / raw)
  To: gdb-patches

Patch for coffread.c to extract minimal symbolic information from a
portable executable using the export table. This provides a fallback
for DLLs without any gdb-recognized debugging symbols
(e.g. kernel32.dll). The export table read algorithm is taken from
pe-dll.c from the ld sources.

Actually, I'm surprised this hasn't been added before, because it
seems pretty handy to have. This is my *first* gdb patch submission,
so someone with more experience should probably take a good look at
(e.g. is coffread.c the right place for this kind of code?). I've
compiled and tested it on Windows 2000 using Cygwin (where it works)
and on i386 Suse Linux (where it compiles and remains politely
inactive).

Bugs: Using dll-symbols or symbol-file on a DLL that has already had
its export table loaded results in multiple copies of all of the
symbols. Also, gdb seems to dereference all minimal symbols as if they
were pointers, so you often need to add an "&" to the symbol names.

Proposed ChangeLog entry, assuming the code is accepted:

2003-01-03  Raoul Gough  <RaoulGough@yahoo.co.uk>

 * coffread.c: Support non-debug export symbols for win32 DLLs


See the example for a simple demonstration of what the new code can
do. The code amounts to about 350 lines, so I'm not sure if this would
require me to fill out a copyright form.

Regards,
Raoul Gough.


begin 666 coffread.c.diff.gz
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
*_#]BK%JOQ2H`````
`
end

begin 666 example.txt
M)"!C870@9&QL96<N8PT*7U]A='1R:6)U=&4H*%]?9&QL97AP;W)T7U\I*2!V
M;VED(&9N("@I('L@?0T*#0I?7V%T=')I8G5T92@H7U]D;&QE>'!O<G1?7RDI
M(&-H87(@:&5L;&];72 ](")(96QL;R!W;W)L9"([#0H-"E]?871T<FEB=71E
M*"A?7V1L;&5X<&]R=%]?*2D@:6YT(&EN:71?9&%T82 ](#0R.PT*#0I?7V%T
M=')I8G5T92@H7U]D;&QE>'!O<G1?7RDI(&EN="!U;FEN:71?9&%T83L-"@T*
M)"!C870@9&QL96=M86EN+F,-"E]?871T<FEB=71E*"A?7V1L;&EM<&]R=%]?
M*2D@=F]I9"!F;B H*3L-"@T*7U]A='1R:6)U=&4H*%]?9&QL:6UP;W)T7U\I
M*2!C:&%R(&AE;&QO6UT[#0H-"E]?871T<FEB=71E*"A?7V1L;&EM<&]R=%]?
M*2D@:6YT(&EN:71?9&%T83L-"@T*7U]A='1R:6)U=&4H*%]?9&QL:6UP;W)T
M7U\I*2!I;G0@=6YI;FET7V1A=&$[#0H-"FEN="!M86EN("@I#0I[#0H@(&9N
M*"D[#0H@('5N:6YI=%]D871A(#T@:6YI=%]D871A.PT*#0H@(')E='5R;B P
M.PT*?0T*)"!G8V,@+6,@9&QL96<N8PT*)"!G8V,@+6,@9&QL96=M86EN+F,-
M"B0@(PT*)" C($YO=&4Z("U7;"PM<R!S=')I<',@86QL('!O<W-I8FQE('-Y
M;6)O;',-"B0@(PT*)"!G8V,@+5=L+"US("US:&%R960@+6\@9&QL96<N9&QL
M(&1L;&5G+F\-"B0@9V-C("U7;"PM<R M;R!D;&QE9VUA:6X@9&QL96=M86EN
M+F\@9&QL96<N9&QL#0HD(&=D8B!D;&QE9VUA:6X-"D=.52!G9&(@,C P,RTP
M,2TP,2UC=G,-"D-O<'ER:6=H=" R,# R($9R964@4V]F='=A<F4@1F]U;F1A
M=&EO;BP@26YC+@T*1T1"(&ES(&9R964@<V]F='=A<F4L(&-O=F5R960@8GD@
M=&AE($=.52!'96YE<F%L(%!U8FQI8R!,:6-E;G-E+"!A;F0@>6]U(&%R90T*
M=V5L8V]M92!T;R!C:&%N9V4@:70@86YD+V]R(&1I<W1R:6)U=&4@8V]P:65S
M(&]F(&ET('5N9&5R(&-E<G1A:6X@8V]N9&ET:6]N<RX-"E1Y<&4@(G-H;W<@
M8V]P>6EN9R(@=&\@<V5E('1H92!C;VYD:71I;VYS+@T*5&AE<F4@:7,@86)S
M;VQU=&5L>2!N;R!W87)R86YT>2!F;W(@1T1"+B @5'EP92 B<VAO=R!W87)R
M86YT>2(@9F]R(&1E=&%I;',N#0I4:&ES($=$0B!W87,@8V]N9FEG=7)E9"!A
M<R B:38X-BUP8RUC>6=W:6XB+BXN*&YO(&1E8G5G9VEN9R!S>6UB;VQS(&9O
M=6YD*2XN+@T**&=D8BD@8G)E86L@;6%I;@T*3F\@<WEM8F]L('1A8FQE(&ES
M(&QO861E9"X@(%5S92!T:&4@(F9I;&4B(&-O;6UA;F0N#0HH9V1B*2 C#0HH
M9V1B*2 C(%)U;B!T:&4@<')O9W)A;2!T;R!G970@86QL($1,3',@;&]A9&5D
M+B!4:&4@;F5W(&-O9&4-"BAG9&(I(",@97AT<F%C=',@=&AE(&5X<&]R=&5D
M('-Y;6)O;',@9G)O;2!T:&4@1$Q,<PT**&=D8BD@(PT**&=D8BD@<G5N#0I3
M=&%R=&EN9R!P<F]G<F%M.B O8WEG9')I=F4O9B]5<V5R<R]286]U;"]G9&(O
M9&QL96=M86EN+F5X92 -"@T*4')O9W)A;2!E>&ET960@;F]R;6%L;'DN#0HH
M9V1B*2 C#0HH9V1B*2 C($-A;B!N;W<@<V5T(&$@8G)E86MP;VEN="!A;F0@
M<F5S=&%R="!T:&4@<')O9W)A;2X-"BAG9&(I(",@57-E("HF('1O(&)Y<&%S
M<R!E;G1R>2!P;VEN="!D971E<FUI;F%T:6]N("AS964-"BAG9&(I(",@86QS
M;R!087-C86P@3V)R>2=S(&DS.#8M=&1E<"YC('!A=&-H(&9O<B!G9&(-"BAG
M9&(I(",@<')O8FQE;2!R97!O<G0@-S@P*0T**&=D8BD@(PT**&=D8BD@8G)E
M86L@*B9F;@T*0G)E86MP;VEN=" Q(&%T(#!X,3 P,#$P,# -"BAG9&(I(')U
M;@T*4W1A<G1I;F<@<')O9W)A;3H@+V-Y9V1R:79E+V8O57-E<G,O4F%O=6PO
M9V1B+V1L;&5G;6%I;BYE>&4@#0H-"D)R96%K<&]I;G0@,2P@,'@Q,# P,3 P
M,"!I;B!F;B H*2!F<F]M("]C>6=D<FEV92]F+U5S97)S+U)A;W5L+V=D8B]D
M;&QE9RYD;&P-"BAG9&(I(",-"BAG9&(I(",@2&ET('1H92!B<F5A:W!O:6YT
M(2!7:71H;W5T('1H92!P871C:"P@9V1B(&1O97-N)W0-"BAG9&(I(",@<F5P
M;W)T(&%N>2!O9B!S>6UB;VQI8R!N86UE<R!I;B!T:&4@9F]L;&]W:6YG#0HH
M9V1B*2 C('-T86-K('1R86-E.@T**&=D8BD@(PT**&=D8BD@=VAE<F4-"B,P
M(" P>#$P,# Q,# P(&EN(&9N("@I(&9R;VT@+V-Y9V1R:79E+V8O57-E<G,O
M4F%O=6PO9V1B+V1L;&5G+F1L; T*(S$@(#!X-C$P,#-F-#(@:6X@8WEG=VEN
M,2%?7V%S<V5R=" H*0T*(S(@(#!X-C$P,#0R,S8@:6X@9&QL7V-R=#! ," H
M*0T*(S,@(#!X-C$P,#0R-S4@:6X@9&QL7V-R=# @*"D-"B,T(" P># P-# Q
M,&)F(&EN(#\_("@I#0HC-2 @,'@P,#0P,3 S9"!I;B _/R H*0T*(S8@(#!X
M-S=E.3DR838@:6X@2T523D5,,S(A1V5T0V]M;6%N9$QI;F57("@I#0HH9V1B
M*2 C#0HH9V1B*2 C($%C8V5S<VEN9R!D871A(&-A;B!B92!A(&)I="!T<FEC
M:WD@8F5C875S92!T:&5R92!I<PT**&=D8BD@(R!N;R!T>7!E(&EN9F]R;6%T
M:6]N#0HH9V1B*2 C#0HH9V1B*2!P<FEN="!I;FET7V1A=&$-"B0Q(#T@-#(-
M"BAG9&(I('!R:6YT("AC:&%R("HI)FAE;&QO#0HD,B ](#!X,3 P,#(P,# @
M(DAE;&QO('=O<FQD(@T**&=D8BD@>"]S("9H96QL;PT*,'@Q,# P,C P," \
M:&5L;&\^.@D@(DAE;&QO('=O<FQD(@T**&=D8BD@>"]X("9I;FET7V1A=&$-
M"C!X,3 P,#(P,&,@/&EN:71?9&%T83XZ"3!X,# P,# P,F$-"BAG9&(I('@O
M>" F=6YI;FET7V1A=&$-"C!X,3 P,#,P9F,@/'5N:6YI=%]D871A/CH),'@P
M,# P,# P, T**&=D8BD@(PT**&=D8BD@(R!1=6%L:69I960@;F%M97,@=7-U
M86QL>2!N965D('%U;W1E<R!T;R!W;W)K('!R;W!E<FQY+@T**&=D8BD@(R!4
M:&5S92!M87D@8F4@=7-E9G5L('-O;65T:6UE<R!T;R!R97-O;'9E(&YA;64@
M8VQA<VAE<PT**&=D8BD@(R!O<B!W:&5N(&QI<W1I;F<@86QL('-Y;6)O;',@
M9G)O;2!A($1,3"X-"BAG9&(I(",-"BAG9&(I('@O>" F)V1L;&5G(6EN:71?
M9&%T82<-"C!X,3 P,#(P,&,@/&EN:71?9&%T83XZ"3!X,# P,# P,F$-"BAG
M9&(I(&EN9F\@=F%R:6%B;&5S(&1L;&5G(0T*06QL('9A<FEA8FQE<R!M871C
M:&EN9R!R96=U;&%R(&5X<')E<W-I;VX@(F1L;&5G(2(Z#0H-"DYO;BUD96)U
M9V=I;F<@<WEM8F]L<SH-"C!X,3 P,#(P,# @(&1L;&5G(6AE;&QO#0HP>#$P
M,# R,#!C("!D;&QE9R%I;FET7V1A=&$-"C!X,3 P,#,P9F,@(&1L;&5G(75N
M:6YI=%]D871A#0HH9V1B*2!I;F9O(&9U;F-T:6]N<R!D;&QE9R$-"D%L;"!F
M=6YC=&EO;G,@;6%T8VAI;F<@<F5G=6QA<B!E>'!R97-S:6]N(")D;&QE9R$B
M.@T*#0I.;VXM9&5B=6=G:6YG('-Y;6)O;',Z#0HP>#$P,# Q,# P("!D;&QE
M9R%F;@T**&=D8BD@(PT**&=D8BD@(R!0<F]B;&5M(&AE<F4@:7,@=&AA="!S
M>6UB;VPM9FEL92!R96QO861S('1H92 J<V%M92H@<WEM8F]L<PT**&=D8BD@
M(R!A;F0@8W)E871E<R!D=7!L:6-A=&4@;6EN:6UA;"!S>6UB;VP@96YT<FEE
M<PT**&=D8BD@(PT**&=D8BD@<WEM8F]L+69I;&4@9&QL96<N9&QL#0I296%D
M:6YG('-Y;6)O;',@9G)O;2!D;&QE9RYD;&PN+BY-:6YI;6%L('-Y;6)O;',@
M9G)O;2!D;&QE9RYD;&PN+BX-"BAN;R!D96)U9V=I;F<@<WEM8F]L<R!F;W5N
M9"DN+BYD;VYE+@T**&=D8BD@:6YF;R!F=6YC=&EO;G,@2T523D5,,S(N*@T*
M06QL(&9U;F-T:6]N<R!M871C:&EN9R!R96=U;&%R(&5X<')E<W-I;VX@(DM%
M4DY%3#,R+BHB.@T*#0I.;VXM9&5B=6=G:6YG('-Y;6)O;',Z#0HP>#<W93@Q
M-68V("!+15).14PS,B%)<T1E8G5G9V5R4')E<V5N= T*,'@W-V4X,38P-" @
M2T523D5,,S(A3W5T<'5T1&5B=6=3=')I;F=7#0HP>#<W93@Q-C9E("!+15).
M14PS,B%7<FET95!R;V9I;&5396-T:6]N00T*,'@W-V4X,38X," @2T523D5,
M,S(A1V5T4')O9FEL95-E8W1I;VY7#0HP>#<W93@Q-CDV("!+15).14PS,B%7
M<FET95!R:79A=&50<F]F:6QE4V5C=&EO;D$-"C!X-S=E.#$V8F8@($M%4DY%
L3#,R(4=E=%!R:79A=&50<F]F:6QE4V5C=&EO;E<-"@T*6V5T8RXN+BY=#0H`
`
end




^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: coffread.c extension for DLLs without debugging symbols
@ 2003-01-04 16:42 Michael Elizabeth Chastain
  2003-01-05 15:40 ` Andrew Cagney
  0 siblings, 1 reply; 26+ messages in thread
From: Michael Elizabeth Chastain @ 2003-01-04 16:42 UTC (permalink / raw)
  To: gdb-patches, RaoulGough

Hi Raoul,

> What does RFA stand for? Seemed to me like it was used by people who
> were actually capable of updating the CVS themselves and just wanted
> confirmation.

"RFA" == "Request for Approval".

GDB has a human approval system that goes beyond the CVS permissions.
You can read about it in the top level MAINTAINERS file.

There are three levels of access.  'Blanket Maintainers' have the
authority to commit files anywhere in the gdb tree.  Several types
of 'Maintainers' have authority to commit files in their area of
responsibility.  'Write After Approval' maintainers have the authority
to commit their patches if a Blanket Maintainer or a Maintainer approves
them.

All of these people have write permission in the CVS repository.
If someone exceeds their authority and commits a patch without the
necessary authority, then the Head Maintainer would deal with them
and with their unauthorized commit.  This does not happen very often.

Many maintainers, even Blanket Maintainers, ask for RFA on patches
that they have the authority to commit.  If there is an active
Maintainer for an area, it's a smart move to get the Maintainer's
opinion before commiting to that area.

Other request types are:

  RFC == "request for comments".  The submitter wants feedback on the
  patch and may not even want to commit it yet.

  RFA == "request for approval".  The submitter has little doubt that
  the patch is ready to commit, and just wants a short answer.

  PATCH == "it's going in".  The submitter has authority to commit
  this patch and is about to do so, either immediately or as soon as
  they get around to it.  No reply is needed.

Michael Snyder knows the nuances of this system better than I do;
he may have some corrections.

I just filed a PR to document this stuff for the benefit of first-time
patch writers.

Michael C


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2003-01-10 22:45 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-03 19:41 coffread.c extension for DLLs without debugging symbols Raoul Gough
2003-01-04  0:53 ` Michael Snyder
2003-01-04  4:43 ` Christopher Faylor
2003-01-04 16:31   ` Raoul Gough
2003-01-04 17:54     ` Eli Zaretskii
2003-01-04 20:51     ` Christopher Faylor
2003-01-05 14:44       ` Mark Kettenis
2003-01-05 17:18         ` Christopher Faylor
2003-01-05 17:40           ` Daniel Jacobowitz
2003-01-07  1:03       ` Raoul Gough
2003-01-07  1:12         ` Daniel Jacobowitz
2003-01-07 13:11       ` Raoul Gough
2003-01-07 16:46         ` Christopher Faylor
2003-01-07  2:28     ` Michael Snyder
2003-01-07  2:24   ` Michael Snyder
2003-01-04 11:03 ` Eli Zaretskii
2003-01-04 16:21   ` Raoul Gough
2003-01-06 17:10   ` Elena Zannoni
2003-01-06 17:41     ` Christopher Faylor
2003-01-07  0:46     ` Raoul Gough
2003-01-07  1:53       ` Elena Zannoni
2003-01-10 22:45         ` Raoul Gough
2003-01-07  1:00     ` Andrew Cagney
2003-01-10 22:37       ` Raoul Gough
2003-01-04 16:42 Michael Elizabeth Chastain
2003-01-05 15:40 ` Andrew Cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox