[lldb-dev] LLDB does not support the default 8 byte build ID generated by LLD

Stephane Sezer via lldb-dev lldb-dev at lists.llvm.org
Wed Jun 20 10:11:39 PDT 2018


I had that issue a while back and uploaded a few diffs that fix the
problem, but never landed them. I don't remember exactly what needed to
change, but you can view them here:
https://reviews.llvm.org/D40538
https://reviews.llvm.org/D40537

Let me know if you want to help get them committed to the tree.

On Wed, Jun 20, 2018 at 8:05 AM Scott Funkenhauser via lldb-dev <
lldb-dev at lists.llvm.org> wrote:

> Hey guys,
>
> LLDB uses source/Utility/UUID.cpp to store the build ID. This class only
> supports 16 or 20 byte IDs.
>
> When parsing the .note.gnu.build-id ELF section, any build ID between 4
> and 20 bytes will be parsed and saved (which will silently fail if the size
> isn't 16 or 20 bytes)
> https://github.com/llvm-mirror/lldb/blob/4dc18b8ce3f95c2aa33edc4c821909c329e94be9/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp#L1279
> .
>
> I discovered this issue because by default LLD will generate a 8 byte
> build ID, causing LLDB to ignore the .note.gnu.build-id ELF section and
> compute a crc32 at runtime.
>
> Is this a know issue that somebody is already working on? (After a quick
> search I couldn't find any open bugs with a similar description).
>
> Does anybody have any objection to modifying UUID::SetBytes to accept any
> byte array with a size between 4 - 20 bytes, and pad with zeros to the next
> largest supported size (either 16 or 20 bytes).
>
> ex.
> Setting a UUID with length of 8, would pad with 8 trailing zeros to have
> an overall length of 16.
> Setting a UUID with length of 17, would pad with 3 trailing zeros to have
> an overall length of 20.
>
> Thanks,
> Scott
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
-- 
-- 
Stephane Sezer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20180620/ad8bee18/attachment.html>


More information about the lldb-dev mailing list