Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA7584 ; Mon, 25 Jan 93 12:18:21 EST Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!elroy.jpl.nasa.gov!sdd.hp.com!nigel.msen.com!yale.edu!ira.uka.de!Germany.EU.net!hcshh!hm From: hm@hcshh.hcs.de (Hellmuth Michaelis) Newsgroups: comp.unix.bsd Subject: [386BSD] gdb patch for using gdb with coredumps Keywords: 386bsd gdb patch coredump Message-ID: <1631@hcshh.hcs.de> Date: 22 Jan 93 07:42:27 GMT Organization: HCS GmbH, Hamburg, Europe Lines: 150 [I'm posting this for Joerg Wunsch, who is in the moment without news access. Please direct all questions, suggestions, flames etc. to him, he can still be reached via mail as joerg_wunsch@tcd-dresden.de or joerg@sax.de or joerg@ref.tfs.com or wutcd@hadrian.hrz.tu-chemnitz.de. Thank you! hellmuth] Hi netters, when working with GDB, an annoying bug occurs when debugging core dumps. GDB always complains about an unreadable stack region if one attempts to grab out any stack data (e. g. with the ``where'' command). I found there's an error in config/i386bsd-dep.c: the stack top is reset during `exec_file_command()' to zero [and you'll always have to execute this command if you wanna debug something]. I've managed the function `core_file_command()' to set it to a reasonable value before reading the core file, so everything works fine. Btw, the `reasonable value' is offset for MAXSSIZ from the constant named USRSTACK (in /usr/include/machine/ vmparam.h) - I suspect there's still a mistake in /sys/kern/kern_execve.c which causes this offset to each user program. But don't bother with that, it doesn't harm very much (for now). To get GDB compiled, you'll have to symlink all /sys/vm/*.h files into (existing) /usr/include/vm directory - someone forgot this. When working with kgdb in analyzing kernel core dumps, I found it useful to be able to set an arbitrary stack frame to something I guess it could be a stack frame. I've extended the existing hooks in GDB sources, so it can now be compiled with a macro ``FRAME_ SPECIFICATOIN_DYADIC'' defined. This allows a third form of the frame command: frame <new_framepointer> <new_programmcounter> resulting in a new frame (for GDB's idea) being created and making it the top one. A general recipe for analyzing kernel core dumps looks like: % cd /sys/compile/YOURMACHINE % compile what you feel necessary with `-g' Option % size 386bsd; size /var/crash/system.NN should report identical section sizes (though 386bsd would be larger) % gdb -k 386bsd /var/crash/ram.NN (kgdb) up 2 [ somewhere in trap() ] (kgdb) print/x frame [ shows you the register contents when system trapped ] (kgdb) print/x eva [ shows you i386's CR2 contents - useful on vm_fault's ] (kgdb) frame frame.tf_ebp frame.tf_eip [ That it is! Now your stack is the stack of faulting function; look whatever you want to find the failure. e.g.:] (kgdb) info args [ ... ] (kgdb) info locals [ ... ] ... Good look! J"org Aah, the patch is built to fit into Terry's patchkit. Put it into /patch/inbound, and continue as you used to do. Maybe someone would include it ``officially'' sometimes. begin 644 patchjw003.tar.Z M'YV0<,+0&8-&S1T8,&:\`,"PH<.'$"-*G$BQHL6*(#+>J%$#!(",(&%X!)E1 MY$>2*$6"J#%#QHT9,VS`J$$C8XP8"&]\K'&QI\^?0(-&K#.'3A@Y&0'(>?.& MCM")=]"4*</FJ=6K6+-JW<KU:L"!!0\F?`$E")4A2+JJY0K2!HV:)T..)&D2 M9489,-YF9.ER1EX;+6W&<&OC(XRUB!,/+7HTZ=*F7:-.K:JXLN7+F"N7*$&D MR)0A()!0A0,BC1LS;^2T$9CFC1L0<,H@-9.&31D0J)%"$4BPS!S82\_("=-& M0=FS2'0D2)"D"10I3ZP4`7&&C!@00YY(F6XD"9/I2((X(<(DB9,C"H)4H8)$ MN_($2D2D/@/B2ATW<PB"X*'FC>PS7]QQ7WYH`%&''&F$@88+<X2!APMDE.&# M`IU])D424%"1Q!-.Z*#`%5*]1I1I]%5W'1UO@!"A&'70%P8(8Z1V&VVVL5`: M'2#<41L;((3!QAUAY/%;C&W`P488IO4HQAMUX!B&&PK<)T<989`1AABV@<#8 M&&N`,.49K;GA`@A4H)'&;V?BE@8>99`!@AAY:%D&'720J*517'Z!(FDH]JC` ME&',X=J56=KA8QVWB5%&;K<!2H:=+\8XI9JVN:!`F;?-44:,;KB)1AA<@E`& M'G24T>EO1Q`AQ`F_@0&&&<.U4<8))\#X1ANK=0I"GR_"\<8<<Z2!Y6UTW/%& M"T>=48>L;M"A@!VR!>N:#KC%>AL/;I1QQQ>P$E<&''3(X<-^V6X+QQ@^C%DF M43>R2MV<=;I!'Y7!RK;K&PJLV"((:\B6+8^2WD;&LG#\IB,=:/!KHJ5'F"J; MCUYNFD9L(+BVZW"D#5SD'-1.220<M=T6D!QT_/:&&?SZ2U6.:2`,0@MG[*#` M&&[V^7'(*J8AQP[46?=RER\8*L<+8PPW!QHO[#&'D*6VP4*L?;C@A!,*H+"& MB2F`4`=I,H"P10\]C)MDN&'`@4(*751]M759=RMKM=ZZ0(<97Y0A!FENER$W MW65,[#78XYH11AULQ$N?&?>-4:?%>:?MQ!-4%$$M%2F>,2<(J0IA:Y$ADV&C MCSR^L/0<0;?Q@@HN)-P&43@JJF4>;;!A6K\UI_@"44.;-@8;=418N@*;;1<% M"+N!Y1MNJ5%Z?)^N2^HQCE_I9QNT/.:VJYF_18\&\"5T]]T4(#BA;8^Z%J\? MC<=;CW":VAMG%EH@Q`#;472X(/_M<PR=_QCXR^&"&*9Y@8F(YAK:G.$%:9@! M#FP@ACF0H041@H,+QN`^Y,1O?B1S0=?Z)SHY\`]W_PO@`)L0AGZACWM%>((1 M7M8",F%/>2#XU&_<T)0W3>4UX4J<0-JD@,SX\(=`#*(0ATC$(AKQB`W1GD$0 MHI"1U4\&2*Q,6_02EY+,12Y5!(D,\-*1E;3D)3.X20RZ&`,9W.0P(#A,%)'( MNL9XY#%.X8IDJ++&.MKQCBK((P@XN+_^A=`-`K3."TAHPI"Y(#5I.$,"KM`F M$"CA22#`2R1AH`,:4#(O\<M!#F:@@!9X<H^XZ^`'\_?'0(IAD"5<5,@6V<A' MOD:29M0!#&R@`QET)`::Y&0>=\G+7JI``;N,'PLZPLM.?C(&+(C!#5CH205D M9`0)``(*1I`"0JK2-@FP@0MJ@@(AR&8-MLE#UFKP`AN\(`<Q<"8(%+`"$(R` MG>Z$YPB(]SXD>`8$30C"$9(`&KOX,R/?D0X30'(<^+''+)B#'`BJ`#Y[;D>> MS/2D1"=*48G^,Z(MS$A%-\K1%D!T"%60PG:<0`5Z6C"@16`"M?XI/[LL,2$0 M[:A,,^I/BH)DIC.5)T3QT@)7MF"3CO2/'.AC'_SHYZ(@"0(9(N2F%A#!"%(( M0A.*\(4I0*$(0TA"=X9@E@TYX0M$R$(0B,!/B"+UK&C-2)^&8`0FZ!-\?3(5 MH6[SHF(=:V3>*I4<S)K6OOHS-VVH&,I<E3=:;2Y79-!I.]7YG"<<H0?+,9$Z M,S<%*0QA"I#%TANXE+<)O@E0:_"5:>HWAL,^B0R>C1$<\D"BU,K(LUQ0YW+& M8"2B0+`,;?"L=?#@*,^:R@XZ<XUO#<4&W^(!#G!`4+-@"TQ?.O>7P2QC,I=9 M3(O*@`8L\$M$U5G9RT(V`21`07:<T)TC='<*60LO92V+7A"$=SMC+8\3/,/> MK)FF91-4)UO=:MX50+8%21@3@,/K`I!*@:Q2R-J`45#@D"(X!00\32)?E@0" M&_C!+W"4[+(%@MAF9#E.#8]TOF"%YYB'"BMTJA62\(4F/*$S+R/"$HH@A?DR MH3-"J,(18CS?*UBA"?#<[UO]FP"G0E6J5+4J5K7*SZYR"*QB)>L0U'GCL1+A MNRTHG&S:,(:RJ3,+;7UK#]3I@N,DQ[T,OG`2$AQA`Z*YP0=>,X0U;)HR]/". M>,ZSGO?,9Q\J42Q-I)_]^HR5*<(E)5>T8A8S0H,RJH0O8*Q!0KH6/S/"0"=I M)+0/VXB4-S(ECEN9(V4T3>I2"R68?/2@'P$(R`%RRH`(5"`#'7A;"8[AD`A2 M)"/=Y,I)3K*2E*1!UW"Y26.V,-6C]!^K3=GF1,9Z@0U\8`0GR$I>0Q*6,=!! M&;6-@TP6^[G.;:X*(IF#[-:DNI^40;EID(/M9L1'KJ'/P1*6.9YIBEA2@6%V MH)`%\QQA3"!(`LIH2`<;W0%!I;J7.A%V&R-,Z393.%FQCM)P)G6*-:ZQD0TV M@L]`_28(T++1$(@C!@21P7(VRF<:S3B#<B]T"D$`N`I>H$YXG@Z>(/AE.W-N M4K3<,Y_[[&=?43K0C!04"60*3TF/H%"&AH;&1<#YN''*T8O:5*-4YZC4L1/2 MD9;TZ"`@^DK]V5*4O)23.Y]ZUJ]>TXG>=.T5E?K6>>I3H"I!J$0=T%'1F@0W MM"Q!LM-#IO"TAKKI2E&,VKI?%X\21T'*5I-"G\S2SOC*OWNIC8Q1A.[5(S:P MX0UW<&>$:),MQ5M^\2<#P9&G6M6K9G6K3OYJ6,?*3Q:8_O1]G=(<"&>XTN`P MW[X"EK!JT[(XI3X,M\<]6E]E+7)IBUMP&!>VGG\N']2*2(B5.LT7^TS=\6[S M/"C*H]Z0N@EUWPV[Z]UM1##Z.:1.!.H<@??5#P(1X#6W:(`_N'TI;A#D0-TL ML$GGMDO&YG]O$8`LX6X@L!P\YSH,IR7>XGMOTA0+DA&RE0`Y1W,?E@!68A1? MP!@D`P(]("IL,@9?T(%A\(%&03*3MX`)<#H@8!"3U%-/\E,SD('PM!PP>`)U M,@=NP(.=!R1"`GG/0RV"(BMU(BN_X0),^#*1I`+YA`53,`5)H`4]@ERRXQLV M,G,Y^(+CQB(X<B8_B"/T$B=]DEQOX#K68U'WEC)RX`9U4X+0XED7Q87MM!Q; M4GBFXB8CR%!2,`54$`1#L`1.&(536(4R8X'=9P:=LBCA4P0^!F0;B(*&QX<J M(A`I"((XTDY.(`10L&/C5@<N4`<G&"R")S/[UTO]-T8PD4PLT6WHUD)C5`,R MX(HOH8`9H2ET\`5C<"!3TBS<TGPH`".`4BI?4"[!&($HX"A?\"5GHE<@@`)& M``5?L!U'X`15T`0I8'L;N!P)P(SG$HTI,(Z)"`)]`$_RE`9F,'JJ%U6LIV2O MUV0:\F2S)V4V-VXR2'<U"%1VN$[M='.4IXXY<AM`TBR<!SJ@IR6Q,0;JF`9= MMCBOD7J$U7QYTP*BU2SV<BZTLG5%D0=9@GVG92/K@R:_$2Q%8AL>DG;;UXY( M!D^ZN#5?<!0`1#9RD`?)*"LH8`9P8"/GD@+P9`=OD`9NH@(ZN87GTH)[@'-[ M-&Y8T)0#J25I<))Q4C14DG`O4BYP(RL\LQIYX(`OE"8O(@?T]RFAXAIL$"?] MF!%30@<'\AI4N4/'^'QY$XU%"1MCD`(M>([M-`)[*)`PN'I)YGI,QE7S*'M1 MQD\XJ(A+>3UI8A3#`@*K4Q0@L&&WL34LXS+6F`2`2&-?X`1(!CY)T@8MD$`+ ME#J)N9A+TP9+P@:_(3O]`@(G4`1!@`77=RLSLA2!%7Y"DF%E<`;EAX.F%IS" M.9S$69S&>9S(F9S*N9S,V9S.^9S0&9W2.9W469W6>9W8F9W:N9W<V9W>^9W@ '&9[B.9Y7`9S( ` end -- >>>>>>> J"org Wunsch <<<<<<< : joerg_wunsch@tcd-dresden.de If anything can go wrong... : [...!uunet]!mcsun!unido!textild!joerg_wunsch .o .o : alias: joerg@sax.de, joerg@ref.tfs.com, <_ ... IT WILL! : wutcd@hadrian.hrz.tu-chemnitz.de -- hellmuth michaelis HCS Hanseatischer Computerservice GmbH hamburg, europe hm@hcshh.hcs.de tel: +49/40/55903-170 fax: +49/40/5591486