Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Aug 2010 18:12:50 +0200
From:      Alexander Fiveg <pebu3op@googlemail.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-hackers@freebsd.org, doc@freebsd.org
Subject:   Re: Debugging Loadable Modules Using GDB
Message-ID:  <20100830161250.GA3135@debmaster-laptop>
In-Reply-To: <201008300816.11278.jhb@freebsd.org>
References:  <20100827201140.GA2812@debmaster-laptop> <201008300816.11278.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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 ?

Alex

> 
>  -- 
> John Baldwin
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"

-- 
Alexander Fiveg <pebu3op@googlemail.com>
Key fingerprint = ECBB 747C 919D 78F5 E8EC  7DBC 8B46 376D 107B CCAA



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100830161250.GA3135>