From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10135 invoked by alias); 3 Jan 2003 19:41:15 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 10111 invoked from network); 3 Jan 2003 19:41:14 -0000 Received: from unknown (HELO main.gmane.org) (80.91.224.249) by 209.249.29.67 with SMTP; 3 Jan 2003 19:41:14 -0000 Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 18UXfp-00047I-00 for ; Fri, 03 Jan 2003 20:40:05 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gdb-patches@sources.redhat.com Received: from news by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 18UXeX-00040r-00 for ; Fri, 03 Jan 2003 20:38:45 +0100 Path: not-for-mail From: "Raoul Gough" Subject: coffread.c extension for DLLs without debugging symbols Date: Fri, 03 Jan 2003 19:41:00 -0000 Message-ID: X-Complaints-To: usenet@main.gmane.org X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-SW-Source: 2003-01/txt/msg00078.txt.bz2 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 * 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 M'XL("(S5%3X"`V-O9F9R96%D+F,N9&EF9@"U&FEOVT;VLX/F/[QZL;'NZ# < M)XH-N+%WX6V:%+%W6VS6("AR)+&F."J']-'4_WW?FXM#BI23M!5@F<>\-^^^ M1N=)R.Y>0<#G\Y3YX2!X^N3HCW^>/OGPY@+F4P?/@1CP7:2#_%N'L>;%7 M[^;IDY1E:<1NHF0!*?X3$4]@-)B,GSX)H_D<^@'TU]!/Z5&)RDZGX]SOC%[ M*0M@/!R.83A\-7GY:O@"^D/\["AL_7[?73^!?_D)+9_ Z/#5>!\AU'*)V?V MR/PL"N"&1R$0M,<3YHG[%;1$EN9!)M'B`T73Z,7+WNAP'PA4[:J>' !>]Y\^ M`=C9V0'0H%&2L33Q8\+'D@PZ/<@3$H%]X>=W\D5[2K#TY]*CMUYE_LPCVJ 5 M\V1!2$2T2%A(>'IF,S[[A52B<'6!_C9X6S./W:UYFK&0\ K+I 76%XJ>;^CK M>0=^8N"G# (_CG%3G@0,UBP%P8*,N)FG?&5I)6A)[ `0CA#@)V$(EW%@=_XJ M2A@P/UA:\%N%?>T+P<(>!$L67--BP=BFNNI%`OH)OA0L(P%I=0T/#WJCX/8,6B@_*9VV6@/PR5QH M.>W=,%CP#!(.(9OEBT6DB)OQ6/1@EF=PG?!;6.(?[9 M>6XL3'V"I9\B-8E 2];@1S";AQY>>?I!2UM6_YCCF\)&U4=*&VTQ"59K:"F0 M'NRN69\8W^W!I*W4H&B$WW^'VN616;^OURN 3QJLP0DX+G::"MP%B-M$F6A-HN2_C(G*HV7 XS*5N@]LF=2O$&5:]M>'2 -CQZ M4;)AC$&]T?[A86'#`#/$>SW=,.BN^OJ&OM!&3\(P(K?S8^N 43+GZ!JB\?V2HS;QN53].D_77#"!YBF%TVF09&$8FAFS3&_EA7[FTVOM-V_>?SCS M3DY//\#-RM?>.X7R!VE^+U^0-<;<)^+\,$23)G(L$VIK*&*CC OIC>]A%$S+ M6!'E!3T$M2/<1MDR4D:^9ELPH8ZG&\2=)>%V/"S)5X!A+UJI3( ^[67WN& E MY/^IPG-)CY!%#(.XK75^Q%=F\<&ZSM]"-J=H^N.9=W'VYO+\_3OO_-WIV<_> MY=G/EY*\X=9EIR>7)W+9:.NR[RXN%+/CAF67)]^]Q;OS_Y[)99.MV,[?_>?D M[?DI]$>&#>3]GZ1=E%I$]0IIE6XH`H6.D0*Z'O#;!.-:ZM_WX'8981;!L)/Y M42*T76;L#B,!F1GXJ)B9D!+,EA@ZR:[3`7Q@& ^31L(T'G1XE9 0#5H"N<4B MB81#D R02B4ZSV(VWC!XQ5%+!4<9)SOF%2%H.\Y ,0;=1H8T=PT&M@&QM>N$ MP$KN21MX(D.85L*9-,E8L*W[D0"_8C^RJ*_:#_7T%=NA93;M]@58M.++F!X< MZ_P@8Z*TR9LHS7(,G2NVXNF]&X?\BINZM1>E0<,Q!CK,.)@"H>/C=P_]W<#1 MQ;JG0#IDUZATUT"VQ%1K55BM@ ;5#)%5RI=W^*K!/.7._6-ID4YFEAI3H-\> M-0JNH1@Z);*2S?E;@04\T=80CP%;;(%9Z&& XYUA" M$A(=BJLEBA'/1\7/U:!(.#+I']7M`RVE(BF>-O0WL13Y9=-Z3,9]@T+/D#63 M`W1HQ[R0H0E1BL404RGZ-HV(;M' M=X4*2Y]C5_)N$U1M'L;QQN9-C85CSZH:4<9!^K-Y%+/@0F>$S80OE[M"JI01 M:.6&5>B"2W[_V*DR%*2B_U=TZ6@>H41E4,MYVE M`<^3S/$?F=D2EBKUMY9\S>9Y'-]3%_AKSMI@-U;9)!?4+A"#\RA%Z:[1L+1= M=0SKN"^HJ,D&BP%\?_;AW=G;R?A;E.1)QEQ\SBR2F) MS>[1@Y)PME#-&ZW:_2$*4B[X/,->V[0NEYQJ$++1GW YOQ6[)<_:$-P=VG?, M@T(\4FI=*S5CIFU\-G9#C2SFU_?0*J/L6?'W2HHP4B^O_N@NN4)R]K[=FUK\ M->B1B@JAHQY8&AWR5%GLE:NX#6*5^>^0%=KKL@'JDL^^+74>:JN[>^5FT;XF0_K?<&]*[!@JA$Q5@9]35Q1SOL8('IFTL_-03CZF(+&HNUV# MNZ[E+&6/M]AU]C'V8<0'D:\I\DM_;"4\ZF:W^F/;^#+UF0 MRP>BIX+ [9+)Q)NJ`4S"]=Q %[N_%2.(`;SAH4&$9DE[M"@%PXJ':*6!;!Y% M6V_,^LC>(%!W<5AJ"Z5BW0$6/4;U8L ?'9B$>TM$6;V!K99LEI7A5JZ:.IJW M:*5QS#Z.KQRWH?PN&+LV>[3DI&J=I6V%J <79V??8XES:8(+0]_MGA\0=(A:JT(5*&,CYI%T)FA\YH5?R*=LBO0PSO7 M$Y4'FOI$>IOR`K_9'0> K6F$Z=:GTL#F8_0;JF-DS8S\1ZMU3-D`_R,B#QU, M(RJ[W(:K?53S M1A2 HEH$BCY9I9IK,CB$-96W+,91H?*]46P-&H]D-\/>:EIK%KA"%K1XA9O5 M(I%%`;[$+3%7DG:(!P24]P[J 2?X-.P1V44?J]$YA&K#ZI,*+\@;+4O4!H/SI3+TA;$ MS$_R-?JT'UQ[V".8.MTIMK/"!J7QJ4&G>B!%C48X8ZDHYNR@31*]T,BB:L84 M0FQ\#JG"&MY-`A/W"A-7Z\J@7=BG4MM2.2:RS/4;*@>'5\@E2).X#*CR=81K-0H6 MNKJF@L]$CJ'=84>AK[$C"L$D&C(:R:_NOTR$5SQ)J6M 695%$AM$J"'+-]YV MNW55J(P<0G8NAU=%:J\$(B6$$?6>2AS(QY!&E(T0-]0N;RK(($(96 G7`-=K MUP$^: :>*WDVPHZ'U9.?HBJ12YVB1$-MEB50+DV$:@^KY%X? MN1[P[)F66E<+X-AY6^X+K-7,E3):#IJ^PJ)/DM1VSNMNR8..RUNVK2&7W4S1 MT]^ZCSG[J3F^,N&CA+1AT$JMY6J=W1LK5P5,$5>VA1,Z5 G\I,@UTG/L7(X2 MYH8SI9@9;_PD*X#,7E_N3'_8:1ZS^\/V7^-P\]A?B&W DY+#J:#!`C7Q>.G& MC6+4.]V8?GHZS)AF]@L\$$D8/NZ%>HO/=<3/&$EO3#[@RV;2UF-+!CP6K:;ZY1CWL .4_8K%.CM--,Z,H'3P!*Y4A/R`5PL>8Y=[\J_QP8%]S)/R%5)Q.AW2=@DZ4FU,^RL'2"6F;;\G6=J7I\M M4YXOEO;G.?*W!F8:UIRF4+V-&0JQ_\@C-;KE]HA;P UJD:>E`KZI&2U9DJHH M"C?J(@D=V*]&S,UM[5S!'*LX%$!CFC*'*ILDE#RJF8I_H&)P_TAH0>Z)QM/] MDBA*)YC#"EZI`>>M6?FZ_A<*4^AVU8IRBI #8?THI2T*:TV MPZ%&PT@$?AK:;& #'S>)B\ZZ5493OX9Z<']7>.',L[')EX=?LN)<8J$8TRTA *_#]BK%JOQ2H````` ` end begin 666 example.txt M)"!C870@9&QL966]U(&%R90T* M=V5L8V]M92!T;R!C:&%N9V4@:70@86YD+V]R(&1I6EN9R(@=&\@2!N;R!W87)R86YT>2!F;W(@1T1"+B @5'EP92 B2(@9F]R(&1E=&%I;',N#0I4:&ES($=$0B!W87,@8V]N9FEG=7)E9"!A M6=W:6XB+BXN*&YO(&1E8G5G9VEN9R!S>6UB;VQS(&9O M=6YD*2XN+@T**&=D8BD@8G)E86L@;6%I;@T*3F\@&ET960@;F]R;6%L;'DN#0HH M9V1B*2 C#0HH9V1B*2 C($-A;B!N;W<@2!P;VEN="!D971E2=S(&DS.#8M=&1E<"YC('!A=&-H(&9O&4@#0H-"D)R96%K<&]I;G0@,2P@,'@Q,# P,3 P M,"!I;B!F;B H*2!F6=D2!O9B!S>6UB;VQI8R!N86UE#$P,# Q,# P(&EN(&9N("@I(&9R;VT@+V-Y9V1R:79E+V8O57-E# 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($%C8V5S7!E(&EN9F]R;6%T M:6]N#0HH9V1B*2 C#0HH9V1B*2!P"]S("9H96QL;PT*,'@Q,# P,C P," \ M:&5L;&\^.@D@(DAE;&QO('=O"]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" 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#$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'!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!06UB;VPM9FEL92!R96QO861S('1H92 J6UB;VP@96YT###