From owner-freebsd-virtualization@FreeBSD.ORG Thu Nov 20 17:57:17 2014 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E03704E4; Thu, 20 Nov 2014 17:57:17 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B8CEFF1B; Thu, 20 Nov 2014 17:57:17 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A7F61B999; Thu, 20 Nov 2014 12:57:16 -0500 (EST) From: John Baldwin To: freebsd-virtualization@freebsd.org Subject: Re: bhyve remote kgdb does not support kernel modules... Date: Thu, 20 Nov 2014 11:52:09 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.4-CBSD-20140415; KDE/4.5.5; amd64; ; ) References: <20141115093713.GY24601@funkthat.com> <54677DFC.70708@freebsd.org> <20141115181523.GA24601@funkthat.com> In-Reply-To: <20141115181523.GA24601@funkthat.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201411201152.09805.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 20 Nov 2014 12:57:16 -0500 (EST) X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Nov 2014 17:57:18 -0000 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=) > > >> at ../../../kern/subr_kdb.c:444 > > >>#1 0xffffffff8094aa79 in vpanic (fmt=, > > >> ap=) at ../../../kern/kern_shutdown.c:739 > > >>#2 0xffffffff8094a8c9 in kassert_panic (fmt=) > > >> 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= DESTDIR=/someplace % kgdb kernel.debug (kgdb) set solib-absolute-prefix /someplace/ (kgdb) target remote (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