Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Feb 2017 10:05:26 -0200
From:      "Dr. Rolf Jansen" <rj@obsigna.com>
To:        freebsd-arm@freebsd.org
Subject:   Re: lldb on BeagleBone Black
Message-ID:  <6C37E5FD-E574-40BB-8A61-A3857609EDE1@obsigna.com>
In-Reply-To: <82b64b54-d9cc-8cb6-6b6d-8817f1fbb4cc@freebsd.org>
References:  <3DA2368D-AE7B-4D69-A634-2861D2EFA9AE@obsigna.com> <8FDE5FCC-9BA8-4601-A32E-04FBAB5FFBEA@obsigna.com> <0ee18ae6-7588-97c9-bc04-3ad83b0c33b3@freebsd.org> <34EB351A-3BA9-4D38-AF1C-96B065564C42@obsigna.com> <06672183-F0A6-47C9-AC53-091515CBEBC3@obsigna.com> <CAPyFy2A=3g7Nr3XcibCO6Yzbh7UYf=_mdSaoqkbaNxqeFn6zHg@mail.gmail.com> <82b64b54-d9cc-8cb6-6b6d-8817f1fbb4cc@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 24.01.2017 um 01:43 schrieb Michal Meloun:

> On 23.01.2017 18:36, Ed Maste wrote:
>> On 16 January 2017 at 09:20, Dr. Rolf Jansen <rj@obsigna.com> wrote:
>>>=20
>>> Building and installation of devel/llvm37 from the ports went well =
without problems, however, lldb37 is only of minor usefulness since =
stepping-into/over lines of code does not work. I can set breakpoint, =
and execution stops fine on breakpoints, however, when I hit 'n' or 's', =
the program simply continues execution in a normal fashion until end.
>>=20
>> Yes. Single-stepping on ARM requires special support in the debugger,
>> which does not yet exist in LLDB for FreeBSD. The good news is that
>> there is a patch in review to add this support. I'm hoping to review,
>> test and commit it this week to the upstream LLDB repository, and =
I'll
>> see about merging it into the LLDB in the FreeBSD base system from
>> there.
>>=20
>> -Ed
>=20
> There are more problems with LLDB.
>=20
> 1) Full LLVM suite, newer that 37, cannot be linked. The resultant =
size
> of shared library is bigger that 32MB, and our very old linker doesn't
> implements big jump/call stubs.
> For now, cmake .. -DLLVM_TARGETS_TO_BUILD=3D"ARM" works but I think =
that
> this is also very close to 32MB limit.
>=20
>=20
> 2) LLDB uses UDF instruction as breakpoint, but FreeBSD kernel expects
> BKPT (see g_arm_breakpoint_opcode in ProcessFreeBSD.cpp). That's why =
you
> get invalid opcode for single step (and/or breakpoint). My quick =
attempt
> to replace this with right BKPT opcode also failed, and I think that
> this code also have problem with endianes. Unfortunately, I have no =
free
> time for this

Finally, a build from SVN-trunk of LLDB went through on my BeagleBone =
Black, and with that one single stepping works. I utilized ccmake in =
order to configure -Os for the Release build.

Best regards

Rolf
=20



Rolf=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6C37E5FD-E574-40BB-8A61-A3857609EDE1>