<div dir="ltr">This can be done unambiguously because Breakpad used its own values for the magic numbers identifying its own context structure. You’ll find this in the ContextFlags field.<div><br></div><div>Breakpad MD_CONTEXT_ARM is 0x40000000 and MD_CONTEXT_ARM64 is 0x80000000. Microsoft CONTEXT_ARM is 0x00200000 and CONTEXT_ARM64 is 0x00400000.</div><div><br></div><div>There’s also a magic number in the system info stream. Breakpad does use the same value as Microsoft for 32-bit ARM (PROCESSOR_ARCHITECTURE_ARM = 5). The unambiguity here shouldn’t be a problem because context structures always have their own flag field that you can use to distinguish. Breakpad does use a distinct value for 64-bit: Breakpad MD_CPU_ARCHITECTURE_ARM64 is 0x8003 (Crashpad calls this kMinidumpCPUArchitectureARM64Breakpad), and Microsoft PROCESSOR_ARCHITECTURE_ARM64 is 12 (Crashpad’s kMinidumpCPUArchitectureARM64).</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 31, 2018 at 11:59 AM Greg Clayton <<a href="mailto:clayborg@gmail.com">clayborg@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><br><div><br><blockquote type="cite"><div>On Jul 30, 2018, at 12:17 PM, Leonard Mosescu <<a href="mailto:mosescu@google.com" target="_blank">mosescu@google.com</a>> wrote:</div><br class="m_8940440176638136047Apple-interchange-newline"><div><div dir="ltr">FYI, Breakpad & Crashpad will start generating the Microsoft flavor of ARM minidumps soon.</div></div></blockquote><div><br></div>How do we tell the difference? I am guessing the ProcessorArchitecture will both be set to "PROCESSOR_ARCHITECTURE_ARM". Are plug-ins expected to look at the byte size of the thread context then?</div><div><br></div><div>Greg</div><div><br><blockquote type="cite"><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 25, 2018 at 9:44 AM, Leonard Mosescu via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">lemo added inline comments.<br>
<br>
<br>
================<br>
Comment at: source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp:51<br>
+  reg_fpscr,<br>
+  reg_d0,   reg_d1,  reg_d2,  reg_d3,  reg_d4,  reg_d5,  reg_d6,  reg_d7,<br>
+  reg_d8,   reg_d9, reg_d10, reg_d11, reg_d12, reg_d13, reg_d14, reg_d15,<br>
----------------<br>
Pavel's comment reminded me: what about the S registers (32bit fp) and Q registers (128bit Neon)?<br>
<br>
<br>
<a href="https://reviews.llvm.org/D49750" rel="noreferrer" target="_blank">https://reviews.llvm.org/D49750</a><br>
<br>
<br>
<br>
</blockquote></div><br></div>
</div></blockquote></div><br></div></blockquote></div>