[Lldb-commits] [PATCH] D49750: Add support for ARM and ARM64 breakpad generated minidump files.

Mark Mentovai via lldb-commits lldb-commits at lists.llvm.org
Tue Jul 31 09:29:29 PDT 2018


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.

Breakpad MD_CONTEXT_ARM is 0x40000000 and MD_CONTEXT_ARM64 is 0x80000000.
Microsoft CONTEXT_ARM is 0x00200000 and CONTEXT_ARM64 is 0x00400000.

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

On Tue, Jul 31, 2018 at 11:59 AM Greg Clayton <clayborg at gmail.com> wrote:

>
>
> On Jul 30, 2018, at 12:17 PM, Leonard Mosescu <mosescu at google.com> wrote:
>
> FYI, Breakpad & Crashpad will start generating the Microsoft flavor of ARM
> minidumps soon.
>
>
> 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?
>
> Greg
>
>
> On Wed, Jul 25, 2018 at 9:44 AM, Leonard Mosescu via Phabricator <
> reviews at reviews.llvm.org> wrote:
>
>> lemo added inline comments.
>>
>>
>> ================
>> Comment at:
>> source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp:51
>> +  reg_fpscr,
>> +  reg_d0,   reg_d1,  reg_d2,  reg_d3,  reg_d4,  reg_d5,  reg_d6,  reg_d7,
>> +  reg_d8,   reg_d9, reg_d10, reg_d11, reg_d12, reg_d13, reg_d14, reg_d15,
>> ----------------
>> Pavel's comment reminded me: what about the S registers (32bit fp) and Q
>> registers (128bit Neon)?
>>
>>
>> https://reviews.llvm.org/D49750
>>
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180731/e73aa492/attachment-0001.html>


More information about the lldb-commits mailing list