mirror of
https://github.com/danog/patches.git
synced 2024-11-26 20:04:45 +01:00
Add breakpad/crashpad patches.
This commit is contained in:
parent
10807c2f01
commit
ebc5949c31
651
breakpad.diff
Normal file
651
breakpad.diff
Normal file
@ -0,0 +1,651 @@
|
|||||||
|
diff --git a/src/build/common.gypi b/src/build/common.gypi
|
||||||
|
index 29990c65..53e99d44 100644
|
||||||
|
--- a/src/build/common.gypi
|
||||||
|
+++ b/src/build/common.gypi
|
||||||
|
@@ -330,6 +330,7 @@
|
||||||
|
'VCCLCompilerTool': {
|
||||||
|
'WarnAsError': 'true',
|
||||||
|
'Detect64BitPortabilityProblems': 'false',
|
||||||
|
+ 'TreatWChar_tAsBuiltInType': 'false',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}],
|
||||||
|
diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
|
||||||
|
index 1a93ce6d..b5986e33 100644
|
||||||
|
--- a/src/client/mac/Breakpad.xcodeproj/project.pbxproj
|
||||||
|
+++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj
|
||||||
|
@@ -35,6 +35,19 @@
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
+ 0748C0431C63C409004489BF /* MachIPC.mm in Sources */ = {isa = PBXBuildFile; fileRef = F92C53790ECCE635009BE4BA /* MachIPC.mm */; };
|
||||||
|
+ 0748C0441C63C43C004489BF /* minidump_generator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536F0ECCE3FD009BE4BA /* minidump_generator.cc */; };
|
||||||
|
+ 0748C0451C63C46C004489BF /* string_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53820ECCE635009BE4BA /* string_utilities.cc */; };
|
||||||
|
+ 0748C0461C63C484004489BF /* minidump_file_writer.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C538F0ECCE70A009BE4BA /* minidump_file_writer.cc */; };
|
||||||
|
+ 0748C0471C63C4A1004489BF /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
|
||||||
|
+ 0748C0491C63C4CF004489BF /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537A0ECCE635009BE4BA /* macho_id.cc */; };
|
||||||
|
+ 0748C04A1C63C4D4004489BF /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
|
||||||
|
+ 0748C04B1C63C4DB004489BF /* convert_UTF.c in Sources */ = {isa = PBXBuildFile; fileRef = F92C53870ECCE6C0009BE4BA /* convert_UTF.c */; };
|
||||||
|
+ 0748C04C1C63C4EA004489BF /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537C0ECCE635009BE4BA /* macho_utilities.cc */; };
|
||||||
|
+ 0748C04D1C63C50F004489BF /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53740ECCE635009BE4BA /* file_id.cc */; };
|
||||||
|
+ 0748C04E1C63C51C004489BF /* md5.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D72CA0D13DFAD5C006CABE3 /* md5.cc */; };
|
||||||
|
+ 0748C04F1C63C523004489BF /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C537E0ECCE635009BE4BA /* macho_walker.cc */; };
|
||||||
|
+ 0748C0501C63C52D004489BF /* bootstrap_compat.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D61A25D14F43CFC002D5862 /* bootstrap_compat.cc */; };
|
||||||
|
162F64F2161C577500CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
|
||||||
|
162F64F3161C577500CD68D5 /* arch_utilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 162F64F1161C577500CD68D5 /* arch_utilities.h */; };
|
||||||
|
162F64F4161C579B00CD68D5 /* arch_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 162F64F0161C577500CD68D5 /* arch_utilities.cc */; };
|
||||||
|
@@ -67,6 +80,7 @@
|
||||||
|
4DBE49A7134A4F280072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
|
||||||
|
4DBE49A8134A4F380072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
|
||||||
|
4DBE49A9134A4F460072546A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DBE4769134A4F080072546A /* CoreServices.framework */; };
|
||||||
|
+ 5A8B220921E0C5740045F83C /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; };
|
||||||
|
8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
|
||||||
|
8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; };
|
||||||
|
8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; };
|
||||||
|
@@ -170,11 +184,8 @@
|
||||||
|
F92C564A0ECD10CA009BE4BA /* string_conversion.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53850ECCE6AD009BE4BA /* string_conversion.cc */; };
|
||||||
|
F92C564C0ECD10DD009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
|
||||||
|
F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C554A0ECCF530009BE4BA /* Carbon.framework */; };
|
||||||
|
- F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
|
||||||
|
F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */; };
|
||||||
|
F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
|
||||||
|
- F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; };
|
||||||
|
- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */ = {isa = PBXBuildFile; fileRef = F92C53540ECCE349009BE4BA /* Inspector */; };
|
||||||
|
F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */; };
|
||||||
|
F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; };
|
||||||
|
F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; };
|
||||||
|
@@ -213,7 +224,6 @@
|
||||||
|
F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */; };
|
||||||
|
F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
|
||||||
|
F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; };
|
||||||
|
- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */ = {isa = PBXBuildFile; fileRef = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */; };
|
||||||
|
F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */; };
|
||||||
|
F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */; };
|
||||||
|
F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */; };
|
||||||
|
@@ -410,20 +420,6 @@
|
||||||
|
remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
|
||||||
|
remoteInfo = breakpadUtilities;
|
||||||
|
};
|
||||||
|
- F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */ = {
|
||||||
|
- isa = PBXContainerItemProxy;
|
||||||
|
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
|
||||||
|
- proxyType = 1;
|
||||||
|
- remoteGlobalIDString = F92C563B0ECD10B3009BE4BA;
|
||||||
|
- remoteInfo = breakpadUtilities;
|
||||||
|
- };
|
||||||
|
- F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */ = {
|
||||||
|
- isa = PBXContainerItemProxy;
|
||||||
|
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
|
||||||
|
- proxyType = 1;
|
||||||
|
- remoteGlobalIDString = F92C53530ECCE349009BE4BA;
|
||||||
|
- remoteInfo = Inspector;
|
||||||
|
- };
|
||||||
|
F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
|
||||||
|
@@ -536,13 +532,6 @@
|
||||||
|
remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
|
||||||
|
remoteInfo = Breakpad;
|
||||||
|
};
|
||||||
|
- F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */ = {
|
||||||
|
- isa = PBXContainerItemProxy;
|
||||||
|
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
|
||||||
|
- proxyType = 1;
|
||||||
|
- remoteGlobalIDString = F92C569F0ECE04A7009BE4BA;
|
||||||
|
- remoteInfo = crash_report_sender;
|
||||||
|
- };
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
@@ -714,7 +703,6 @@
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
- F92C565C0ECD1158009BE4BA /* breakpadUtilities.dylib in Frameworks */,
|
||||||
|
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
@@ -1181,18 +1169,13 @@
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Breakpad" */;
|
||||||
|
buildPhases = (
|
||||||
|
- F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */,
|
||||||
|
8DC2EF500486A6940098B216 /* Headers */,
|
||||||
|
- 8DC2EF520486A6940098B216 /* Resources */,
|
||||||
|
8DC2EF540486A6940098B216 /* Sources */,
|
||||||
|
8DC2EF560486A6940098B216 /* Frameworks */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
- F92C56860ECD15EF009BE4BA /* PBXTargetDependency */,
|
||||||
|
- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */,
|
||||||
|
- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = Breakpad;
|
||||||
|
productInstallPath = "$(HOME)/Library/Frameworks";
|
||||||
|
@@ -1399,6 +1382,8 @@
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
0867D690FE84028FC02AAC07 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
+ attributes = {
|
||||||
|
+ };
|
||||||
|
buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */;
|
||||||
|
compatibilityVersion = "Xcode 3.1";
|
||||||
|
developmentRegion = English;
|
||||||
|
@@ -1583,16 +1568,6 @@
|
||||||
|
/* End PBXReferenceProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
- 8DC2EF520486A6940098B216 /* Resources */ = {
|
||||||
|
- isa = PBXResourcesBuildPhase;
|
||||||
|
- buildActionMask = 2147483647;
|
||||||
|
- files = (
|
||||||
|
- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */,
|
||||||
|
- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */,
|
||||||
|
- F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */,
|
||||||
|
- );
|
||||||
|
- runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
- };
|
||||||
|
F92C569C0ECE04A7009BE4BA /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
@@ -1640,20 +1615,6 @@
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "install_name_tool -id \"@executable_path/../Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
|
||||||
|
};
|
||||||
|
- F97A0E850ED4EC15008784D3 /* Change install name of breakpadUtilities */ = {
|
||||||
|
- isa = PBXShellScriptBuildPhase;
|
||||||
|
- buildActionMask = 2147483647;
|
||||||
|
- files = (
|
||||||
|
- );
|
||||||
|
- inputPaths = (
|
||||||
|
- );
|
||||||
|
- name = "Change install name of breakpadUtilities";
|
||||||
|
- outputPaths = (
|
||||||
|
- );
|
||||||
|
- runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
- shellPath = /bin/sh;
|
||||||
|
- shellScript = "#!/bin/bash\ninstall_name_tool -id \"@executable_path/../Frameworks/Breakpad.framework/Resources/breakpadUtilities.dylib\" \"${BUILT_PRODUCTS_DIR}/breakpadUtilities.dylib\"\n";
|
||||||
|
- };
|
||||||
|
F9C77DD80F7DD5CF0045F7DB /* ShellScript */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
@@ -1674,6 +1635,20 @@
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
+ 5A8B220921E0C5740045F83C /* breakpad_nlist_64.cc in Sources */,
|
||||||
|
+ 0748C0501C63C52D004489BF /* bootstrap_compat.cc in Sources */,
|
||||||
|
+ 0748C04F1C63C523004489BF /* macho_walker.cc in Sources */,
|
||||||
|
+ 0748C04E1C63C51C004489BF /* md5.cc in Sources */,
|
||||||
|
+ 0748C04D1C63C50F004489BF /* file_id.cc in Sources */,
|
||||||
|
+ 0748C04C1C63C4EA004489BF /* macho_utilities.cc in Sources */,
|
||||||
|
+ 0748C04B1C63C4DB004489BF /* convert_UTF.c in Sources */,
|
||||||
|
+ 0748C04A1C63C4D4004489BF /* string_conversion.cc in Sources */,
|
||||||
|
+ 0748C0491C63C4CF004489BF /* macho_id.cc in Sources */,
|
||||||
|
+ 0748C0471C63C4A1004489BF /* dynamic_images.cc in Sources */,
|
||||||
|
+ 0748C0461C63C484004489BF /* minidump_file_writer.cc in Sources */,
|
||||||
|
+ 0748C0451C63C46C004489BF /* string_utilities.cc in Sources */,
|
||||||
|
+ 0748C0441C63C43C004489BF /* minidump_generator.cc in Sources */,
|
||||||
|
+ 0748C0431C63C409004489BF /* MachIPC.mm in Sources */,
|
||||||
|
F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */,
|
||||||
|
F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */,
|
||||||
|
F92C55D10ECD0064009BE4BA /* Breakpad.mm in Sources */,
|
||||||
|
@@ -1955,16 +1930,6 @@
|
||||||
|
target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
|
||||||
|
targetProxy = F92C564D0ECD10E5009BE4BA /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
- F92C56860ECD15EF009BE4BA /* PBXTargetDependency */ = {
|
||||||
|
- isa = PBXTargetDependency;
|
||||||
|
- target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */;
|
||||||
|
- targetProxy = F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */;
|
||||||
|
- };
|
||||||
|
- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */ = {
|
||||||
|
- isa = PBXTargetDependency;
|
||||||
|
- target = F92C53530ECCE349009BE4BA /* Inspector */;
|
||||||
|
- targetProxy = F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */;
|
||||||
|
- };
|
||||||
|
F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = F93803BD0F80820F004D428B /* generator_test */;
|
||||||
|
@@ -2025,11 +1990,6 @@
|
||||||
|
target = 8DC2EF4F0486A6940098B216 /* Breakpad */;
|
||||||
|
targetProxy = F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */ = {
|
||||||
|
- isa = PBXTargetDependency;
|
||||||
|
- target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */;
|
||||||
|
- targetProxy = F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */;
|
||||||
|
- };
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin PBXVariantGroup section */
|
||||||
|
@@ -2126,8 +2086,12 @@
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||||
|
+ CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
|
||||||
|
- SDKROOT = macosx10.5;
|
||||||
|
+ GCC_VERSION = "";
|
||||||
|
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||||
|
+ SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
@@ -2135,7 +2099,12 @@
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||||
|
+ CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
|
||||||
|
+ GCC_VERSION = "";
|
||||||
|
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||||
|
+ SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
@@ -2454,7 +2423,12 @@
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
+ CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||||
|
+ CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
|
||||||
|
+ GCC_VERSION = "";
|
||||||
|
+ MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||||
|
+ SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = "Debug With Code Coverage";
|
||||||
|
};
|
||||||
|
diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm
|
||||||
|
index 1d2e519b..943310fa 100644
|
||||||
|
--- a/src/client/mac/Framework/Breakpad.mm
|
||||||
|
+++ b/src/client/mac/Framework/Breakpad.mm
|
||||||
|
@@ -355,10 +355,10 @@ bool Breakpad::Initialize(NSDictionary *parameters) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
|
||||||
|
+// if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue])
|
||||||
|
return InitializeInProcess(parameters);
|
||||||
|
- else
|
||||||
|
- return InitializeOutOfProcess(parameters);
|
||||||
|
+// else
|
||||||
|
+// return InitializeOutOfProcess(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
@@ -373,52 +373,52 @@ bool Breakpad::InitializeInProcess(NSDictionary* parameters) {
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
-bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
|
||||||
|
- // Get path to Inspector executable.
|
||||||
|
- NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
|
||||||
|
-
|
||||||
|
- // Standardize path (resolve symlinkes, etc.) and escape spaces
|
||||||
|
- inspectorPathString = [inspectorPathString stringByStandardizingPath];
|
||||||
|
- inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
|
||||||
|
- componentsJoinedByString:@"\\ "];
|
||||||
|
-
|
||||||
|
- // Create an on-demand server object representing the Inspector.
|
||||||
|
- // In case of a crash, we simply need to call the LaunchOnDemand()
|
||||||
|
- // method on it, then send a mach message to its service port.
|
||||||
|
- // It will then launch and perform a process inspection of our crashed state.
|
||||||
|
- // See the HandleException() method for the details.
|
||||||
|
-#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
|
||||||
|
-
|
||||||
|
- name_t portName;
|
||||||
|
- snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid());
|
||||||
|
-
|
||||||
|
- // Save the location of the Inspector
|
||||||
|
- strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
|
||||||
|
- sizeof(inspector_path_));
|
||||||
|
-
|
||||||
|
- // Append a single command-line argument to the Inspector path
|
||||||
|
- // representing the bootstrap name of the launch-on-demand receive port.
|
||||||
|
- // When the Inspector is launched, it can use this to lookup the port
|
||||||
|
- // by calling bootstrap_check_in().
|
||||||
|
- strlcat(inspector_path_, " ", sizeof(inspector_path_));
|
||||||
|
- strlcat(inspector_path_, portName, sizeof(inspector_path_));
|
||||||
|
-
|
||||||
|
- kern_return_t kr = inspector_.Initialize(inspector_path_,
|
||||||
|
- portName,
|
||||||
|
- true); // shutdown on exit
|
||||||
|
-
|
||||||
|
- if (kr != KERN_SUCCESS) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // Create the handler (allocating it in our special protected pool)
|
||||||
|
- handler_ =
|
||||||
|
- new (gBreakpadAllocator->Allocate(
|
||||||
|
- sizeof(google_breakpad::ExceptionHandler)))
|
||||||
|
- google_breakpad::ExceptionHandler(
|
||||||
|
- Breakpad::ExceptionHandlerDirectCallback, this, true);
|
||||||
|
- return true;
|
||||||
|
-}
|
||||||
|
+//bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) {
|
||||||
|
+// // Get path to Inspector executable.
|
||||||
|
+// NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION);
|
||||||
|
+//
|
||||||
|
+// // Standardize path (resolve symlinkes, etc.) and escape spaces
|
||||||
|
+// inspectorPathString = [inspectorPathString stringByStandardizingPath];
|
||||||
|
+// inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "]
|
||||||
|
+// componentsJoinedByString:@"\\ "];
|
||||||
|
+//
|
||||||
|
+// // Create an on-demand server object representing the Inspector.
|
||||||
|
+// // In case of a crash, we simply need to call the LaunchOnDemand()
|
||||||
|
+// // method on it, then send a mach message to its service port.
|
||||||
|
+// // It will then launch and perform a process inspection of our crashed state.
|
||||||
|
+// // See the HandleException() method for the details.
|
||||||
|
+//#define RECEIVE_PORT_NAME "com.Breakpad.Inspector"
|
||||||
|
+//
|
||||||
|
+// name_t portName;
|
||||||
|
+// snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid());
|
||||||
|
+//
|
||||||
|
+// // Save the location of the Inspector
|
||||||
|
+// strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation],
|
||||||
|
+// sizeof(inspector_path_));
|
||||||
|
+//
|
||||||
|
+// // Append a single command-line argument to the Inspector path
|
||||||
|
+// // representing the bootstrap name of the launch-on-demand receive port.
|
||||||
|
+// // When the Inspector is launched, it can use this to lookup the port
|
||||||
|
+// // by calling bootstrap_check_in().
|
||||||
|
+// strlcat(inspector_path_, " ", sizeof(inspector_path_));
|
||||||
|
+// strlcat(inspector_path_, portName, sizeof(inspector_path_));
|
||||||
|
+//
|
||||||
|
+// kern_return_t kr = inspector_.Initialize(inspector_path_,
|
||||||
|
+// portName,
|
||||||
|
+// true); // shutdown on exit
|
||||||
|
+//
|
||||||
|
+// if (kr != KERN_SUCCESS) {
|
||||||
|
+// return false;
|
||||||
|
+// }
|
||||||
|
+//
|
||||||
|
+// // Create the handler (allocating it in our special protected pool)
|
||||||
|
+// handler_ =
|
||||||
|
+// new (gBreakpadAllocator->Allocate(
|
||||||
|
+// sizeof(google_breakpad::ExceptionHandler)))
|
||||||
|
+// google_breakpad::ExceptionHandler(
|
||||||
|
+// Breakpad::ExceptionHandlerDirectCallback, this, true);
|
||||||
|
+// return true;
|
||||||
|
+//}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
Breakpad::~Breakpad() {
|
||||||
|
@@ -445,10 +445,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
|
NSString *version = [parameters objectForKey:@BREAKPAD_VERSION];
|
||||||
|
NSString *urlStr = [parameters objectForKey:@BREAKPAD_URL];
|
||||||
|
NSString *interval = [parameters objectForKey:@BREAKPAD_REPORT_INTERVAL];
|
||||||
|
- NSString *inspectorPathString =
|
||||||
|
- [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
|
||||||
|
- NSString *reporterPathString =
|
||||||
|
- [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
|
||||||
|
+// NSString *inspectorPathString =
|
||||||
|
+// [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION];
|
||||||
|
+// NSString *reporterPathString =
|
||||||
|
+// [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION];
|
||||||
|
NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT];
|
||||||
|
NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES];
|
||||||
|
NSString *logFileTailSize =
|
||||||
|
@@ -536,39 +536,39 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the helper applications if not specified in user config.
|
||||||
|
- NSString *resourcePath = nil;
|
||||||
|
- if (!inspectorPathString || !reporterPathString) {
|
||||||
|
- resourcePath = GetResourcePath();
|
||||||
|
- if (!resourcePath) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+// NSString *resourcePath = nil;
|
||||||
|
+// if (!inspectorPathString || !reporterPathString) {
|
||||||
|
+// resourcePath = GetResourcePath();
|
||||||
|
+// if (!resourcePath) {
|
||||||
|
+// return false;
|
||||||
|
+// }
|
||||||
|
+// }
|
||||||
|
|
||||||
|
// Find Inspector.
|
||||||
|
- if (!inspectorPathString) {
|
||||||
|
- inspectorPathString =
|
||||||
|
- [resourcePath stringByAppendingPathComponent:@"Inspector"];
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // Verify that there is an Inspector tool.
|
||||||
|
- if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
+// if (!inspectorPathString) {
|
||||||
|
+// inspectorPathString =
|
||||||
|
+// [resourcePath stringByAppendingPathComponent:@"Inspector"];
|
||||||
|
+// }
|
||||||
|
+//
|
||||||
|
+// // Verify that there is an Inspector tool.
|
||||||
|
+// if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) {
|
||||||
|
+// return false;
|
||||||
|
+// }
|
||||||
|
|
||||||
|
// Find Reporter.
|
||||||
|
- if (!reporterPathString) {
|
||||||
|
- reporterPathString =
|
||||||
|
- [resourcePath
|
||||||
|
- stringByAppendingPathComponent:@"crash_report_sender.app"];
|
||||||
|
- reporterPathString =
|
||||||
|
- [[NSBundle bundleWithPath:reporterPathString] executablePath];
|
||||||
|
- }
|
||||||
|
+// if (!reporterPathString) {
|
||||||
|
+// reporterPathString =
|
||||||
|
+// [resourcePath
|
||||||
|
+// stringByAppendingPathComponent:@"crash_report_sender.app"];
|
||||||
|
+// reporterPathString =
|
||||||
|
+// [[NSBundle bundleWithPath:reporterPathString] executablePath];
|
||||||
|
+// }
|
||||||
|
|
||||||
|
// Verify that there is a Reporter application.
|
||||||
|
- if (![[NSFileManager defaultManager]
|
||||||
|
- fileExistsAtPath:reporterPathString]) {
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
+// if (![[NSFileManager defaultManager]
|
||||||
|
+// fileExistsAtPath:reporterPathString]) {
|
||||||
|
+// return false;
|
||||||
|
+// }
|
||||||
|
|
||||||
|
if (!dumpSubdirectory) {
|
||||||
|
dumpSubdirectory = @"";
|
||||||
|
@@ -601,10 +601,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) {
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]);
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM, [skipConfirm UTF8String]);
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]);
|
||||||
|
- dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
|
||||||
|
- [inspectorPathString fileSystemRepresentation]);
|
||||||
|
- dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
|
||||||
|
- [reporterPathString fileSystemRepresentation]);
|
||||||
|
+// dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION,
|
||||||
|
+// [inspectorPathString fileSystemRepresentation]);
|
||||||
|
+// dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION,
|
||||||
|
+// [reporterPathString fileSystemRepresentation]);
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_LOGFILE_UPLOAD_SIZE,
|
||||||
|
[logFileTailSize UTF8String]);
|
||||||
|
dictionary.SetKeyValue(BREAKPAD_REQUEST_COMMENTS,
|
||||||
|
@@ -762,9 +762,9 @@ bool Breakpad::HandleException(int exception_type,
|
||||||
|
bool Breakpad::HandleMinidump(const char *dump_dir, const char *minidump_id) {
|
||||||
|
google_breakpad::ConfigFile config_file;
|
||||||
|
config_file.WriteFile(dump_dir, config_params_, dump_dir, minidump_id);
|
||||||
|
- google_breakpad::LaunchReporter(
|
||||||
|
- config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
|
||||||
|
- config_file.GetFilePath());
|
||||||
|
+// google_breakpad::LaunchReporter(
|
||||||
|
+// config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION),
|
||||||
|
+// config_file.GetFilePath());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/common/language.cc b/src/common/language.cc
|
||||||
|
index 978fb855..a95ae5f7 100644
|
||||||
|
--- a/src/common/language.cc
|
||||||
|
+++ b/src/common/language.cc
|
||||||
|
@@ -46,8 +46,27 @@
|
||||||
|
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
|
+#include <cstdio>
|
||||||
|
+#include <iostream>
|
||||||
|
+#include <memory>
|
||||||
|
+#include <stdexcept>
|
||||||
|
+#include <string>
|
||||||
|
+#include <array>
|
||||||
|
+
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
+std::string exec(std::string cmd) {
|
||||||
|
+ std::array<char, 128> buffer;
|
||||||
|
+ std::string result;
|
||||||
|
+ std::shared_ptr<FILE> pipe(popen(cmd.c_str(), "r"), pclose);
|
||||||
|
+ if (!pipe) throw std::runtime_error("popen() failed!");
|
||||||
|
+ while (!feof(pipe.get())) {
|
||||||
|
+ if (fgets(buffer.data(), 128, pipe.get()) != nullptr)
|
||||||
|
+ result += buffer.data();
|
||||||
|
+ }
|
||||||
|
+ return result;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
string MakeQualifiedNameWithSeparator(const string& parent_name,
|
||||||
|
const char* separator,
|
||||||
|
const string& name) {
|
||||||
|
@@ -79,11 +98,29 @@ class CPPLanguage: public Language {
|
||||||
|
demangled->clear();
|
||||||
|
return kDontDemangle;
|
||||||
|
#else
|
||||||
|
+ DemangleResult result;
|
||||||
|
+ if (mangled.find("type_erased_handlers") != std::string::npos
|
||||||
|
+ && mangled.find("vtable_once_impl") != std::string::npos) {
|
||||||
|
+
|
||||||
|
+ auto demangled_str = exec("c++filt " + mangled);
|
||||||
|
+ if (!demangled_str.empty() && demangled_str.back() == '\n') {
|
||||||
|
+ demangled_str.pop_back();
|
||||||
|
+ }
|
||||||
|
+ if (demangled_str != mangled) {
|
||||||
|
+ result = kDemangleSuccess;
|
||||||
|
+ demangled->assign(demangled_str.c_str());
|
||||||
|
+ } else {
|
||||||
|
+ result = kDemangleFailure;
|
||||||
|
+ demangled->clear();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ } else {
|
||||||
|
+
|
||||||
|
int status;
|
||||||
|
char* demangled_c =
|
||||||
|
abi::__cxa_demangle(mangled.c_str(), NULL, NULL, &status);
|
||||||
|
|
||||||
|
- DemangleResult result;
|
||||||
|
+// DemangleResult result;
|
||||||
|
if (status == 0) {
|
||||||
|
result = kDemangleSuccess;
|
||||||
|
demangled->assign(demangled_c);
|
||||||
|
@@ -96,6 +133,8 @@ class CPPLanguage: public Language {
|
||||||
|
free(reinterpret_cast<void*>(demangled_c));
|
||||||
|
}
|
||||||
|
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return result;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
diff --git a/src/common/linux/elf_symbols_to_module.cc b/src/common/linux/elf_symbols_to_module.cc
|
||||||
|
index 562875e1..43678510 100644
|
||||||
|
--- a/src/common/linux/elf_symbols_to_module.cc
|
||||||
|
+++ b/src/common/linux/elf_symbols_to_module.cc
|
||||||
|
@@ -39,6 +39,29 @@
|
||||||
|
#include "common/byte_cursor.h"
|
||||||
|
#include "common/module.h"
|
||||||
|
|
||||||
|
+#include <cstdio>
|
||||||
|
+#include <iostream>
|
||||||
|
+#include <memory>
|
||||||
|
+#include <stdexcept>
|
||||||
|
+#include <string>
|
||||||
|
+#include <array>
|
||||||
|
+
|
||||||
|
+namespace {
|
||||||
|
+
|
||||||
|
+std::string exec(std::string cmd) {
|
||||||
|
+ std::array<char, 128> buffer;
|
||||||
|
+ std::string result;
|
||||||
|
+ std::shared_ptr<FILE> pipe(popen(cmd.c_str(), "r"), pclose);
|
||||||
|
+ if (!pipe) throw std::runtime_error("popen() failed!");
|
||||||
|
+ while (!feof(pipe.get())) {
|
||||||
|
+ if (fgets(buffer.data(), 128, pipe.get()) != nullptr)
|
||||||
|
+ result += buffer.data();
|
||||||
|
+ }
|
||||||
|
+ return result;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
namespace google_breakpad {
|
||||||
|
|
||||||
|
class ELFSymbolIterator {
|
||||||
|
@@ -159,6 +182,19 @@ bool ELFSymbolsToModule(const uint8_t *symtab_section,
|
||||||
|
Module::Extern *ext = new Module::Extern(iterator->value);
|
||||||
|
ext->name = SymbolString(iterator->name_offset, strings);
|
||||||
|
#if !defined(__ANDROID__) // Android NDK doesn't provide abi::__cxa_demangle.
|
||||||
|
+ if (ext->name.find("type_erased_handlers") != std::string::npos
|
||||||
|
+ && ext->name.find("vtable_once_impl") != std::string::npos) {
|
||||||
|
+
|
||||||
|
+ auto demangled_str = exec("c++filt " + ext->name);
|
||||||
|
+ if (!demangled_str.empty() && demangled_str.back() == '\n') {
|
||||||
|
+ demangled_str.pop_back();
|
||||||
|
+ }
|
||||||
|
+ if (demangled_str != ext->name) {
|
||||||
|
+ ext->name = demangled_str;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ } else {
|
||||||
|
+
|
||||||
|
int status = 0;
|
||||||
|
char* demangled =
|
||||||
|
abi::__cxa_demangle(ext->name.c_str(), NULL, NULL, &status);
|
||||||
|
@@ -167,6 +203,8 @@ bool ELFSymbolsToModule(const uint8_t *symtab_section,
|
||||||
|
ext->name = demangled;
|
||||||
|
free(demangled);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
#endif
|
||||||
|
module->AddExtern(ext);
|
||||||
|
}
|
||||||
|
diff --git a/src/tools/linux/tools_linux.gypi b/src/tools/linux/tools_linux.gypi
|
||||||
|
index 1c15992e..020e4c1c 100644
|
||||||
|
--- a/src/tools/linux/tools_linux.gypi
|
||||||
|
+++ b/src/tools/linux/tools_linux.gypi
|
||||||
|
@@ -58,7 +58,7 @@
|
||||||
|
'target_name': 'minidump_upload',
|
||||||
|
'type': 'executable',
|
||||||
|
'sources': [
|
||||||
|
- 'symupload/minidump_upload.m',
|
||||||
|
+ 'symupload/minidump_upload.cc',
|
||||||
|
],
|
||||||
|
'dependencies': [
|
||||||
|
'../common/common.gyp:common',
|
||||||
|
diff --git a/src/tools/mac/dump_syms/macho_dump.cc b/src/tools/mac/dump_syms/macho_dump.cc
|
||||||
|
index d882bbe8..3432bb45 100644
|
||||||
|
--- a/src/tools/mac/dump_syms/macho_dump.cc
|
||||||
|
+++ b/src/tools/mac/dump_syms/macho_dump.cc
|
||||||
|
@@ -140,7 +140,7 @@ void DumpFile(const char *filename) {
|
||||||
|
size_t object_files_size;
|
||||||
|
const SuperFatArch* super_fat_object_files =
|
||||||
|
fat_reader.object_files(&object_files_size);
|
||||||
|
- struct fat_arch *object_files;
|
||||||
|
+ struct fat_arch *object_files = 0;
|
||||||
|
if (!super_fat_object_files->ConvertToFatArch(object_files)) {
|
||||||
|
exit(1);
|
||||||
|
}
|
107
crashpad.diff
Normal file
107
crashpad.diff
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
diff --git a/client/capture_context_mac_test.cc b/client/capture_context_mac_test.cc
|
||||||
|
index 436ac5ad..8e14fb9c 100644
|
||||||
|
--- a/client/capture_context_mac_test.cc
|
||||||
|
+++ b/client/capture_context_mac_test.cc
|
||||||
|
@@ -34,11 +34,11 @@ namespace {
|
||||||
|
// gtest assertions.
|
||||||
|
void SanityCheckContext(const NativeCPUContext& context) {
|
||||||
|
#if defined(ARCH_CPU_X86)
|
||||||
|
- ASSERT_EQ(x86_THREAD_STATE32, context.tsh.flavor);
|
||||||
|
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT), context.tsh.count);
|
||||||
|
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
|
||||||
|
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT), implicit_cast<uint32_t>(context.tsh.count));
|
||||||
|
#elif defined(ARCH_CPU_X86_64)
|
||||||
|
- ASSERT_EQ(x86_THREAD_STATE64, context.tsh.flavor);
|
||||||
|
- ASSERT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT), context.tsh.count);
|
||||||
|
+ ASSERT_EQ(implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64), implicit_cast<thread_state_flavor_t>(context.tsh.flavor));
|
||||||
|
+ ASSERT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT), implicit_cast<uint32_t>(context.tsh.count));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ARCH_CPU_X86_FAMILY)
|
||||||
|
diff --git a/client/simulate_crash_mac.cc b/client/simulate_crash_mac.cc
|
||||||
|
index 7e279015..27864388 100644
|
||||||
|
--- a/client/simulate_crash_mac.cc
|
||||||
|
+++ b/client/simulate_crash_mac.cc
|
||||||
|
@@ -177,12 +177,12 @@ bool DeliverException(thread_t thread,
|
||||||
|
|
||||||
|
void SimulateCrash(const NativeCPUContext& cpu_context) {
|
||||||
|
#if defined(ARCH_CPU_X86)
|
||||||
|
- DCHECK_EQ(cpu_context.tsh.flavor,
|
||||||
|
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
|
||||||
|
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE32));
|
||||||
|
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
|
||||||
|
x86_THREAD_STATE32_COUNT);
|
||||||
|
#elif defined(ARCH_CPU_X86_64)
|
||||||
|
- DCHECK_EQ(cpu_context.tsh.flavor,
|
||||||
|
+ DCHECK_EQ(implicit_cast<thread_state_flavor_t>(cpu_context.tsh.flavor),
|
||||||
|
implicit_cast<thread_state_flavor_t>(x86_THREAD_STATE64));
|
||||||
|
DCHECK_EQ(implicit_cast<mach_msg_type_number_t>(cpu_context.tsh.count),
|
||||||
|
x86_THREAD_STATE64_COUNT);
|
||||||
|
diff --git a/client/simulate_crash_mac_test.cc b/client/simulate_crash_mac_test.cc
|
||||||
|
index 87c5f845..ca813e4c 100644
|
||||||
|
--- a/client/simulate_crash_mac_test.cc
|
||||||
|
+++ b/client/simulate_crash_mac_test.cc
|
||||||
|
@@ -130,12 +130,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
|
||||||
|
reinterpret_cast<const x86_thread_state*>(old_state);
|
||||||
|
switch (state->tsh.flavor) {
|
||||||
|
case x86_THREAD_STATE32:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE32_COUNT),
|
||||||
|
- state->tsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE32_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->tsh.count));
|
||||||
|
break;
|
||||||
|
case x86_THREAD_STATE64:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_THREAD_STATE64_COUNT),
|
||||||
|
- state->tsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_THREAD_STATE64_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->tsh.count));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ADD_FAILURE() << "unexpected tsh.flavor " << state->tsh.flavor;
|
||||||
|
@@ -149,12 +149,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
|
||||||
|
reinterpret_cast<const x86_float_state*>(old_state);
|
||||||
|
switch (state->fsh.flavor) {
|
||||||
|
case x86_FLOAT_STATE32:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE32_COUNT),
|
||||||
|
- state->fsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE32_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->fsh.count));
|
||||||
|
break;
|
||||||
|
case x86_FLOAT_STATE64:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_FLOAT_STATE64_COUNT),
|
||||||
|
- state->fsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_FLOAT_STATE64_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->fsh.count));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ADD_FAILURE() << "unexpected fsh.flavor " << state->fsh.flavor;
|
||||||
|
@@ -168,12 +168,12 @@ class TestSimulateCrashMac final : public MachMultiprocess,
|
||||||
|
reinterpret_cast<const x86_debug_state*>(old_state);
|
||||||
|
switch (state->dsh.flavor) {
|
||||||
|
case x86_DEBUG_STATE32:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE32_COUNT),
|
||||||
|
- state->dsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE32_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->dsh.count));
|
||||||
|
break;
|
||||||
|
case x86_DEBUG_STATE64:
|
||||||
|
- EXPECT_EQ(implicit_cast<int>(x86_DEBUG_STATE64_COUNT),
|
||||||
|
- state->dsh.count);
|
||||||
|
+ EXPECT_EQ(implicit_cast<uint32_t>(x86_DEBUG_STATE64_COUNT),
|
||||||
|
+ implicit_cast<uint32_t>(state->dsh.count));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ADD_FAILURE() << "unexpected dsh.flavor " << state->dsh.flavor;
|
||||||
|
diff --git a/crashpad.gyp b/crashpad.gyp
|
||||||
|
index 42fe0a26..d8af1bf1 100644
|
||||||
|
--- a/crashpad.gyp
|
||||||
|
+++ b/crashpad.gyp
|
||||||
|
@@ -25,7 +25,7 @@
|
||||||
|
'minidump/minidump.gyp:*',
|
||||||
|
'minidump/minidump_test.gyp:*',
|
||||||
|
'snapshot/snapshot.gyp:*',
|
||||||
|
- 'snapshot/snapshot_test.gyp:*',
|
||||||
|
+# 'snapshot/snapshot_test.gyp:*',
|
||||||
|
'test/test.gyp:*',
|
||||||
|
'test/test_test.gyp:*',
|
||||||
|
'tools/tools.gyp:*',
|
52
mini_chromium.diff
Normal file
52
mini_chromium.diff
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
diff --git a/base/mac/scoped_nsobject.h b/base/mac/scoped_nsobject.h
|
||||||
|
index 2e157a4..5a306a1 100644
|
||||||
|
--- a/base/mac/scoped_nsobject.h
|
||||||
|
+++ b/base/mac/scoped_nsobject.h
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
|
||||||
|
#include "base/compiler_specific.h"
|
||||||
|
#include "base/mac/scoped_typeref.h"
|
||||||
|
+#include "base/template_util.h"
|
||||||
|
|
||||||
|
namespace base {
|
||||||
|
|
||||||
|
@@ -55,7 +56,7 @@ class scoped_nsobject : public scoped_nsprotocol<NST*> {
|
||||||
|
public:
|
||||||
|
using scoped_nsprotocol<NST*>::scoped_nsprotocol;
|
||||||
|
|
||||||
|
- static_assert(std::is_same<NST, NSAutoreleasePool>::value == false,
|
||||||
|
+ static_assert(is_same<NST, NSAutoreleasePool>::value == false,
|
||||||
|
"Use ScopedNSAutoreleasePool instead");
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/base/macros.h b/base/macros.h
|
||||||
|
index 5d96783..096704c 100644
|
||||||
|
--- a/base/macros.h
|
||||||
|
+++ b/base/macros.h
|
||||||
|
@@ -42,8 +42,9 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
|
||||||
|
|
||||||
|
template <typename Dest, typename Source>
|
||||||
|
inline Dest bit_cast(const Source& source) {
|
||||||
|
+#if __cplusplus >= 201103L
|
||||||
|
static_assert(sizeof(Dest) == sizeof(Source), "sizes must be equal");
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
Dest dest;
|
||||||
|
memcpy(&dest, &source, sizeof(dest));
|
||||||
|
return dest;
|
||||||
|
diff --git a/build/common.gypi b/build/common.gypi
|
||||||
|
index 1affc70..6e8f292 100644
|
||||||
|
--- a/build/common.gypi
|
||||||
|
+++ b/build/common.gypi
|
||||||
|
@@ -66,6 +66,11 @@
|
||||||
|
'conditions': [
|
||||||
|
['clang!=0', {
|
||||||
|
'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11
|
||||||
|
+ 'conditions': [
|
||||||
|
+ ['mac_deployment_target=="10.8"', {
|
||||||
|
+ 'CLANG_CXX_LIBRARY': 'libc++', # force -stdlib=libc++ for 10.8
|
||||||
|
+ }]
|
||||||
|
+ ],
|
||||||
|
|
||||||
|
# Don't link in libarclite_macosx.a, see http://crbug.com/156530.
|
||||||
|
'CLANG_LINK_OBJC_RUNTIME': 'NO', # -fno-objc-link-runtime
|
Loading…
Reference in New Issue
Block a user