Skip site navigation (1)Skip section navigation (2)
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>