<div dir="ltr">Hey guys,<div><br></div><div>LLDB uses source/Utility/UUID.cpp to store the build ID. This class only supports 16 or 20 byte IDs.</div><div><br></div><div>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) <a href="https://github.com/llvm-mirror/lldb/blob/4dc18b8ce3f95c2aa33edc4c821909c329e94be9/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp#L1279">https://github.com/llvm-mirror/lldb/blob/4dc18b8ce3f95c2aa33edc4c821909c329e94be9/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp#L1279</a> .</div><div><br></div><div>I discovered this issue because by default LLD will generate a 8 byte build ID, causing LLDB to ignore the <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">.note.gnu.build-id ELF section and compute a crc32 at runtime.</span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">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).</span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br>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).</span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ex.</span></div><div>Setting a UUID with length of 8, would pad with 8 trailing zeros to have an overall length of 16.</div><div>Setting a UUID with length of 17, would pad with 3 trailing zeros to have an overall length of 20.</div><div><br></div><div>Thanks,</div><div>Scott</div><div><br></div><div><br></div></div>