Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!unmvax!turing.cs.unm.edu!mike From: mike@turing.cs.unm.edu (Michael I. Bushnell) Newsgroups: comp.unix.wizards Subject: Re: 4.3BSD crash dump help needed Message-ID: <2247@unmvax.unm.edu> Date: 27 Jan 89 23:44:16 GMT References: <5483@bsu-cs.UUCP> Sender: news@unmvax.unm.edu Reply-To: mike@turing.cs.unm.edu (Michael I. Bushnell) Distribution: usa Organization: University of No Money, Albuquerque, New Mexico Lines: 55 In article <5483@bsu-cs.UUCP> dhesi@bsu-cs.UUCP (Rahul Dhesi) writes: >I'm having trouble analyzing a 4.3BSD crash dump. Using adb on the >dump thus: > > adb -k vmunix.1 vmcore.1 << \EOF > $c > EOF > >give this output: > > sbr f868 slr 3070 > p0br e00 p0lr 160 p1br 1600 p1lr ffde > panic: Segmentation fault > _boot() from 8002694b > _boot(0,0) from _panic+3a > _panic(8003ef90) from _trap+ac > _trap() from _Xtransflt+1d > _Xtransflt(800691d8,1) from 8000b5e7 > _newproc(1) from _fork1+b3 > _fork1(1) from _vfork+b > _vfork() from 80027265 > _syscall() from _Xsyscall+c > _Xsyscall(23c80,7fffe340,17948,0,7fffdd34,7fffdd30) from 3a03 > _Syssize(17934,23c80,7fffe340,17948) from 38ac > _Syssize(17934,27a40) from 46f3 > _Syssize(17934,62) from 1026 > ?(4,7fffeb3c,7fffeb50) from 3d > ?() > >I have not found the Xtransflt symbol anywhere in the source or in any >of the C libraries. What am I overlooking? The crash dumps always >give a similar stack trace. If only I could figure out what Xtransflt >is I might have a clue. Xtransflt is in locore.s. Look for the line "SCBVEC(transflt)". The macro SCBVEC defines a vectore to be called from the system control block, with your name prepended by an X. So that interrupt vector is called Xtransflt. This was an address translation fault, which was interpreted by the trap routine as a segmentation fault. Since the fault happened in kernel mode, the kernel paniced. The actual segmentation fault occurred in newproc (the context above the call to Xtransflt.) The console messages (unfortunately not logged) contained that actual address within newproc where the fault occurred, and what the bad address was. The adb kernel scripts probably contain something that will format the structure pushed on the stack at fault time and can get you that information. Michael I. Bushnell \ This above all; to thine own self be true GIG! \ And it must follow, as the night the day, mike@turing.cs..unm.edu /\ Thou canst not be false to any man. Hmmmm.............. / \ Farewell: my blessing season this in thee!