Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Aug 2018 10:18:50 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Farhan Khan <khanzf@gmail.com>, freebsd-hackers@freebsd.org
Subject:   Re: addr2line with FreeBSD kernel failing
Message-ID:  <cb94f5c8-104b-86d1-0b86-7aa495a09bd7@FreeBSD.org>
In-Reply-To: <CAFd4kYCAwKKNNsZJ49aa4YUT3fQ-PqS1Dymc27LO_hXXqbedfA@mail.gmail.com>
References:  <CAFd4kYCAwKKNNsZJ49aa4YUT3fQ-PqS1Dymc27LO_hXXqbedfA@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

On 06/08/2018 04:31, Farhan Khan wrote:
> Hi all,
> 
> Is there a way to go from a memory address to a kernel symbol?
> 
> I am working with a subsystem that uses a lot of function pointers,
> and I am not certain which particular function is being called. I have
> dtrace(1) printing out the memory address of the function, like this:
> 
> printf("Runs vap->iv_newstate: 0x%p", vap->iv_newstate);
> 
> The resulting memory address will be 0xffffffff834fa6d0. I was told I
> can use addr2line(1), but it seems to fail, as follows:
> 
> # addr2line -e /usr/obj/usr/src/amd64.amd64/sys/GENERIC/kernel.full
> ffffffff834fa6d0
> ??:0

Try 0xffffffff834fa6d0

> Am I doing something wrong? Also, if I can do this directly in
> dtrace(1), that would be much much better. This is definitely the
> installed kernel, so there is no kernel mismatch. I have also tried
> using kernel.debug and kernel, same result.


-- 
Andriy Gapon


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cb94f5c8-104b-86d1-0b86-7aa495a09bd7>