markmentovai added a comment.

This has got to be padding.

Breakpad’s structure definitions don’t nail down alignment as they probably 
should. A 32-bit system writing an MDRawMemoryList will write what’s intended, 
but a 64-bit one will need to insert four bytes of padding after 
number_of_memory_ranges to make sure that the array elements that follow are 
aligned.

Oops.

Microsoft’s own structure definitions don’t have this problem, and neither do 
Crashpad’s (example 
<https://chromium.googlesource.com/crashpad/crashpad/+/20e5aba1aff797bae2e01b08d4099006ab068b77/compat/non_win/dbghelp.h#56>).

I think it’d be preferable to fix Breakpad to not write bogus minidumps. It’s 
absolutely wrong, and other code will have interoperability problems too.

Greg, if we fix Breakpad, will you still need this for old dumps, or are you OK 
wiping the slate clean?


https://reviews.llvm.org/D49579



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to