From owner-freebsd-hackers Mon Sep 9 19:17:40 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AAFEE37B400 for ; Mon, 9 Sep 2002 19:17:37 -0700 (PDT) Received: from wantadilla.lemis.com (wantadilla.lemis.com [192.109.197.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id E2A7A43E6A for ; Mon, 9 Sep 2002 19:17:35 -0700 (PDT) (envelope-from grog@lemis.com) Received: by wantadilla.lemis.com (Postfix, from userid 1004) id AFBFA81442; Tue, 10 Sep 2002 11:47:32 +0930 (CST) Date: Tue, 10 Sep 2002 11:47:32 +0930 From: Greg 'groggy' Lehey To: Stacy Millions Cc: hackers@FreeBSD.org Subject: Re: I climb the mountain seeking wisdom Message-ID: <20020910021732.GB20691@wantadilla.lemis.com> References: <3D78F291.8010005@millions.ca> <20020908064449.GG46846@wantadilla.lemis.com> <3D7D212E.6030601@millions.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3D7D212E.6030601@millions.ca> User-Agent: Mutt/1.4i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Monday, 9 September 2002 at 16:31:10 -0600, Stacy Millions wrote: > Greg 'groggy' Lehey wrote: >> On Friday, 6 September 2002 at 12:23:13 -0600, Stacy Millions wrote: > >>> Page fault while in kernel mode.... unfortunately, ddb hangs so I don't >>> get a core file. >> >> >> That's obviously the first thing you should address. > > I'm open to suggestions. How can I force a core if ddb freezes? I have > tried 'sysctl debug.debugger_on_panic=0', but that doesn't help, just > causes me to have to hit the reset button for different reasons; > like an infinite loop worth of > kernel trap 12 with interupts disabled There will always be situations where the debugger can't catch the problem in time. Then it's up to you to guess and put a breakpoint just before it freezes; this can be an interative process. The method requiring the least thought is to single step over function calls until the system freezes. Then you know which function it happened in. Reboot, set a breakpoint in that function, and repeat. >> Debugging hasn't changed much since 4.3BSD. > > True enough, but *what* I am debugging sure has changed. KLD for > example did not exist the last time I did kernel programming. Debugging klds is a little more difficult. You need to use gdb's add-symbol-file command to get the symbols. There are some functions which help, but the good one hasn't been committed yet. Take a look at http://people.freebsd.org/~gallatin/gdbmods. > On the subject of which, I have a question regarding KLD, in my driver, > the MOD_LOAD does nothing, > the identify() does a BUS_ADD_CHILD() to the parent (nexus) > and then probe() and attach() do thier stuff and life is good. > > Now I want to do a kldunload and have the driver dettach, > the MOD_UNLOAD is called, but the detach() is never called. What > do I need to do to get the detach() to be called? Is there an > opposite to BUS_ADD_CHILD()? I tried device_delete_child()... gave > me a panic and no core and devclass_delete_driver()... returned > an error (ENOENT, I think) Hmm, haven't had that particular problem, but my klds don't handle hardware. Have you looked at similar code in other drivers? Greg -- See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message