Date: Sat, 3 May 2008 10:50:31 -0400 From: "Alexander Sack" <pisymbol@gmail.com> To: "David Christensen" <davidch@broadcom.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: Not All Symbols Present in a Loadable Kernel Module Message-ID: <3c0b01820805030750k2fc389b0y500914c36069e6cf@mail.gmail.com> In-Reply-To: <5D267A3F22FD854F8F48B3D2B523819324F09D6896@IRVEXCHCCR01.corp.ad.broadcom.com> References: <5D267A3F22FD854F8F48B3D2B523819324F09D65FA@IRVEXCHCCR01.corp.ad.broadcom.com> <3c0b01820805021315i482fe0acg3e9238a2f412770e@mail.gmail.com> <5D267A3F22FD854F8F48B3D2B523819324F09D6896@IRVEXCHCCR01.corp.ad.broadcom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, May 2, 2008 at 8:06 PM, David Christensen <davidch@broadcom.com> wrote: > > > I'm trying to build the "bce" driver as a kernel module under > > RELENG_7 but I'm > > > finding that not all of the functions in the driver are exported as > > symbols. This > > > makes it difficult to "call" a function from ddb because I get the > > error "Symbol > > > not found". I'm building and loading the driver from > > /usr/src/sys/modules/bce. > > > What am I doing wrong? How can I get all functions in the driver > > exported as > > > symbols usable by the debugger? > > > > Are you building a debug kernel or regular kernel? Have you turned on > > debug symbols? > > > > makeoptions DEBUG=-g # Build kernel with gdb(1) > > debug symbols > > > > Just a quick thought...I'm assuming these symbols are listed under > > your final kernel image (nm it etc.). > > Yes, I'm building a debug kernel. I have the line listed above as well > as the following: > > options KDB > options DDB > options GDB > options INVARIANTS > options INVARIANT_SUPPORT > options WITNESS > options WITNESS_SKIPSPIN Dave: What symbols can you not access exactly and how are you installing/setting up debugging? I just built a RELENG_7 with DDB and I'm able to access bce symbols without a problem. I can examine them and call them. I'm not using options GDB however, only KDB/DDB. I would: - Make sure you have the right if_bce.ko/if_bce.ko.symbols files generated/installed which contains the debug sections of your ko (from the objcopy calls during the build - the binary is stripped with a section pointer to the if_bce.ko.symbols file for debugging information I believe) - If you are using GDB, make sure its pointed to the right source base so it can retrieve symbol information correctly - If you are using GDB, stub it out and just use DDB to verify that your build is sane (it works for me!) - If all else fails, you can always build bce statically (just to move forward etc.) -aps
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c0b01820805030750k2fc389b0y500914c36069e6cf>