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

Scott Funkenhauser via lldb-dev lldb-dev at lists.llvm.org
Wed Jun 20 08:05:02 PDT 2018

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)

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).

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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20180620/5594cd1b/attachment.html>

More information about the lldb-dev mailing list