Date: Tue, 24 Jan 2017 04:43:37 +0100 From: Michal Meloun <melounmichal@gmail.com> To: freebsd-arm@freebsd.org Subject: Re: lldb on BeagleBone Black Message-ID: <82b64b54-d9cc-8cb6-6b6d-8817f1fbb4cc@freebsd.org> In-Reply-To: <CAPyFy2A=3g7Nr3XcibCO6Yzbh7UYf=_mdSaoqkbaNxqeFn6zHg@mail.gmail.com> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
On 23.01.2017 18:36, Ed Maste wrote: > On 16 January 2017 at 09:20, Dr. Rolf Jansen <rj@obsigna.com> wrote: >> >> 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. > > 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. > > -Ed There are more problems with LLDB. 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="ARM" works but I think that this is also very close to 32MB limit. 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 Michal
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?82b64b54-d9cc-8cb6-6b6d-8817f1fbb4cc>