[lldb-dev] LLDB + UE4 on Android

Pavel Labath via lldb-dev lldb-dev at lists.llvm.org
Fri Mar 11 02:26:07 PST 2016


So, from the error message it looks like lldb is getting confused by
the debug information inside the executable. I don't have any special
hints for debugging that, I think the usual process of attaching the
debugger, examining the backtrace, and seeing what data is triggering
the assert would work best.

Alternatively, if you can create a list of steps to reproduce this
bug, we may be able to look at it for you. We're interested in making
this use case work, so we'll try to fix it soon.

pl

On 10 March 2016 at 18:00, Mikhail Filimonov <mfilimonov at nvidia.com> wrote:
> Well, after I've added .gnu_debuglink section to stripped libUE4.so LLDB managed to resolve the symbols.
> But sometimes it asserts with the following message:
> ---------------------------
> Microsoft Visual C++ Runtime Library
> ---------------------------
> Assertion failed!
> Program: ...ORPORATION\NSIGHT TEGRA\3.3.16035.4243\liblldb.dll
> File: C:\wrk\llvm_git\tools\clang\lib\AST\Recor...tBuilder.cpp
> Line: 82
> Expression: FieldOffsets.count(FD) && "Field does not have an external offset"
> For information on how your program can cause an assertion
> failure, see the Visual C++ documentation on asserts
> (Press Retry to debug the application - JIT must be enabled)
> ---------------------------
> Abort   Retry   Ignore
> ---------------------------
> Any suggestions how to debug that?
>
> Regards,
> Mikhail
>
> -----Original Message-----
> From: Mikhail Filimonov
> Sent: Thursday, March 10, 2016 12:33 AM
> To: lldb-dev at lists.llvm.org
> Cc: Tamas Berghammer <tberghammer at google.com>; Pavel Labath <labath at google.com>
> Subject: LLDB + UE4 on Android
>
> Hello, fellow developers!
>
> I’m trying to debug Unreal Engine 4 sample on Android with LLDB 3.8 build from source - Win32 x86 liblldb.dll and Android ARM lldb-server : it can’t match the stripped module libUE4.so running on the device with a full version which is available on a host.
> Unreal Build Tool don’t add the .note.gnu.build-id or .gnu_debuglink sections to ELF files – and it looks that only if the stripped ELF .so running on a target does have one of these than it could be matched with a full ELF module located on a host - is that true?
>
> My reasoning is based on examination of
> https://github.com/llvm-mirror/lldb/blob/release_38/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp#L4328
> and
> https://github.com/llvm-mirror/lldb/blob/release_38/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp#L790
>
> If so, I need to modify UBT to add the .build-id or .gnu_debuglink to a stripped libUE4.so
>
> -----------------------------------------------------------------------------------
> This email message is for the sole use of the intended recipient(s) and may contain
> confidential information.  Any unauthorized review, use, disclosure or distribution
> is prohibited.  If you are not the intended recipient, please contact the sender by
> reply email and destroy all copies of the original message.
> -----------------------------------------------------------------------------------


More information about the lldb-dev mailing list