From owner-freebsd-hackers@FreeBSD.ORG Mon Aug 30 17:14:25 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 085C41065675; Mon, 30 Aug 2010 17:14:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id CE0FB8FC13; Mon, 30 Aug 2010 17:14:24 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 68CB346B0C; Mon, 30 Aug 2010 13:14:24 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A40278A03C; Mon, 30 Aug 2010 13:14:23 -0400 (EDT) From: John Baldwin To: Alexander Fiveg Date: Mon, 30 Aug 2010 13:10:37 -0400 User-Agent: KMail/1.13.5 (FreeBSD/7.3-CBSD-20100819; KDE/4.4.5; amd64; ; ) References: <20100827201140.GA2812@debmaster-laptop> <201008300816.11278.jhb@freebsd.org> <20100830161250.GA3135@debmaster-laptop> In-Reply-To: <20100830161250.GA3135@debmaster-laptop> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201008301310.38148.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Mon, 30 Aug 2010 13:14:23 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: freebsd-hackers@freebsd.org, doc@freebsd.org Subject: Re: Debugging Loadable Modules Using GDB X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Aug 2010 17:14:25 -0000 On Monday, August 30, 2010 12:12:50 pm Alexander Fiveg wrote: > On Mon, Aug 30, 2010 at 08:16:11AM -0400, John Baldwin wrote: > > On Friday, August 27, 2010 4:11:41 pm Alexander Fiveg wrote: > > > Hi, > > > from "FreeBSD Developers' Handbook, 10.7 Debugging Loadable Modules U= sing > > > GDB": > > > "... > > > (kgdb) add-symbol-file /sys/modules/linux/linux.ko 0xc0ae22d0 > > > ... > > > " > > > Actually I couldn't debug my modules using .ko-file. Moreover, I've f= ind out=20 > > that .ko files do not contain sections with debugging info. With .kld-f= ile=20 > > debugging works out. Do I something incorrectly or the info in the Deve= lopers=20 > > Book is outdated? > >=20 > > With newer versions of kgdb you shouldn't need to manually invoke 'add-= symbol- > > file'. Kernel modules are treated as shared libraries and should=20 > > automatically be loaded. Try using 'info sharedlibrary' to see the lis= t of=20 > > kernel modules and if symbols for them are loaded already. > Yes, the .ko files are loaded automatically. The problem is that they do > not contain debugging info. I have always to load the .kld file in order = to=20 > debug a module: >=20 > (kgdb) f 9 > #9 0xc4dc558b in rm_8254_delayed_interrupt_per_packet () from > /boot/kernel/if_ringmap.ko > (kgdb) info locals > No symbol table info available. >=20 > (kgdb) add-symbol-file /home/alexandre/p4/ringmap/current/sys/modules/rin= gmap/if_ringmap.kld 0xc4dafc70 > add symbol table from file "/home/alexandre/p4/ringmap/current/sys/module= s/ringmap/if_ringmap.kld" > at > .text_addr =3D 0xc4dafc70 > (y or n) y > Reading symbols from /home/alexandre/p4/ringmap/current/sys/modules/ringm= ap/if_ringmap.kld...done. >=20 > (kgdb) f 9=20 > #9 0xc4dc558b in rm_8254_delayed_interrupt_per_packet () > at /home/alexandre/p4/ringmap/current/sys/modules/ringmap/../../dev/e= 1000/ringmap_8254.c:142 > 142 co->ring->slot[slot_num].ts =3D co->ring->last_ts; >=20 > (kgdb) info locals > co =3D (struct capt_object *) 0xc4d68380 > adapter =3D (struct adapter *) 0xc4e77000 > __func__ =3D "E\000\000=EF=BF=BD\034@\000\000\211\203=EF=BF=BDE\000\000\0= 17\206B\022\000\000\2039\000\213A\004\017\205=EF=BF=BD\f\000\000\001=EF=BF= =BD=EF=BF=BD1=EF=BF=BD" >=20 >=20 > Is there any way to get the all symbols and needed debug info without > loading the .kld file ? How are you compiling the kld? If you are building it by hand, use 'make DEBUG_FLAGS=3D-g' when you build and install the kld. That should bu= ild with debug symbols enabled and install the ko.symbols file which kgdb will find and use. =2D-=20 John Baldwin