From owner-freebsd-hackers@FreeBSD.ORG Mon Aug 30 20:34:09 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 C20FE10656AC; Mon, 30 Aug 2010 20:34:09 +0000 (UTC) (envelope-from pebu3op@googlemail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id E5D8C8FC0A; Mon, 30 Aug 2010 20:34:08 +0000 (UTC) Received: by bwz20 with SMTP id 20so4767665bwz.13 for ; Mon, 30 Aug 2010 13:34:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:reply-to:mail-followup-to:references:mime-version :content-type:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=fNJoURYUUg9EbMwZk3AFJ5Dso4ALeUlBSB5YFgXhHOk=; b=d20+F8ZJH9umbtepvhgbm3SGOwLalLXBIktMY1gSHMuAoZD5jaMLaW1+HNSNYrm9Y0 OkT0x6Yek1gdygc6FtZRydbR1mVkGROvlFAlR4GYJlPPibmDUDsoy0Os5jK4E+Y9L+HK FMc4IyM0VHAFBwV9LAIZg5UR99Y6cBBswz+1U= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=date:from:to:cc:subject:message-id:reply-to:mail-followup-to :references:mime-version:content-type:content-disposition :content-transfer-encoding:in-reply-to:user-agent; b=oAOZhlU0fCiY4NyLnQ5SSAN1snPndKXTWopjGPc5nthJa4ZpbxHAnMntJoNhWxR5Gw zN3hQDhck3Leljyty0eG4J0CIU42lLOGTEJKUwfxO3amZf15ikhaSP6W0o2ws7A/ACQk 1t+tmuIbNlrkGMveZHKMzjCrSxVPbdcTWRLiw= Received: by 10.204.78.143 with SMTP id l15mr3773532bkk.22.1283200447526; Mon, 30 Aug 2010 13:34:07 -0700 (PDT) Received: from debmaster-laptop ([130.149.220.190]) by mx.google.com with ESMTPS id d27sm5572626bku.22.2010.08.30.13.34.06 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 30 Aug 2010 13:34:06 -0700 (PDT) Date: Mon, 30 Aug 2010 22:34:04 +0200 From: Alexander Fiveg To: John Baldwin Message-ID: <20100830203404.GC3135@debmaster-laptop> Mail-Followup-To: John Baldwin , freebsd-hackers@freebsd.org, doc@freebsd.org References: <20100827201140.GA2812@debmaster-laptop> <201008300816.11278.jhb@freebsd.org> <20100830161250.GA3135@debmaster-laptop> <201008301310.38148.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201008301310.38148.jhb@freebsd.org> User-Agent: Mutt/1.5.20 (2009-06-14) 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 Reply-To: Alexander Fiveg 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 20:34:09 -0000 On Mon, Aug 30, 2010 at 01:10:37PM -0400, John Baldwin wrote: > 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 Using > > > > GDB": > > > > "... > > > > (kgdb) add-symbol-file /sys/modules/linux/linux.ko 0xc0ae22d0 > > > > ... > > > > " > > > > Actually I couldn't debug my modules using .ko-file. Moreover, I've find out > > > that .ko files do not contain sections with debugging info. With .kld-file > > > debugging works out. Do I something incorrectly or the info in the Developers > > > Book is outdated? > > > > > > With newer versions of kgdb you shouldn't need to manually invoke 'add-symbol- > > > file'. Kernel modules are treated as shared libraries and should > > > automatically be loaded. Try using 'info sharedlibrary' to see the list of > > > 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 > > debug a module: > > > > (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. > > > > (kgdb) add-symbol-file /home/alexandre/p4/ringmap/current/sys/modules/ringmap/if_ringmap.kld 0xc4dafc70 > > add symbol table from file "/home/alexandre/p4/ringmap/current/sys/modules/ringmap/if_ringmap.kld" > > at > > .text_addr = 0xc4dafc70 > > (y or n) y > > Reading symbols from /home/alexandre/p4/ringmap/current/sys/modules/ringmap/if_ringmap.kld...done. > > > > (kgdb) f 9 > > #9 0xc4dc558b in rm_8254_delayed_interrupt_per_packet () > > at /home/alexandre/p4/ringmap/current/sys/modules/ringmap/../../dev/e1000/ringmap_8254.c:142 > > 142 co->ring->slot[slot_num].ts = co->ring->last_ts; > > > > (kgdb) info locals > > co = (struct capt_object *) 0xc4d68380 > > adapter = (struct adapter *) 0xc4e77000 > > __func__ = "E\000\000�\034@\000\000\211\203�E\000\000\017\206B\022\000\000\2039\000\213A\004\017\205�\f\000\000\001��1�" > > > > > > 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=-g' when you build and install the kld. That should build > with debug symbols enabled and install the ko.symbols file which kgdb will > find and use. Thanks a lot!. That is what I want to know. But I think this option is not mentioned anywhere. I could not find it in "man make make.conf" and also no mention about it in FreeBSD Developers' Handbook. Alex > > -- > John Baldwin -- Alexander Fiveg Key fingerprint = ECBB 747C 919D 78F5 E8EC 7DBC 8B46 376D 107B CCAA