[Lldb-commits] [PATCH] D57037: BreakpadRecords: Address post-commit feedback

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 22 09:05:26 PST 2019

labath marked an inline comment as done.
labath added inline comments.

Comment at: source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp:87-97
   // The textual module id encoding should be between 33 and 40 bytes long,
   // depending on the size of the age field, which is of variable length.
   // The first three chunks of the id are encoded in big endian, so we need to
   // byte-swap those.
-  if (str.size() < 33 || str.size() > 40)
+  if (str.size() <= hex_digits<data_t::uuid_t>() ||
+      str.size() > hex_digits<data_t>())
     return UUID();
clayborg wrote:
> This is OK as long as the UUIDs for ELF don't fall into this category. I am able to match up UUIDs for ELF just fine for breakpad files for Android.
Normally on linux you should always have the INFO record, which will have the unmangled UUID, and which we will give preference to if it is available.

If for some reason we don't find an INFO record, then we will use the version from the MODULE record, which we will manually unmangle. But that should be the right thing to do as it matches what the breakpad generator does. (You can see this by looking at a file which has both of these records -- they will differ in that the first one will be mangled and will have an extra zero at the end).



More information about the lldb-commits mailing list