DescriptionThe Google-breakpad processor rejects (ignores) context records that lack CPU type information in their context_flags fields. Such context records can be valid (e.g. contexts captured by ::RtlCaptureContext). The proposed fix is to load the CPU type information from the system info stream (which all minidumps should have) when the CPU type information is missing from the context record. This will allow processing of context records produced by ::RtlCaptureContext. Two unittest were added: - A test that covers the scenario where CPU flags are missing from context_flags but the CPU type can be loaded from the system info stream: Dump.OneExceptionX86NoCPUFlag. - A test that covers the scenario where CPU flags are missing from context_flags and there is no system info stream in the dump: Dump.OneExceptionX86NoCPUFlagNoSystemInfo. A few places in the code where the lack of CPU type information in the context_flags was considered to be invalid had to be updated (including a unittest). While at it, I also enabled warning -Wreorder to be treated as error in Makefile.am and I fixed the single occurrence of this issue in the constructor of MinidumpContext. It was failing to compile in our Google project and it is a nice and small (one line) fix. This issue is already tracked here: http://code.google.com/p/google-breakpad/issues/detail?id=493&can=1&q=excepti... Currently, this issue affects about 25% of all Chrome crash reports on Windows - as measured on a random sample consisting of 2 million crash reports. Thanks, -Ivan Patch Set 1 #Patch Set 2 : Updating some comments and formatting #Patch Set 3 : Added a unittests that covers the scenario where the dump has no system info stream: Dump.OneExcept… #
Total comments: 8
Patch Set 4 : Replace 0 == with == 0 #Patch Set 5 : Getting rid of the cookie stuff #
Total comments: 1
Patch Set 6 : Replace -1 == with == -1 #
MessagesTotal messages: 9
|