On Saturday, November 15, 2014 1:15:23 pm John-Mark Gurney wrote: > Julian Elischer wrote this message on Sun, Nov 16, 2014 at 00:23 +0800: > > On 11/15/14, 5:43 PM, John-Mark Gurney wrote: > > >John-Mark Gurney wrote this message on Sat, Nov 15, 2014 at 01:37 -0800: > > >>So, I got remote kgdb working w/ bhyve, but kernel modules aren't > > >>loaded... > > >> > > >>I'm getting: > > >>(kgdb) bt > > >>#0 kdb_enter (why=0xffffffff8102ee88 "panic", msg=<value optimized out>) > > >> at ../../../kern/subr_kdb.c:444 > > >>#1 0xffffffff8094aa79 in vpanic (fmt=<value optimized out>, > > >> ap=<value optimized out>) at ../../../kern/kern_shutdown.c:739 > > >>#2 0xffffffff8094a8c9 in kassert_panic (fmt=<value optimized out>) > > >> at ../../../kern/kern_shutdown.c:634 > > >>#3 0xffffffff8093583c in __mtx_lock_flags (c=0xfffff80002919720, opts=0, > > >> file=0xffffffff81c3f0fa > > >> "/usr/home/jmg/freebsd.p4/opencrypto/sys/modules/aesni/../../crypto/aesni/aesni.c", line=442) at ../../../kern/kern_mutex.c:217 > > >>#4 0xffffffff81c3e3a7 in ?? () > > >>#5 0xfffff80002a474a0 in ?? () > > >>#6 0xfffff80002919720 in ?? () > > >> > > >>Where those should be in the aesni.ko module... If I run kgdb on a > > >>local machine, it properly finds the kernel modules... Any hits on > > >>how to fix this? > > > > works for me.. > > the modules I'm debugging are not compiled in. > > you have to have the modules in the standard place ONE THE GDB HOST. > > I make a chroot with an image of the machine being debugged, PLUS the > > sources. > > and then run kgdb from inside that chroot. > > Ahh, that's right, kgdb isn't smart enough to know when you've pointed > it to the kernel build dir whereh the modules are... :(
gdb isn't smart enough if you run with all the shared libraries in the current directory either. Note you can always use 'add-kld /path/to/foo.ko' when it can't find a useful module path. Also, you don't have to use a chroot. You can use 'solib-absolute-prefix' (it's documented for shared libraries and kgdb treats modules as shared libraries) and set it to the DESTDIR you use when you install the kernel. That is: % cd /path/to/kernel/amd64/compile/FOO % make % make install BINOWN=<you> DESTDIR=/someplace % kgdb kernel.debug (kgdb) set solib-absolute-prefix /someplace/ (kgdb) target remote <foo> (I have a local patch to vmrun.sh on my laptop that always ties a nmdm interface on COM2 if nmdm is loaded so I can now attach kgdb to any VM without having to plan ahead). -- John Baldwin _______________________________________________ firstname.lastname@example.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"