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�\...@\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. -- John Baldwin _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"