diff options
53 files changed, 1739 insertions, 1032 deletions
diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj index f6cdcc00..73a0b479 100644 --- a/src/client/mac/Breakpad.xcodeproj/project.pbxproj +++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXAggregateTarget section */ @@ -22,6 +22,12 @@ F95BB8B3101F94D300AA053B /* PBXTargetDependency */, F95BB8B5101F94D300AA053B /* PBXTargetDependency */, F95BB8B7101F94D300AA053B /* PBXTargetDependency */, + 8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */, + 8B31051711F1010E00FCF3E4 /* PBXTargetDependency */, + 8B31051911F1010E00FCF3E4 /* PBXTargetDependency */, + 8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */, + 8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */, + 8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */, ); name = All; productName = All; @@ -32,6 +38,15 @@ 3329D4ED0FA16D820007BBC5 /* Breakpad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */; }; 33880C800F9E097100817F82 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33880C7E0F9E097100817F82 /* InfoPlist.strings */; }; 4084699D0F5D9CF900FDCA37 /* crash_report_sender.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */; }; + 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 */; }; + 8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; + 8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */; }; + 8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; + 8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; + 8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; + 8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; D2A5DD301188633800081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; }; D2A5DD401188640400081F03 /* breakpad_nlist_64.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53690ECCE3FD009BE4BA /* breakpad_nlist_64.cc */; }; @@ -114,6 +129,146 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = B88FAFC9116BDCAD00407530; + remoteInfo = all_unittests; + }; + 8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F93803BD0F80820F004D428B; + remoteInfo = generator_test; + }; + 8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F93DE2D00F82A67300608B94; + remoteInfo = minidump_file_writer_unittest; + }; + 8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F93DE32B0F82C55600608B94; + remoteInfo = handler_test; + }; + 8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = B89E0E731166575200DD08C9; + remoteInfo = macho_dump; + }; + 8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB894101F94C000AA053B /* symupload.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 9BD835FA0B0544950055103E; + remoteInfo = minidump_upload; + }; + 8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B89E0E741166575200DD08C9; + remoteInfo = macho_dump; + }; + 8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB024116BDFFF00407530; + remoteInfo = gtestmockall; + }; + 8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB14B116CF4A700407530; + remoteInfo = byte_cursor_unittest; + }; + 8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B89E0E9511665A6400DD08C9; + remoteInfo = macho_reader_unittest; + }; + 8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB007116BDE8300407530; + remoteInfo = stabs_reader_unittest; + }; + 8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB135116CF30F00407530; + remoteInfo = bytereader_unittest; + }; + 8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FAF2F116A591E00407530; + remoteInfo = dwarf2reader_cfi_unittest; + }; + 8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB0DF116CEEA800407530; + remoteInfo = dwarf2diehandler_unittest; + }; + 8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB10A116CF07900407530; + remoteInfo = dwarf_cu_to_module_unittest; + }; + 8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB0F2116CEF1900407530; + remoteInfo = dwarf_line_to_module_unittest; + }; + 8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB11F116CF27F00407530; + remoteInfo = dwarf_cfi_to_module_unittest; + }; + 8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B84A91F4116CF784006C210E; + remoteInfo = stabs_to_module_unittest; + }; + 8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = B88FB0B9116CEABF00407530; + remoteInfo = module_unittest; + }; + 8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D21F97D211CBA0F200239E38; + remoteInfo = test_assembler_unittest; + }; F91AF6370FD60A74009D8BE2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; @@ -230,7 +385,7 @@ isa = PBXContainerItemProxy; containerPortal = F95BB889101F94AC00AA053B /* dump_syms.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 8DD76F960486AA7600D96B5E; + remoteGlobalIDString = B8C5B5101166531A00D34F4E; remoteInfo = dump_syms; }; F95BB8B4101F94D300AA053B /* PBXContainerItemProxy */ = { @@ -285,6 +440,12 @@ 3329D4EC0FA16D820007BBC5 /* Breakpad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Breakpad.xib; path = sender/Breakpad.xib; sourceTree = "<group>"; }; 33880C7F0F9E097100817F82 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = sender/English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 4084699C0F5D9CF900FDCA37 /* crash_report_sender.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = crash_report_sender.icns; path = sender/crash_report_sender.icns; sourceTree = "<group>"; }; + 8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMDefines.h; path = ../../common/mac/GTMDefines.h; sourceTree = SOURCE_ROOT; }; + 8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; + 8B31022211F0CE1000FCF3E4 /* GTMGarbageCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTMGarbageCollection.h; path = ../../common/mac/GTMGarbageCollection.h; sourceTree = SOURCE_ROOT; }; + 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; }; 8DC2EF5B0486A6940098B216 /* Breakpad.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Breakpad.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F91AF5CF0FD60393009D8BE2 /* BreakpadFramework_Test.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = BreakpadFramework_Test.mm; path = tests/BreakpadFramework_Test.mm; sourceTree = "<group>"; }; F9286B380F7EB25800A4DCC8 /* Inspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Inspector.h; path = crash_generation/Inspector.h; sourceTree = "<group>"; }; @@ -393,6 +554,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B31FC8211EFD2B800FCF3E4 /* Foundation.framework in Frameworks */, F92C56570ECD113E009BE4BA /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -402,6 +564,8 @@ buildActionMask = 2147483647; files = ( F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */, + 8B3101C611F0CD9F00FCF3E4 /* AppKit.framework in Frameworks */, + 8B3101C711F0CD9F00FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -409,6 +573,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B31029411F0D54300FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -423,6 +588,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B3102E611F0D74C00FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -431,6 +597,8 @@ buildActionMask = 2147483647; files = ( F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */, + 8B3101CA11F0CDB000FCF3E4 /* AppKit.framework in Frameworks */, + 8B3101CB11F0CDB000FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -439,6 +607,8 @@ buildActionMask = 2147483647; files = ( F91AF6210FD60784009D8BE2 /* Breakpad.framework in Frameworks */, + 8B3101EA11F0CDE300FCF3E4 /* SenTestingKit.framework in Frameworks */, + 8B3102EB11F0D78000FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -464,6 +634,9 @@ 0867D691FE84028FC02AAC07 /* Breakpad */ = { isa = PBXGroup; children = ( + 8B31FFF611F0C90500FCF3E4 /* Breakpad.xcconfig */, + 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */, + 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */, F95BB8A3101F94C300AA053B /* Tools */, 32DBCF5E0370ADEE00C91783 /* Breakpad_Prefix.pch */, F92C538D0ECCE6F2009BE4BA /* client */, @@ -478,6 +651,7 @@ 0867D69AFE84028FC02AAC07 /* Frameworks */ = { isa = PBXGroup; children = ( + 8B3101E911F0CDE300FCF3E4 /* SenTestingKit.framework */, F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */, F92C554A0ECCF530009BE4BA /* Carbon.framework */, 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */, @@ -523,6 +697,8 @@ F92C53840ECCE68D009BE4BA /* mac */ = { isa = PBXGroup; children = ( + 8B31022211F0CE1000FCF3E4 /* GTMGarbageCollection.h */, + 8B31007011F0CD3C00FCF3E4 /* GTMDefines.h */, F9C77E0F0F7DDF650045F7DB /* testing */, F9C44EE70EF0A3C1003AEBAA /* GTMLogger.h */, F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */, @@ -620,6 +796,20 @@ isa = PBXGroup; children = ( F95BB892101F94AC00AA053B /* dump_syms */, + 8B31F7A111EF9A8700FCF3E4 /* macho_dump */, + 8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */, + 8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */, + 8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */, + 8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */, + 8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */, + 8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */, + 8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */, + 8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */, + 8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */, + 8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */, + 8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */, + 8B31F7B911EF9A8700FCF3E4 /* module_unittest */, + 8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */, ); name = Products; sourceTree = "<group>"; @@ -870,7 +1060,7 @@ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 0867D691FE84028FC02AAC07 /* Breakpad */; productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; @@ -906,6 +1096,104 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ + 8B31F7A111EF9A8700FCF3E4 /* macho_dump */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = macho_dump; + remoteRef = 8B31F7A011EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7A311EF9A8700FCF3E4 /* libgtestmockall.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libgtestmockall.a; + remoteRef = 8B31F7A211EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7A511EF9A8700FCF3E4 /* byte_cursor_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = byte_cursor_unittest; + remoteRef = 8B31F7A411EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7A711EF9A8700FCF3E4 /* macho_reader_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = macho_reader_unittest; + remoteRef = 8B31F7A611EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7A911EF9A8700FCF3E4 /* stabs_reader_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = stabs_reader_unittest; + remoteRef = 8B31F7A811EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7AB11EF9A8700FCF3E4 /* bytereader_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = bytereader_unittest; + remoteRef = 8B31F7AA11EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7AD11EF9A8700FCF3E4 /* dwarf2reader_cfi_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = dwarf2reader_cfi_unittest; + remoteRef = 8B31F7AC11EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7AF11EF9A8700FCF3E4 /* dwarf2diehandler_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = dwarf2diehandler_unittest; + remoteRef = 8B31F7AE11EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7B111EF9A8700FCF3E4 /* dwarf_cu_to_module_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = dwarf_cu_to_module_unittest; + remoteRef = 8B31F7B011EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7B311EF9A8700FCF3E4 /* dwarf_line_to_module_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = dwarf_line_to_module_unittest; + remoteRef = 8B31F7B211EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7B511EF9A8700FCF3E4 /* dwarf_cfi_to_module_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = dwarf_cfi_to_module_unittest; + remoteRef = 8B31F7B411EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7B711EF9A8700FCF3E4 /* stabs_to_module_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = stabs_to_module_unittest; + remoteRef = 8B31F7B611EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7B911EF9A8700FCF3E4 /* module_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = module_unittest; + remoteRef = 8B31F7B811EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 8B31F7BB11EF9A8700FCF3E4 /* test_assembler_unittest */ = { + isa = PBXReferenceProxy; + fileType = "compiled.mach-o.executable"; + path = test_assembler_unittest; + remoteRef = 8B31F7BA11EF9A8700FCF3E4 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; F95BB885101F949F00AA053B /* crash_report */ = { isa = PBXReferenceProxy; fileType = "compiled.mach-o.executable"; @@ -1149,6 +1437,36 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 8B31023911F0CF0600FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = all_unittests; + targetProxy = 8B31023811F0CF0600FCF3E4 /* PBXContainerItemProxy */; + }; + 8B31051711F1010E00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F93803BD0F80820F004D428B /* generator_test */; + targetProxy = 8B31051611F1010E00FCF3E4 /* PBXContainerItemProxy */; + }; + 8B31051911F1010E00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F93DE2D00F82A67300608B94 /* minidump_file_writer_unittest */; + targetProxy = 8B31051811F1010E00FCF3E4 /* PBXContainerItemProxy */; + }; + 8B31051B11F1010E00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F93DE32B0F82C55600608B94 /* handler_test */; + targetProxy = 8B31051A11F1010E00FCF3E4 /* PBXContainerItemProxy */; + }; + 8B31051D11F1010E00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = macho_dump; + targetProxy = 8B31051C11F1010E00FCF3E4 /* PBXContainerItemProxy */; + }; + 8B31051F11F1010E00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = minidump_upload; + targetProxy = 8B31051E11F1010E00FCF3E4 /* PBXContainerItemProxy */; + }; F91AF6380FD60A74009D8BE2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 8DC2EF4F0486A6940098B216 /* Breakpad */; @@ -1275,15 +1593,10 @@ 1DEB91AE08733DA50010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch; HEADER_SEARCH_PATHS = "../..//**"; @@ -1297,8 +1610,6 @@ 1DEB91AF08733DA50010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; @@ -1314,48 +1625,28 @@ }; 1DEB91B208733DA50010E9CD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */; buildSettings = { - ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH_ACTUAL)"; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; }; name = Debug; }; 1DEB91B308733DA50010E9CD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)"; - ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "../..//**"; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; }; name = Release; }; F92C53560ECCE34A009BE4BA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/bin; OTHER_LDFLAGS = ( - "-lcrypto", "$(inherited)", + "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = Inspector; }; name = Debug; @@ -1363,45 +1654,28 @@ F92C53570ECCE34A009BE4BA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/bin; - LD_GENERATE_MAP_FILE = YES; OTHER_LDFLAGS = ( "$(inherited)", "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = Inspector; - ZERO_LINK = NO; }; name = Release; }; F92C563D0ECD10B3009BE4BA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/lib; LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)"; OTHER_LDFLAGS = ( "$(inherited)", "-headerpad_max_install_names", "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; }; name = Debug; @@ -1409,47 +1683,24 @@ F92C563E0ECD10B3009BE4BA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/lib; LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)"; OTHER_LDFLAGS = ( "$(inherited)", "-headerpad_max_install_names", "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; - ZERO_LINK = NO; }; name = Release; }; F92C56A30ECE04A8009BE4BA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INFOPLIST_FILE = "sender/crash_report_sender-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = crash_report_sender; }; name = Debug; @@ -1457,42 +1708,16 @@ F92C56A40ECE04A8009BE4BA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INFOPLIST_FILE = "sender/crash_report_sender-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = crash_report_sender; - ZERO_LINK = NO; }; name = Release; }; F93803C00F808210004D428B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-lcrypto", - "-framework", - Foundation, - ); - PREBINDING = NO; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = generator_test; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1501,41 +1726,15 @@ F93803C10F808210004D428B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-lcrypto", - "-framework", - Foundation, - ); - PREBINDING = NO; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = generator_test; - ZERO_LINK = NO; }; name = Release; }; F93DE2D30F82A67400608B94 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_CHAR_IS_UNSIGNED_CHAR = YES; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = minidump_file_writer_unittest; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1544,40 +1743,14 @@ F93DE2D40F82A67400608B94 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = minidump_file_writer_unittest; - ZERO_LINK = NO; }; name = Release; }; F93DE32E0F82C55700608B94 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-lcrypto", - "-framework", - Foundation, - ); - PREBINDING = NO; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = handler_test; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1586,49 +1759,26 @@ F93DE32F0F82C55700608B94 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-lcrypto", - "-framework", - Foundation, - ); - PREBINDING = NO; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = handler_test; - ZERO_LINK = NO; }; name = Release; }; F93DE3B90F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */; buildSettings = { - ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH)"; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; }; name = "Debug With Code Coverage"; }; F93DE3BA0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; FRAMEWORK_VERSION = A; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Framework/Breakpad_Prefix.pch; HEADER_SEARCH_PATHS = "../..//**"; @@ -1642,19 +1792,11 @@ F93DE3BB0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/bin; OTHER_LDFLAGS = ( - "-lcrypto", "$(inherited)", + "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = Inspector; }; name = "Debug With Code Coverage"; @@ -1662,24 +1804,16 @@ F93DE3BC0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; - INSTALL_PATH = /usr/local/lib; LD_DYLIB_INSTALL_NAME = "@executable_path/../Resources/$(EXECUTABLE_PATH)"; OTHER_LDFLAGS = ( "$(inherited)", "-headerpad_max_install_names", "-lcrypto", ); - PREBINDING = NO; PRODUCT_NAME = breakpadUtilities; }; name = "Debug With Code Coverage"; @@ -1687,23 +1821,8 @@ F93DE3BD0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; HEADER_SEARCH_PATHS = "../..//**"; INFOPLIST_FILE = "sender/crash_report_sender-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = crash_report_sender; }; name = "Debug With Code Coverage"; @@ -1711,24 +1830,8 @@ F93DE3BE0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INFOPLIST_FILE = testapp/Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = BreakpadTest; }; name = "Debug With Code Coverage"; @@ -1736,9 +1839,6 @@ F93DE3BF0F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; PRODUCT_NAME = All; }; name = "Debug With Code Coverage"; @@ -1746,28 +1846,14 @@ F93DE3C00F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; - GCC_DYNAMIC_NO_PIC = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h"; INFOPLIST_FILE = "UnitTests-Info.plist"; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; LIBRARY_SEARCH_PATHS = ./gcov; - OTHER_LDFLAGS = ( - "-lgcov", - "-framework", - Cocoa, - "-framework", - SenTestingKit, - ); - PREBINDING = NO; PRODUCT_NAME = UnitTests; - USER_HEADER_SEARCH_PATHS = "../../ ../../common/mac/**"; WRAPPER_EXTENSION = octest; }; name = "Debug With Code Coverage"; @@ -1775,15 +1861,6 @@ F93DE3C10F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ./gcov; OTHER_LDFLAGS = ( "-lgcov", @@ -1791,7 +1868,6 @@ "-framework", Foundation, ); - PREBINDING = NO; PRODUCT_NAME = generator_test; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1800,25 +1876,10 @@ F93DE3C20F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_CHAR_IS_UNSIGNED_CHAR = YES; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ./gcov; - OTHER_LDFLAGS = ( - "-lgcov", - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; + OTHER_LDFLAGS = "-lgcov"; PRODUCT_NAME = minidump_file_writer_unittest; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1827,23 +1888,13 @@ F93DE3C30F830E7000608B94 /* Debug With Code Coverage */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ./gcov; OTHER_LDFLAGS = ( "-lcrypto", "-lgcov", - "-framework", - Foundation, ); - PREBINDING = NO; PRODUCT_NAME = handler_test; USER_HEADER_SEARCH_PATHS = ../../; }; @@ -1852,9 +1903,6 @@ F94585850F782326009A47BF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; PRODUCT_NAME = All; }; name = Debug; @@ -1862,35 +1910,15 @@ F94585860F782326009A47BF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = All; - ZERO_LINK = NO; }; name = Release; }; F9C44DA80EF060A8003AEBAA /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INFOPLIST_FILE = testapp/Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = BreakpadTest; }; name = Debug; @@ -1898,46 +1926,22 @@ F9C44DA90EF060A8003AEBAA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/build/$(CONFIGURATION)"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; INFOPLIST_FILE = testapp/Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = BreakpadTest; - ZERO_LINK = NO; }; name = Release; }; F9C77DDC0F7DD5D00045F7DB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; - GCC_DYNAMIC_NO_PIC = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h"; INFOPLIST_FILE = "UnitTests-Info.plist"; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; - OTHER_LDFLAGS = ( - "-framework", - Cocoa, - "-framework", - SenTestingKit, - ); - PREBINDING = NO; PRODUCT_NAME = UnitTests; - USER_HEADER_SEARCH_PATHS = "../../ ../../common/mac/**"; WRAPPER_EXTENSION = octest; }; name = Debug; @@ -1945,25 +1949,14 @@ F9C77DDD0F7DD5D00045F7DB /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(DEVELOPER_FRAMEWORKS_DIR)\"", + ); GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_MODEL_TUNING = G5; INFOPLIST_FILE = "UnitTests-Info.plist"; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; - OTHER_LDFLAGS = ( - "-framework", - Cocoa, - "-framework", - SenTestingKit, - ); - PREBINDING = NO; PRODUCT_NAME = UnitTests; WRAPPER_EXTENSION = octest; - ZERO_LINK = NO; }; name = Release; }; diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm index 23e5d9bf..1d6b9287 100644 --- a/src/client/mac/Framework/Breakpad.mm +++ b/src/client/mac/Framework/Breakpad.mm @@ -265,7 +265,7 @@ bool Breakpad::ExceptionHandlerDirectCallback(void *context, //============================================================================= #pragma mark - -#include <mach-o/dyld.h> +#include <dlfcn.h> //============================================================================= // Returns the pathname to the Resources directory for this version of @@ -286,23 +286,16 @@ NSString * GetResourcePath() { // // Get the pathname to the code which contains this function - void *address = nil; - NSModule module = nil; - _dyld_lookup_and_bind_fully("_GetResourcePath", - &address, - &module); - - if (module && address) { - const char* moduleName = NSNameOfModule(module); - if (moduleName) { - // The "Resources" directory should be in the same directory as the - // executable code, since that's how the Breakpad framework is built. - resourcePath = [NSString stringWithUTF8String:moduleName]; - resourcePath = [resourcePath stringByDeletingLastPathComponent]; - resourcePath = [resourcePath stringByAppendingPathComponent:@"Resources/"]; - } else { - DEBUGLOG(stderr, "Missing moduleName\n"); - } + Dl_info info; + if (dladdr((const void*)GetResourcePath, &info) != 0) { + NSFileManager *filemgr = [NSFileManager defaultManager]; + NSString *filePath + = [filemgr stringWithFileSystemRepresentation:info.dli_fname + length:strlen(info.dli_fname)]; + NSString *bundlePath = [filePath stringByDeletingLastPathComponent]; + // The "Resources" directory should be in the same directory as the + // executable code, since that's how the Breakpad framework is built. + resourcePath = [bundlePath stringByAppendingPathComponent:@"Resources/"]; } else { DEBUGLOG(stderr, "Could not find GetResourcePath\n"); // fallback plan @@ -573,7 +566,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { struct timeval tv; gettimeofday(&tv, NULL); char timeStartedString[32]; - sprintf(timeStartedString, "%d", tv.tv_sec); + sprintf(timeStartedString, "%zd", tv.tv_sec); dictionary.SetKeyValue(BREAKPAD_PROCESS_START_TIME, timeStartedString); @@ -591,7 +584,7 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { // For each key-value pair, call BreakpadAddUploadParameter() NSEnumerator *keyEnumerator = [serverParameters keyEnumerator]; NSString *aParameter; - while (aParameter = [keyEnumerator nextObject]) { + while ((aParameter = [keyEnumerator nextObject])) { BreakpadAddUploadParameter(this, aParameter, [serverParameters objectForKey:aParameter]); } diff --git a/src/client/mac/Framework/OnDemandServer.mm b/src/client/mac/Framework/OnDemandServer.mm index 11b126c2..38685460 100644 --- a/src/client/mac/Framework/OnDemandServer.mm +++ b/src/client/mac/Framework/OnDemandServer.mm @@ -116,7 +116,7 @@ void OnDemandServer::LaunchOnDemand() { // and holding on to this port delays launching until the current process // exits! mach_port_deallocate(mach_task_self(), server_port_); - server_port_ = NULL; + server_port_ = MACH_PORT_DEAD; // Now, the service is still registered and all we need to do is send // a mach message to the service port in order to launch the server. diff --git a/src/client/mac/crash_generation/Inspector.mm b/src/client/mac/crash_generation/Inspector.mm index d328ee5d..1fe2a208 100644 --- a/src/client/mac/crash_generation/Inspector.mm +++ b/src/client/mac/crash_generation/Inspector.mm @@ -44,6 +44,8 @@ #import "common/mac/SimpleStringDictionary.h" #import "common/mac/MachIPC.h" +#import "GTMDefines.h" + #import <Foundation/Foundation.h> #if VERBOSE @@ -91,14 +93,14 @@ static BOOL EnsureDirectoryPathExists(NSString *dirPath) { // Break up the difference into components NSString *diff = [dirPath substringFromIndex:[common length] + 1]; NSArray *components = [diff pathComponents]; - unsigned count = [components count]; + NSUInteger count = [components count]; // Rebuild the path one component at a time NSDictionary *attrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithUnsignedLong:0750] forKey:NSFilePosixPermissions]; path = common; - for (unsigned i = 0; i < count; ++i) { + for (NSUInteger i = 0; i < count; ++i) { path = [path stringByAppendingPathComponent:[components objectAtIndex:i]]; if (![mgr createDirectoryAtPath:path attributes:attrs]) @@ -329,7 +331,6 @@ kern_return_t Inspector::ReadMessages() { // we are expected to read. // Read each key/value pair, one mach message per key/value pair. for (unsigned int i = 0; i < info.parameter_count; ++i) { - MachReceiveMessage message; result = receive_port.WaitForMessage(&message, 1000); if(result == KERN_SUCCESS) { @@ -376,11 +377,11 @@ void Inspector::SetCrashTimeParameters() { if (processStartTimeString) { time_t processStartTime = strtol(processStartTimeString, NULL, 10); time_t processUptime = tv.tv_sec - processStartTime; - sprintf(processUptimeString, "%d", processUptime); + sprintf(processUptimeString, "%zd", processUptime); config_params_.SetKeyValue(BREAKPAD_PROCESS_UP_TIME, processUptimeString); } - sprintf(processCrashtimeString, "%d", tv.tv_sec); + sprintf(processCrashtimeString, "%zd", tv.tv_sec); config_params_.SetKeyValue(BREAKPAD_PROCESS_CRASH_TIME, processCrashtimeString); } diff --git a/src/client/mac/handler/breakpad_nlist_64.cc b/src/client/mac/handler/breakpad_nlist_64.cc index c220d88d..4b655c79 100644 --- a/src/client/mac/handler/breakpad_nlist_64.cc +++ b/src/client/mac/handler/breakpad_nlist_64.cc @@ -137,7 +137,7 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { breakpad_nlist space[BUFSIZ/sizeof (breakpad_nlist)]; const register char *s1, *s2; - register int n, m; + register register_t n, m; int maxlen, nreq; off_t sa; /* symbol address */ off_t ss; /* start of strings */ @@ -160,14 +160,14 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { (N_BADMAG(buf) && *((long *)&buf) != MH_MAGIC && NXSwapBigLongToHost(*((long *)&buf)) != FAT_MAGIC) && /* nealsid: The following is the big-endian ppc64 check */ - (*((uint32_t*)&buf)) != FAT_MAGIC) { + (*((long*)&buf)) != FAT_MAGIC) { return (-1); } /* Deal with fat file if necessary */ if (NXSwapBigLongToHost(*((long *)&buf)) == FAT_MAGIC || /* nealsid: The following is the big-endian ppc64 check */ - *((int*)&buf) == FAT_MAGIC) { + *((unsigned int *)&buf) == FAT_MAGIC) { struct host_basic_info hbi; struct fat_header fh; struct fat_arch *fat_archs, *fap; @@ -191,7 +191,7 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { } /* Convert fat_narchs to host byte order */ - fh.nfat_arch = NXSwapBigLongToHost(fh.nfat_arch); + fh.nfat_arch = NXSwapBigIntToHost(fh.nfat_arch); /* Read in the fat archs */ fat_archs = (struct fat_arch *)malloc(fh.nfat_arch * @@ -201,7 +201,7 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { } if (read(fd, (char *)fat_archs, sizeof(struct fat_arch) * fh.nfat_arch) != - sizeof(struct fat_arch) * fh.nfat_arch) { + (ssize_t)sizeof(struct fat_arch) * fh.nfat_arch) { free(fat_archs); return (-1); } @@ -212,15 +212,15 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { */ for (i = 0; i < fh.nfat_arch; i++) { fat_archs[i].cputype = - NXSwapBigLongToHost(fat_archs[i].cputype); + NXSwapBigIntToHost(fat_archs[i].cputype); fat_archs[i].cpusubtype = - NXSwapBigLongToHost(fat_archs[i].cpusubtype); + NXSwapBigIntToHost(fat_archs[i].cpusubtype); fat_archs[i].offset = - NXSwapBigLongToHost(fat_archs[i].offset); + NXSwapBigIntToHost(fat_archs[i].offset); fat_archs[i].size = - NXSwapBigLongToHost(fat_archs[i].size); + NXSwapBigIntToHost(fat_archs[i].size); fat_archs[i].align = - NXSwapBigLongToHost(fat_archs[i].align); + NXSwapBigIntToHost(fat_archs[i].align); } fap = NULL; @@ -257,7 +257,7 @@ __breakpad_fdnlist_64(int fd, breakpad_nlist *list, const char **symbolNames) { } } - if (*((int *)&buf) == MH_MAGIC_64) { + if (*((unsigned int *)&buf) == MH_MAGIC_64) { struct mach_header_64 mh; struct load_command *load_commands, *lcp; struct symtab_command *stp; diff --git a/src/client/mac/handler/dynamic_images.cc b/src/client/mac/handler/dynamic_images.cc index ac1cca40..73c013d4 100644 --- a/src/client/mac/handler/dynamic_images.cc +++ b/src/client/mac/handler/dynamic_images.cc @@ -129,7 +129,7 @@ static void* ReadTaskString(task_port_t target_task, size_to_end > kMaxStringLength ? kMaxStringLength : size_to_end; kern_return_t kr; - return ReadTaskMemory(target_task, address, size_to_read, &kr); + return ReadTaskMemory(target_task, address, (size_t)size_to_read, &kr); } return NULL; @@ -276,13 +276,11 @@ void DynamicImage::Print() { //============================================================================== // Loads information about dynamically loaded code in the given task. DynamicImages::DynamicImages(mach_port_t task) - : task_(task) { + : task_(task), image_list_() { ReadImageInfoForTask(); } -void* DynamicImages::GetDyldAllImageInfosPointer() -{ - +void* DynamicImages::GetDyldAllImageInfosPointer() { const char *imageSymbolName = "_dyld_all_image_infos"; const char *dyldPath = "/usr/lib/dyld"; #ifndef __LP64__ @@ -364,7 +362,7 @@ void DynamicImages::ReadImageInfoForTask() { // Now determine the total amount we really want to read based on the // size of the load commands. We need the header plus all of the // load commands. - unsigned int header_size = + size_t header_size = sizeof(breakpad_mach_header) + header->sizeofcmds; free(header); diff --git a/src/client/mac/handler/dynamic_images.h b/src/client/mac/handler/dynamic_images.h index 85ba8cf9..aa74b746 100644 --- a/src/client/mac/handler/dynamic_images.h +++ b/src/client/mac/handler/dynamic_images.h @@ -103,7 +103,7 @@ class MachHeader { class DynamicImage { public: DynamicImage(breakpad_mach_header *header, // we take ownership - int header_size, // includes load commands + size_t header_size, // includes load commands breakpad_mach_header *load_address, char *inFilePath, uintptr_t image_mod_date, @@ -112,7 +112,12 @@ class DynamicImage { header_size_(header_size), load_address_(load_address), file_mod_date_(image_mod_date), - task_(task) { + task_(task), + vmaddr_(0), + vmsize_(0), + slide_(0), + version_(0), + file_path_(NULL) { InitializeFilePath(inFilePath); CalculateMemoryAndVersionInfo(); } @@ -128,7 +133,7 @@ class DynamicImage { breakpad_mach_header *GetMachHeader() {return header_;} // Size of mach_header plus load commands - int GetHeaderSize() const {return header_size_;} + size_t GetHeaderSize() const {return header_size_;} // Full path to mach-o binary char *GetFilePath() {return file_path_;} @@ -160,6 +165,9 @@ class DynamicImage { void Print(); private: + DynamicImage(const DynamicImage &); + DynamicImage &operator=(const DynamicImage &); + friend class DynamicImages; // Sanity checking @@ -180,7 +188,7 @@ class DynamicImage { void CalculateMemoryAndVersionInfo(); breakpad_mach_header *header_; // our local copy of the header - int header_size_; // mach_header plus load commands + size_t header_size_; // mach_header plus load commands breakpad_mach_header *load_address_; // base address image is mapped into mach_vm_address_t vmaddr_; mach_vm_size_t vmsize_; @@ -231,13 +239,13 @@ class DynamicImages { explicit DynamicImages(mach_port_t task); ~DynamicImages() { - for (int i = 0; i < (int)image_list_.size(); ++i) { + for (int i = 0; i < GetImageCount(); ++i) { delete image_list_[i]; } } // Returns the number of dynamically loaded mach-o images. - int GetImageCount() const {return image_list_.size();} + int GetImageCount() const {return static_cast<int>(image_list_.size());} // Returns an individual image. DynamicImage *GetImage(int i) { @@ -256,14 +264,14 @@ class DynamicImages { // Debugging void Print() { - for (int i = 0; i < (int)image_list_.size(); ++i) { + for (int i = 0; i < GetImageCount(); ++i) { image_list_[i]->Print(); } } void TestPrint() { const breakpad_mach_header *header; - for (int i = 0; i < (int)image_list_.size(); ++i) { + for (int i = 0; i < GetImageCount(); ++i) { printf("dyld: %p: name = %s\n", _dyld_get_image_header(i), _dyld_get_image_name(i) ); diff --git a/src/client/mac/handler/exception_handler_test.cc b/src/client/mac/handler/exception_handler_test.cc index 0a1ecbe7..a8d45387 100644 --- a/src/client/mac/handler/exception_handler_test.cc +++ b/src/client/mac/handler/exception_handler_test.cc @@ -61,8 +61,8 @@ static void SoonToCrash() { Crasher(); } -bool MDCallback(const char *dump_dir, const char *file_name, - void *context, bool success) { +static bool MDCallback(const char *dump_dir, const char *file_name, + void *context, bool success) { string path(dump_dir); string dest(dump_dir); path.append(file_name); diff --git a/src/client/mac/handler/minidump_generator.cc b/src/client/mac/handler/minidump_generator.cc index f6d0638c..ea0ec9ae 100644 --- a/src/client/mac/handler/minidump_generator.cc +++ b/src/client/mac/handler/minidump_generator.cc @@ -57,7 +57,8 @@ namespace google_breakpad { // constructor when generating from within the crashed process MinidumpGenerator::MinidumpGenerator() - : exception_type_(0), + : writer_(), + exception_type_(0), exception_code_(0), exception_subcode_(0), exception_thread_(0), @@ -71,12 +72,14 @@ MinidumpGenerator::MinidumpGenerator() // crashed process MinidumpGenerator::MinidumpGenerator(mach_port_t crashing_task, mach_port_t handler_thread) - : exception_type_(0), + : writer_(), + exception_type_(0), exception_code_(0), exception_subcode_(0), exception_thread_(0), crashing_task_(crashing_task), - handler_thread_(handler_thread) { + handler_thread_(handler_thread), + dynamic_images_(NULL) { if (crashing_task != mach_task_self()) { dynamic_images_ = new DynamicImages(crashing_task_); } else { @@ -488,7 +491,7 @@ bool MinidumpGenerator::WriteContext(breakpad_thread_state_data_t state, // not used in the flags register. Since the minidump format // specifies 32 bits for the flags register, we can truncate safely // with no loss. - context_ptr->eflags = machine_state->__rflags; + context_ptr->eflags = static_cast<u_int32_t>(machine_state->__rflags); AddReg(cs); AddReg(fs); AddReg(gs); @@ -727,7 +730,7 @@ bool MinidumpGenerator::WriteModuleStream(unsigned int index, return false; module->base_of_image = image->GetVMAddr() + image->GetVMAddrSlide(); - module->size_of_image = image->GetVMSize(); + module->size_of_image = static_cast<u_int32_t>(image->GetVMSize()); module->module_name_rva = string_location.rva; // We'll skip the executable module, because they don't have @@ -794,7 +797,7 @@ bool MinidumpGenerator::WriteModuleStream(unsigned int index, return false; module->base_of_image = seg->vmaddr + slide; - module->size_of_image = seg->vmsize; + module->size_of_image = static_cast<u_int32_t>(seg->vmsize); module->module_name_rva = string_location.rva; if (!WriteCVRecord(module, cpu_type, name)) @@ -943,8 +946,10 @@ bool MinidumpGenerator::WriteMiscInfoStream(MDRawDirectory *misc_info_stream) { struct rusage usage; if (getrusage(RUSAGE_SELF, &usage) != -1) { // Omit the fractional time since the MDRawMiscInfo only wants seconds - info_ptr->process_user_time = usage.ru_utime.tv_sec; - info_ptr->process_kernel_time = usage.ru_stime.tv_sec; + info_ptr->process_user_time = + static_cast<u_int32_t>(usage.ru_utime.tv_sec); + info_ptr->process_kernel_time = + static_cast<u_int32_t>(usage.ru_stime.tv_sec); } int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, info_ptr->process_id }; size_t size; @@ -956,20 +961,22 @@ bool MinidumpGenerator::WriteMiscInfoStream(MDRawDirectory *misc_info_stream) { true) == KERN_SUCCESS) { struct kinfo_proc *proc = (struct kinfo_proc *)addr; if (!sysctl(mib, sizeof(mib) / sizeof(mib[0]), proc, &size, NULL, 0)) - info_ptr->process_create_time = proc->kp_proc.p_starttime.tv_sec; + info_ptr->process_create_time = + static_cast<u_int32_t>(proc->kp_proc.p_starttime.tv_sec); mach_vm_deallocate(mach_task_self(), addr, size); } } // Speed uint64_t speed; + const uint64_t kOneMillion = 1000 * 1000; size = sizeof(speed); sysctlbyname("hw.cpufrequency_max", &speed, &size, NULL, 0); - info_ptr->processor_max_mhz = speed / (1000 * 1000); - info_ptr->processor_mhz_limit = speed / (1000 * 1000); + info_ptr->processor_max_mhz = static_cast<u_int32_t>(speed / kOneMillion); + info_ptr->processor_mhz_limit = static_cast<u_int32_t>(speed / kOneMillion); size = sizeof(speed); sysctlbyname("hw.cpufrequency", &speed, &size, NULL, 0); - info_ptr->processor_current_mhz = speed / (1000 * 1000); + info_ptr->processor_current_mhz = static_cast<u_int32_t>(speed / kOneMillion); return true; } diff --git a/src/client/mac/handler/protected_memory_allocator.cc b/src/client/mac/handler/protected_memory_allocator.cc index 10768541..6142ad12 100644 --- a/src/client/mac/handler/protected_memory_allocator.cc +++ b/src/client/mac/handler/protected_memory_allocator.cc @@ -59,7 +59,7 @@ ProtectedMemoryAllocator::~ProtectedMemoryAllocator() { } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -char *ProtectedMemoryAllocator::Allocate(size_t bytes) { +char *ProtectedMemoryAllocator::Allocate(vm_size_t bytes) { if (valid_ && next_alloc_offset_ + bytes <= pool_size_) { char *p = (char*)base_address_ + next_alloc_offset_; next_alloc_offset_ += bytes; diff --git a/src/client/mac/handler/protected_memory_allocator.h b/src/client/mac/handler/protected_memory_allocator.h index ed4f51d5..7e188db2 100644 --- a/src/client/mac/handler/protected_memory_allocator.h +++ b/src/client/mac/handler/protected_memory_allocator.h @@ -53,7 +53,7 @@ class ProtectedMemoryAllocator { // Fails by returning NULL is no more space is available. // Please note that the pointers returned from this method should not // be freed in any way (for example by calling free() on them ). - char * Allocate(size_t n); + char * Allocate(vm_size_t n); // Returns the base address of the allocation pool. char * GetBaseAddress() { return (char*)base_address_; } @@ -78,7 +78,7 @@ class ProtectedMemoryAllocator { private: vm_size_t pool_size_; vm_address_t base_address_; - int next_alloc_offset_; + vm_size_t next_alloc_offset_; bool valid_; }; diff --git a/src/client/mac/sender/crash_report_sender.h b/src/client/mac/sender/crash_report_sender.h index ca5b3079..c0728ca8 100644 --- a/src/client/mac/sender/crash_report_sender.h +++ b/src/client/mac/sender/crash_report_sender.h @@ -35,6 +35,7 @@ #include <Foundation/Foundation.h> #include "client/mac/Framework/Breakpad.h" +#import "GTMDefines.h" #define kClientIdPreferenceKey @"clientid" @@ -53,10 +54,10 @@ extern NSString *const kDefaultServerType; // work in the middle of a validation. @interface LengthLimitingTextField : NSTextField { @private - unsigned int maximumLength_; + NSUInteger maximumLength_; } -- (void) setMaximumLength:(unsigned int)maxLength; +- (void)setMaximumLength:(NSUInteger)maxLength; @end @interface Reporter : NSObject { diff --git a/src/client/mac/sender/crash_report_sender.m b/src/client/mac/sender/crash_report_sender.m index 6aa8887d..cdee262b 100644 --- a/src/client/mac/sender/crash_report_sender.m +++ b/src/client/mac/sender/crash_report_sender.m @@ -56,20 +56,20 @@ NSString *const kDefaultServerType = @"google"; @interface NSView (ResizabilityExtentions) // Shifts the view vertically by the given amount. -- (void)breakpad_shiftVertically:(float)offset; +- (void)breakpad_shiftVertically:(CGFloat)offset; // Shifts the view horizontally by the given amount. -- (void)breakpad_shiftHorizontally:(float)offset; +- (void)breakpad_shiftHorizontally:(CGFloat)offset; @end @implementation NSView (ResizabilityExtentions) -- (void)breakpad_shiftVertically:(float)offset { +- (void)breakpad_shiftVertically:(CGFloat)offset { NSPoint origin = [self frame].origin; origin.y += offset; [self setFrameOrigin:origin]; } -- (void)breakpad_shiftHorizontally:(float)offset { +- (void)breakpad_shiftHorizontally:(CGFloat)offset { NSPoint origin = [self frame].origin; origin.x += offset; [self setFrameOrigin:origin]; @@ -79,11 +79,11 @@ NSString *const kDefaultServerType = @"google"; @interface NSWindow (ResizabilityExtentions) // Adjusts the window height by heightDelta relative to its current height, // keeping all the content at the same size. -- (void)breakpad_adjustHeight:(float)heightDelta; +- (void)breakpad_adjustHeight:(CGFloat)heightDelta; @end @implementation NSWindow (ResizabilityExtentions) -- (void)breakpad_adjustHeight:(float)heightDelta { +- (void)breakpad_adjustHeight:(CGFloat)heightDelta { [[self contentView] setAutoresizesSubviews:NO]; NSRect windowFrame = [self frame]; @@ -101,16 +101,16 @@ NSString *const kDefaultServerType = @"google"; // Grows or shrinks the height of the field to the minimum required to show the // current text, preserving the existing width and origin. // Returns the change in height. -- (float)breakpad_adjustHeightToFit; +- (CGFloat)breakpad_adjustHeightToFit; // Grows or shrinks the width of the field to the minimum required to show the // current text, preserving the existing height and origin. // Returns the change in width. -- (float)breakpad_adjustWidthToFit; +- (CGFloat)breakpad_adjustWidthToFit; @end @implementation NSTextField (ResizabilityExtentions) -- (float)breakpad_adjustHeightToFit { +- (CGFloat)breakpad_adjustHeightToFit { NSRect oldFrame = [self frame]; // Starting with the 10.5 SDK, height won't grow, so make it huge to start. NSRect presizeFrame = oldFrame; @@ -125,7 +125,7 @@ NSString *const kDefaultServerType = @"google"; return newSize.height - NSHeight(oldFrame); } -- (float)breakpad_adjustWidthToFit { +- (CGFloat)breakpad_adjustWidthToFit { NSRect oldFrame = [self frame]; [self sizeToFit]; return NSWidth([self frame]) - NSWidth(oldFrame); @@ -136,11 +136,11 @@ NSString *const kDefaultServerType = @"google"; // Resizes to fit the label using IB-style size-to-fit metrics and enforcing a // minimum width of 70, while preserving the right edge location. // Returns the change in width. -- (float)breakpad_smartSizeToFit; +- (CGFloat)breakpad_smartSizeToFit; @end @implementation NSButton (ResizabilityExtentions) -- (float)breakpad_smartSizeToFit { +- (CGFloat)breakpad_smartSizeToFit { NSRect oldFrame = [self frame]; [self sizeToFit]; NSRect newFrame = [self frame]; @@ -218,7 +218,8 @@ NSString *const kDefaultServerType = @"google"; // Run an alert window with the given timeout. Returns // NSRunStoppedResponse if the timeout is exceeded. A timeout of 0 // queues the message immediately in the modal run loop. -- (int)runModalWindow:(NSWindow*)window withTimeout:(NSTimeInterval)timeout; +- (NSInteger)runModalWindow:(NSWindow*)window + withTimeout:(NSTimeInterval)timeout; // Returns a unique client id (user-specific), creating a persistent // one in the user defaults, if necessary. @@ -386,7 +387,7 @@ NSString *const kDefaultServerType = @"google"; } // Otherwise, if we have no client id, generate one! - srandom([[NSDate date] timeIntervalSince1970]); + srandom((int)[[NSDate date] timeIntervalSince1970]); long clientId1 = random(); long clientId2 = random(); long clientId3 = random(); @@ -403,8 +404,8 @@ NSString *const kDefaultServerType = @"google"; unsigned int logFileCounter = 0; NSString *logPath; - int logFileTailSize = [[parameters_ objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE] - intValue]; + size_t logFileTailSize = + [[parameters_ objectForKey:@BREAKPAD_LOGFILE_UPLOAD_SIZE] intValue]; NSMutableArray *logFilenames; // An array of NSString, one per log file logFilenames = [[NSMutableArray alloc] init]; @@ -544,7 +545,7 @@ NSString *const kDefaultServerType = @"google"; // Get the timeout value for the notification. NSTimeInterval timeout = [self messageTimeout]; - int buttonPressed = NSAlertAlternateReturn; + NSInteger buttonPressed = NSAlertAlternateReturn; // Determine whether we should create a text box for user feedback. if ([self shouldRequestComments]) { BOOL didLoadNib = [NSBundle loadNibNamed:@"Breakpad" owner:self]; @@ -592,7 +593,7 @@ NSString *const kDefaultServerType = @"google"; [commentMessage_ setStringValue:[NSString stringWithFormat:@"%@\n\n%@", [self explanatoryDialogText], NSLocalizedString(@"commentsMsg", @"")]]; - float commentHeightDelta = [commentMessage_ breakpad_adjustHeightToFit]; + CGFloat commentHeightDelta = [commentMessage_ breakpad_adjustHeightToFit]; [headerBox_ breakpad_shiftVertically:commentHeightDelta]; [alertWindow_ breakpad_adjustHeight:commentHeightDelta]; @@ -600,7 +601,7 @@ NSString *const kDefaultServerType = @"google"; // section depending on whether or not we are asking for email. if (includeEmail) { [emailMessage_ setStringValue:NSLocalizedString(@"emailMsg", @"")]; - float emailHeightDelta = [emailMessage_ breakpad_adjustHeightToFit]; + CGFloat emailHeightDelta = [emailMessage_ breakpad_adjustHeightToFit]; [preEmailBox_ breakpad_shiftVertically:emailHeightDelta]; [alertWindow_ breakpad_adjustHeight:emailHeightDelta]; } else { @@ -609,7 +610,7 @@ NSString *const kDefaultServerType = @"google"; // Localize the email label, and shift the associated text field. [emailLabel_ setStringValue:NSLocalizedString(@"emailLabel", @"")]; - float emailLabelWidthDelta = [emailLabel_ breakpad_adjustWidthToFit]; + CGFloat emailLabelWidthDelta = [emailLabel_ breakpad_adjustWidthToFit]; [emailEntryField_ breakpad_shiftHorizontally:emailLabelWidthDelta]; // Localize the placeholder text. @@ -620,12 +621,12 @@ NSString *const kDefaultServerType = @"google"; // Localize the privacy policy label, and keep it right-aligned to the arrow. [privacyLinkLabel_ setStringValue:NSLocalizedString(@"privacyLabel", @"")]; - float privacyLabelWidthDelta = [privacyLinkLabel_ breakpad_adjustWidthToFit]; + CGFloat privacyLabelWidthDelta = [privacyLinkLabel_ breakpad_adjustWidthToFit]; [privacyLinkLabel_ breakpad_shiftHorizontally:(-privacyLabelWidthDelta)]; // Localize the buttons, and keep the cancel button at the right distance. [sendButton_ setTitle:NSLocalizedString(@"sendReportButton", @"")]; - float sendButtonWidthDelta = [sendButton_ breakpad_smartSizeToFit]; + CGFloat sendButtonWidthDelta = [sendButton_ breakpad_smartSizeToFit]; [cancelButton_ breakpad_shiftHorizontally:(-sendButtonWidthDelta)]; [cancelButton_ setTitle:NSLocalizedString(@"cancelButton", @"")]; [cancelButton_ breakpad_smartSizeToFit]; @@ -633,12 +634,13 @@ NSString *const kDefaultServerType = @"google"; - (void)removeEmailPrompt { [emailSectionBox_ setHidden:YES]; - float emailSectionHeight = NSHeight([emailSectionBox_ frame]); + CGFloat emailSectionHeight = NSHeight([emailSectionBox_ frame]); [preEmailBox_ breakpad_shiftVertically:(-emailSectionHeight)]; [alertWindow_ breakpad_adjustHeight:(-emailSectionHeight)]; } -- (int)runModalWindow:(NSWindow*)window withTimeout:(NSTimeInterval)timeout { +- (NSInteger)runModalWindow:(NSWindow*)window + withTimeout:(NSTimeInterval)timeout { // Queue a |stopModal| message to be performed in |timeout| seconds. if (timeout > 0.001) { remainingDialogTime_ = timeout; @@ -653,7 +655,7 @@ NSString *const kDefaultServerType = @"google"; // Run the window modally and wait for either a |stopModal| message or a // button click. [NSApp activateIgnoringOtherApps:YES]; - int returnMethod = [NSApp runModalForWindow:window]; + NSInteger returnMethod = [NSApp runModalForWindow:window]; return returnMethod; } @@ -717,7 +719,7 @@ doCommandBySelector:(SEL)commandSelector { if (remainingDialogTime_ > 59) { // calculate minutes remaining for UI purposes - displayedTimeLeft = (remainingDialogTime_ / 60); + displayedTimeLeft = (int)(remainingDialogTime_ / 60); if (displayedTimeLeft == 1) { formatString = NSLocalizedString(@"countdownMsgMinuteSingular", @""); @@ -725,8 +727,8 @@ doCommandBySelector:(SEL)commandSelector { formatString = NSLocalizedString(@"countdownMsgMinutesPlural", @""); } } else { - displayedTimeLeft = remainingDialogTime_; - if (remainingDialogTime_ == 1) { + displayedTimeLeft = (int)remainingDialogTime_; + if (displayedTimeLeft == 1) { formatString = NSLocalizedString(@"countdownMsgSecondSingular", @""); } else { formatString = NSLocalizedString(@"countdownMsgSecondsPlural", @""); @@ -797,7 +799,8 @@ doCommandBySelector:(SEL)commandSelector { NSTimeInterval now = CFAbsoluteTimeGetCurrent(); NSTimeInterval spanSeconds = (now - lastTime); - [programDict setObject:[NSNumber numberWithFloat:now] forKey:kLastSubmission]; + [programDict setObject:[NSNumber numberWithDouble:now] + forKey:kLastSubmission]; [ud setObject:programDict forKey:program]; [ud synchronize]; @@ -1055,7 +1058,7 @@ doCommandBySelector:(SEL)commandSelector { //============================================================================= @implementation LengthLimitingTextField -- (void) setMaximumLength:(unsigned int)maxLength { +- (void)setMaximumLength:(NSUInteger)maxLength { maximumLength_ = maxLength; } @@ -1072,7 +1075,7 @@ shouldChangeTextInRange:(NSRange)affectedCharRange } // Figure out what the new string length would be, taking into // account user selections. - int newStringLength = + NSUInteger newStringLength = [[textView string] length] - affectedCharRange.length + [replacementString length]; if (newStringLength > maximumLength_) { @@ -1088,7 +1091,7 @@ shouldChangeTextInRange:(NSRange)affectedCharRange NSText* fieldEditor = [self currentEditor]; if (fieldEditor != nil) { // Check for a single "Command" modifier - unsigned int modifiers = [event modifierFlags]; + NSUInteger modifiers = [event modifierFlags]; modifiers &= NSDeviceIndependentModifierFlagsMask; if (modifiers == NSCommandKeyMask) { // Now, check for Select All, Cut, Copy, or Paste key equivalents. diff --git a/src/client/mac/testapp/Controller.m b/src/client/mac/testapp/Controller.m index a324f147..7831a156 100644 --- a/src/client/mac/testapp/Controller.m +++ b/src/client/mac/testapp/Controller.m @@ -31,6 +31,7 @@ #import "Controller.h" #import "TestClass.h" +#import "GTMDefines.h" #include <unistd.h> #include <mach/mach.h> @@ -51,7 +52,7 @@ } - (IBAction)forkTestOptions:(id)sender { - int tag = [[sender selectedCell] tag]; + NSInteger tag = [[sender selectedCell] tag]; NSLog(@"sender tag: %d", tag); if (tag <= 2) { bpForkOption = tag; @@ -129,11 +130,11 @@ } - (IBAction)crash:(id)sender { - int tag = [sender tag]; + NSInteger tag = [sender tag]; if (tag == 1) { [NSObject cancelPreviousPerformRequestsWithTarget:self]; - [self performSelector:@selector(causeCrash) withObject:nil afterDelay:10]; + [self performSelector:@selector(causeCrash) withObject:nil afterDelay:10.0]; [sender setState:NSOnState]; return; } diff --git a/src/client/mac/testapp/English.lproj/MainMenu.xib b/src/client/mac/testapp/English.lproj/MainMenu.xib index ebc623c4..840c0db3 100644 --- a/src/client/mac/testapp/English.lproj/MainMenu.xib +++ b/src/client/mac/testapp/English.lproj/MainMenu.xib @@ -3,25 +3,26 @@ <data> <int key="IBDocument.SystemTarget">1050</int> <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">762</string> + <string key="IBDocument.InterfaceBuilderVersion">788</string> <string key="IBDocument.AppKitVersion">1038.29</string> <string key="IBDocument.HIToolboxVersion">461.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys" id="0"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">788</string> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="220"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> - <reference key="IBDocument.PluginDependencies" ref="0"/> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference key="dict.sortedKeys" ref="0"/> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -52,7 +53,7 @@ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="814272478"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -61,6 +62,7 @@ <int key="NSvFlags">301</int> <string key="NSFrame">{{14, 140}, {292, 32}}</string> <reference key="NSSuperview" ref="814272478"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="539552922"> <int key="NSCellFlags">67239424</int> @@ -88,6 +90,7 @@ <int key="NSvFlags">301</int> <string key="NSFrame">{{14, 76}, {292, 32}}</string> <reference key="NSSuperview" ref="814272478"/> + <reference key="NSWindow"/> <int key="NSTag">2</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="1010617379"> @@ -113,6 +116,7 @@ <int key="NSvFlags">301</int> <string key="NSFrame">{{14, 108}, {292, 32}}</string> <reference key="NSSuperview" ref="814272478"/> + <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="547901497"> @@ -138,6 +142,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{14, 44}, {292, 32}}</string> <reference key="NSSuperview" ref="814272478"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="353736234"> <int key="NSCellFlags">67239424</int> @@ -158,6 +163,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{14, 12}, {292, 32}}</string> <reference key="NSSuperview" ref="814272478"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="775425649"> <int key="NSCellFlags">67239424</int> @@ -175,6 +181,8 @@ </object> </object> <string key="NSFrameSize">{320, 188}</string> + <reference key="NSSuperview"/> + <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> @@ -782,7 +790,7 @@ <nil key="NSViewClass"/> <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <object class="NSView" key="NSWindowView" id="594333702"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -804,7 +812,7 @@ <reference key="NSControlView" ref="891367997"/> <int key="NSTag">5</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSButtonImageSource" key="NSAlternateImage" id="619763889"> <string key="NSImageName">NSRadioButton</string> </object> @@ -821,7 +829,7 @@ <reference key="NSControlView" ref="891367997"/> <int key="NSTag">6</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -930,7 +938,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <reference key="NSControlView" ref="891367997"/> <int key="NSTag">7</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1040,7 +1048,7 @@ AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes <reference key="NSSupport" ref="933596199"/> <int key="NSTag">5</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="619763889"/> <string key="NSAlternateContents"/> <string key="NSKeyEquivalent"/> @@ -1080,7 +1088,7 @@ AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes <reference key="NSSupport" ref="933596199"/> <reference key="NSControlView" ref="7590393"/> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="619763889"/> <string key="NSAlternateContents"/> <string key="NSKeyEquivalent"/> @@ -1095,7 +1103,7 @@ AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes <reference key="NSControlView" ref="7590393"/> <int key="NSTag">1</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1201,7 +1209,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <reference key="NSControlView" ref="7590393"/> <int key="NSTag">2</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1309,7 +1317,7 @@ AAAAAAAAAAAAAAAAAABtbW9kAAAAAAAAIvAAACaQAAAAAMJtVwAAAAAAAAAAAAAAAAAAAAAAA</bytes <string key="NSContents">Radio</string> <reference key="NSSupport" ref="933596199"/> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1378,7 +1386,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference key="NSControlView" ref="1050951576"/> <int key="NSTag">3</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <reference key="NSAlternateImage" ref="619763889"/> <string key="NSAlternateContents"/> <string key="NSKeyEquivalent"/> @@ -1393,7 +1401,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference key="NSControlView" ref="1050951576"/> <int key="NSTag">4</int> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1502,7 +1510,7 @@ QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA</bytes> <string key="NSContents">Radio</string> <reference key="NSSupport" ref="933596199"/> <int key="NSButtonFlags">1211912703</int> - <int key="NSButtonFlags2">128</int> + <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> <int key="NSImageFlags">549453824</int> <string key="NSSize">{18, 18}</string> @@ -1579,6 +1587,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <string key="NSFrameSize">{787, 260}</string> + <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> @@ -2614,194 +2623,382 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>-3.IBPluginDependency</string> <string>-3.ImportedFromIB2</string> + <string>103.IBPluginDependency</string> <string>103.ImportedFromIB2</string> + <string>106.IBPluginDependency</string> <string>106.ImportedFromIB2</string> + <string>111.IBPluginDependency</string> <string>111.ImportedFromIB2</string> + <string>112.IBPluginDependency</string> <string>112.ImportedFromIB2</string> + <string>124.IBPluginDependency</string> <string>124.ImportedFromIB2</string> + <string>125.IBPluginDependency</string> <string>125.ImportedFromIB2</string> + <string>126.IBPluginDependency</string> <string>126.ImportedFromIB2</string> + <string>129.IBPluginDependency</string> <string>129.ImportedFromIB2</string> + <string>130.IBPluginDependency</string> <string>130.ImportedFromIB2</string> + <string>131.IBPluginDependency</string> <string>131.ImportedFromIB2</string> + <string>134.IBPluginDependency</string> <string>134.ImportedFromIB2</string> + <string>136.IBPluginDependency</string> <string>136.ImportedFromIB2</string> + <string>143.IBPluginDependency</string> <string>143.ImportedFromIB2</string> + <string>144.IBPluginDependency</string> <string>144.ImportedFromIB2</string> + <string>145.IBPluginDependency</string> <string>145.ImportedFromIB2</string> + <string>149.IBPluginDependency</string> <string>149.ImportedFromIB2</string> + <string>150.IBPluginDependency</string> <string>150.ImportedFromIB2</string> + <string>154.IBPluginDependency</string> <string>154.ImportedFromIB2</string> + <string>155.IBPluginDependency</string> <string>155.ImportedFromIB2</string> + <string>156.IBPluginDependency</string> <string>156.ImportedFromIB2</string> + <string>157.IBPluginDependency</string> <string>157.ImportedFromIB2</string> + <string>158.IBPluginDependency</string> <string>158.ImportedFromIB2</string> + <string>159.IBPluginDependency</string> <string>159.ImportedFromIB2</string> + <string>160.IBPluginDependency</string> <string>160.ImportedFromIB2</string> + <string>161.IBPluginDependency</string> <string>161.ImportedFromIB2</string> + <string>162.IBPluginDependency</string> <string>162.ImportedFromIB2</string> + <string>163.IBPluginDependency</string> <string>163.ImportedFromIB2</string> + <string>164.IBPluginDependency</string> <string>164.ImportedFromIB2</string> + <string>167.IBPluginDependency</string> <string>167.ImportedFromIB2</string> + <string>168.IBPluginDependency</string> <string>168.ImportedFromIB2</string> + <string>169.IBPluginDependency</string> <string>169.ImportedFromIB2</string> + <string>171.IBPluginDependency</string> <string>171.ImportedFromIB2</string> + <string>172.IBPluginDependency</string> <string>172.ImportedFromIB2</string> + <string>173.IBPluginDependency</string> <string>173.ImportedFromIB2</string> + <string>174.IBPluginDependency</string> <string>174.ImportedFromIB2</string> + <string>184.IBPluginDependency</string> <string>184.ImportedFromIB2</string> + <string>185.IBPluginDependency</string> <string>185.ImportedFromIB2</string> + <string>187.IBPluginDependency</string> <string>187.ImportedFromIB2</string> + <string>189.IBPluginDependency</string> <string>189.ImportedFromIB2</string> + <string>19.IBPluginDependency</string> <string>19.ImportedFromIB2</string> + <string>191.IBPluginDependency</string> <string>191.ImportedFromIB2</string> + <string>196.IBPluginDependency</string> <string>196.ImportedFromIB2</string> + <string>197.IBPluginDependency</string> <string>197.ImportedFromIB2</string> + <string>2.IBPluginDependency</string> <string>2.ImportedFromIB2</string> + <string>204.IBPluginDependency</string> <string>204.ImportedFromIB2</string> + <string>206.IBPluginDependency</string> <string>206.ImportedFromIB2</string> <string>207.ImportedFromIB2</string> <string>21.IBEditorWindowLastContentRect</string> + <string>21.IBPluginDependency</string> <string>21.IBWindowTemplateEditedContentRect</string> <string>21.ImportedFromIB2</string> <string>21.windowTemplate.hasMinSize</string> <string>21.windowTemplate.minSize</string> + <string>210.IBPluginDependency</string> <string>210.ImportedFromIB2</string> + <string>212.IBPluginDependency</string> <string>212.ImportedFromIB2</string> + <string>218.IBPluginDependency</string> <string>218.ImportedFromIB2</string> <string>220.IBEditorWindowLastContentRect</string> + <string>220.IBPluginDependency</string> <string>220.IBWindowTemplateEditedContentRect</string> <string>220.ImportedFromIB2</string> + <string>221.IBPluginDependency</string> <string>221.ImportedFromIB2</string> + <string>226.IBPluginDependency</string> <string>226.ImportedFromIB2</string> + <string>227.IBPluginDependency</string> <string>227.ImportedFromIB2</string> + <string>228.IBPluginDependency</string> <string>228.ImportedFromIB2</string> + <string>23.IBPluginDependency</string> <string>23.ImportedFromIB2</string> + <string>232.IBPluginDependency</string> <string>232.ImportedFromIB2</string> + <string>233.IBPluginDependency</string> <string>233.ImportedFromIB2</string> + <string>234.IBPluginDependency</string> <string>234.ImportedFromIB2</string> + <string>236.IBPluginDependency</string> <string>236.ImportedFromIB2</string> + <string>237.IBPluginDependency</string> <string>237.ImportedFromIB2</string> + <string>238.IBPluginDependency</string> <string>238.ImportedFromIB2</string> + <string>239.IBPluginDependency</string> <string>239.ImportedFromIB2</string> + <string>24.IBPluginDependency</string> <string>24.ImportedFromIB2</string> + <string>248.IBPluginDependency</string> <string>248.ImportedFromIB2</string> + <string>272.IBPluginDependency</string> <string>272.ImportedFromIB2</string> <string>29.IBEditorWindowLastContentRect</string> + <string>29.IBPluginDependency</string> <string>29.ImportedFromIB2</string> + <string>325.IBPluginDependency</string> <string>325.ImportedFromIB2</string> + <string>329.IBPluginDependency</string> + <string>330.IBPluginDependency</string> + <string>331.IBPluginDependency</string> + <string>332.IBPluginDependency</string> + <string>333.IBPluginDependency</string> + <string>334.IBPluginDependency</string> + <string>335.IBPluginDependency</string> + <string>336.IBPluginDependency</string> + <string>337.IBPluginDependency</string> + <string>5.IBPluginDependency</string> <string>5.ImportedFromIB2</string> + <string>56.IBPluginDependency</string> <string>56.ImportedFromIB2</string> + <string>57.IBPluginDependency</string> <string>57.ImportedFromIB2</string> + <string>58.IBPluginDependency</string> <string>58.ImportedFromIB2</string> + <string>72.IBPluginDependency</string> <string>72.ImportedFromIB2</string> + <string>73.IBPluginDependency</string> <string>73.ImportedFromIB2</string> + <string>74.IBPluginDependency</string> <string>74.ImportedFromIB2</string> + <string>75.IBPluginDependency</string> <string>75.ImportedFromIB2</string> + <string>77.IBPluginDependency</string> <string>77.ImportedFromIB2</string> + <string>78.IBPluginDependency</string> <string>78.ImportedFromIB2</string> + <string>79.IBPluginDependency</string> <string>79.ImportedFromIB2</string> + <string>80.IBPluginDependency</string> <string>80.ImportedFromIB2</string> + <string>81.IBPluginDependency</string> <string>81.ImportedFromIB2</string> + <string>82.IBPluginDependency</string> <string>82.ImportedFromIB2</string> + <string>83.IBPluginDependency</string> <string>83.ImportedFromIB2</string> + <string>92.IBPluginDependency</string> <string>92.ImportedFromIB2</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <boolean value="YES"/> - <string>{{42, 911}, {320, 188}}</string> - <string>{{42, 911}, {320, 188}}</string> + <string>{{510, 1250}, {320, 188}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{510, 1250}, {320, 188}}</string> <boolean value="YES"/> <boolean value="YES"/> <string>{213, 107}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> - <string>{{21, 862}, {787, 260}}</string> - <string>{{21, 862}, {787, 260}}</string> + <string>{{-55, 1287}, {787, 260}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>{{-55, 1287}, {787, 260}}</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>{{0, 1114}, {362, 20}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> </object> </object> @@ -2848,6 +3045,40 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>id</string> </object> </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>crash:</string> + <string>forkTestGo:</string> + <string>forkTestOptions:</string> + <string>generateReportWithoutCrash:</string> + <string>showForkTestWindow:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">crash:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">forkTestGo:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">forkTestOptions:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">generateReportWithoutCrash:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">showForkTestWindow:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> @@ -2861,6 +3092,33 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>NSWindow</string> </object> </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>forkTestOptions_</string> + <string>window_</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBToOneOutletInfo"> + <string key="name">forkTestOptions_</string> + <string key="candidateClassName">NSWindow</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">window_</string> + <string key="candidateClassName">NSWindow</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">testapp/Controller.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">Controller</string> + <string key="superclassName">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBUserSource</string> <string key="minorKey"/> @@ -2875,6 +3133,586 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> </object> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">NSActionCell</string> + <string key="superclassName">NSCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <string key="superclassName">NSResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="785325875"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="806686590"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="301712406"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSBrowser</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSButton</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSButtonCell</string> + <string key="superclassName">NSActionCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSCell</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSControl</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="787388657"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDocument</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>printDocument:</string> + <string>revertDocumentToSaved:</string> + <string>runPageLayout:</string> + <string>saveDocument:</string> + <string>saveDocumentAs:</string> + <string>saveDocumentTo:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>printDocument:</string> + <string>revertDocumentToSaved:</string> + <string>runPageLayout:</string> + <string>saveDocument:</string> + <string>saveDocumentAs:</string> + <string>saveDocumentTo:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">printDocument:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">revertDocumentToSaved:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">runPageLayout:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveDocument:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveDocumentAs:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveDocumentTo:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDocument.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDocument</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDocumentController</string> + <string key="superclassName">NSObject</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>clearRecentDocuments:</string> + <string>newDocument:</string> + <string>openDocument:</string> + <string>saveAllDocuments:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>clearRecentDocuments:</string> + <string>newDocument:</string> + <string>openDocument:</string> + <string>saveAllDocuments:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBActionInfo"> + <string key="name">clearRecentDocuments:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">newDocument:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">openDocument:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> + <string key="name">saveAllDocuments:</string> + <string key="candidateClassName">id</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSFormatter</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMatrix</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenu</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="136824428"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenuItem</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="171959132"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMovieView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="785325875"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="806686590"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="301712406"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="787388657"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="136824428"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="521965700"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="104369095"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSError.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSResponder</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTableView</string> + <string key="superclassName">NSControl</string> + <reference key="sourceIdentifier" ref="521965700"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSText</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSText.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <reference key="sourceIdentifier" ref="171959132"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <string key="superclassName">NSResponder</string> + <reference key="sourceIdentifier" ref="104369095"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSWindow</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSWindow</string> + <string key="superclassName">NSResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSWindow</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string> + </object> + </object> + </object> </object> <int key="IBDocument.localizationMode">0</int> <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> @@ -2882,12 +3720,16 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> <integer value="1050" key="NS.object.0"/> </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> + <integer value="1050" key="NS.object.0"/> + </object> <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> <integer value="3000" key="NS.object.0"/> </object> <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> - <string key="IBDocument.LastKnownRelativeProjectPath">../GoogleBreakpadTest.xcodeproj</string> + <string key="IBDocument.LastKnownRelativeProjectPath">../../Breakpad.xcodeproj</string> <int key="IBDocument.defaultPropertyAccessControl">3</int> <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> <bool key="EncodedWithXMLCoder">YES</bool> diff --git a/src/client/mac/testapp/TestClass.mm b/src/client/mac/testapp/TestClass.mm index cade633e..6e6a8833 100644 --- a/src/client/mac/testapp/TestClass.mm +++ b/src/client/mac/testapp/TestClass.mm @@ -78,7 +78,7 @@ void InternalTestClass::InternalFunction(AStruct &s) { float InternalTestClass::kStaticFloatValue = 42; static float PlainOldFunction() { - return 3.14145; + return 3.14145f; } @implementation TestClass diff --git a/src/client/mac/tests/SimpleStringDictionaryTest.h b/src/client/mac/tests/SimpleStringDictionaryTest.h index 1f48517f..53f6ae42 100644 --- a/src/client/mac/tests/SimpleStringDictionaryTest.h +++ b/src/client/mac/tests/SimpleStringDictionaryTest.h @@ -27,7 +27,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#import <GTMSenTestCase.h> +#import "GTMSenTestCase.h" #import "SimpleStringDictionary.h" @interface SimpleStringDictionaryTest : GTMTestCase { diff --git a/src/client/minidump_file_writer-inl.h b/src/client/minidump_file_writer-inl.h index 7c556a27..0e12e00b 100644 --- a/src/client/minidump_file_writer-inl.h +++ b/src/client/minidump_file_writer-inl.h @@ -61,27 +61,30 @@ inline bool TypedMDRVA<MDType>::AllocateArray(size_t count) { } template<typename MDType> -inline bool TypedMDRVA<MDType>::AllocateObjectAndArray(unsigned int count, - size_t size) { - assert(count && size); +inline bool TypedMDRVA<MDType>::AllocateObjectAndArray(size_t count, + size_t length) { + assert(count && length); allocation_state_ = SINGLE_OBJECT_WITH_ARRAY; - return UntypedMDRVA::Allocate(minidump_size<MDType>::size() + count * size); + return UntypedMDRVA::Allocate(minidump_size<MDType>::size() + count * length); } template<typename MDType> inline bool TypedMDRVA<MDType>::CopyIndex(unsigned int index, MDType *item) { assert(allocation_state_ == ARRAY); - return writer_->Copy(position_ + index * minidump_size<MDType>::size(), item, - minidump_size<MDType>::size()); + return writer_->Copy( + static_cast<MDRVA>(position_ + index * minidump_size<MDType>::size()), + item, minidump_size<MDType>::size()); } template<typename MDType> inline bool TypedMDRVA<MDType>::CopyIndexAfterObject(unsigned int index, const void *src, - size_t size) { + size_t length) { assert(allocation_state_ == SINGLE_OBJECT_WITH_ARRAY); - return writer_->Copy(position_ + minidump_size<MDType>::size() + index * size, - src, size); + return writer_->Copy( + static_cast<MDRVA>(position_ + minidump_size<MDType>::size() + + index * length), + src, length); } template<typename MDType> diff --git a/src/client/minidump_file_writer.cc b/src/client/minidump_file_writer.cc index 1be3f504..66d4c690 100644 --- a/src/client/minidump_file_writer.cc +++ b/src/client/minidump_file_writer.cc @@ -107,7 +107,7 @@ bool MinidumpFileWriter::CopyStringToMDString(const wchar_t *str, // zero, but the second one may be zero, depending on the conversion from // UTF-32. int out_count = out[1] ? 2 : 1; - int out_size = sizeof(u_int16_t) * out_count; + size_t out_size = sizeof(u_int16_t) * out_count; result = mdstring->CopyIndexAfterObject(out_idx, out, out_size); out_idx += out_count; } @@ -134,7 +134,7 @@ bool MinidumpFileWriter::CopyStringToMDString(const char *str, // Append the one or two UTF-16 characters int out_count = out[1] ? 2 : 1; - int out_size = sizeof(u_int16_t) * out_count; + size_t out_size = sizeof(u_int16_t) * out_count; result = mdstring->CopyIndexAfterObject(out_idx, out, out_size); out_idx += out_count; } @@ -161,7 +161,8 @@ bool MinidumpFileWriter::WriteStringCore(const CharType *str, return false; // Set length excluding the NULL and copy the string - mdstring.get()->length = mdstring_length * sizeof(u_int16_t); + mdstring.get()->length = + static_cast<u_int32_t>(mdstring_length * sizeof(u_int16_t)); bool result = CopyStringToMDString(str, mdstring_length, &mdstring); // NULL terminate @@ -235,15 +236,15 @@ bool MinidumpFileWriter::Copy(MDRVA position, const void *src, ssize_t size) { assert(file_ != -1); // Ensure that the data will fit in the allocated space - if (size + position > size_) + if (static_cast<size_t>(size + position) > size_) return false; // Seek and write the data #if __linux__ - if (sys_lseek(file_, position, SEEK_SET) == static_cast<off_t>(position)) { + if (sys_lseek(file_, position, SEEK_SET) == position) { if (sys_write(file_, src, size) == size) { #else - if (lseek(file_, position, SEEK_SET) == static_cast<off_t>(position)) { + if (lseek(file_, position, SEEK_SET) == position) { if (write(file_, src, size) == size) { #endif return true; @@ -260,11 +261,11 @@ bool UntypedMDRVA::Allocate(size_t size) { return position_ != MinidumpFileWriter::kInvalidMDRVA; } -bool UntypedMDRVA::Copy(MDRVA position, const void *src, size_t size) { +bool UntypedMDRVA::Copy(MDRVA pos, const void *src, size_t size) { assert(src); assert(size); - assert(position + size <= position_ + size_); - return writer_->Copy(position, src, size); + assert(pos + size <= position_ + size_); + return writer_->Copy(pos, src, size); } } // namespace google_breakpad diff --git a/src/client/minidump_file_writer.h b/src/client/minidump_file_writer.h index f569a553..cded3585 100644 --- a/src/client/minidump_file_writer.h +++ b/src/client/minidump_file_writer.h @@ -151,7 +151,7 @@ class UntypedMDRVA { // Return size and position inline MDLocationDescriptor location() const { - MDLocationDescriptor location = { size_, position_ }; + MDLocationDescriptor location = { static_cast<int>(size_), position_ }; return location; } @@ -218,7 +218,7 @@ class TypedMDRVA : public UntypedMDRVA { // Allocate an array of |count| elements of |size| after object of MDType // Must not call more than once. // Return true on success, or false on failure - bool AllocateObjectAndArray(unsigned int count, size_t size); + bool AllocateObjectAndArray(size_t count, size_t size); // Copy |item| to |index| // Must have been allocated using AllocateArray(). diff --git a/src/client/minidump_file_writer_unittest.cc b/src/client/minidump_file_writer_unittest.cc index a83307d9..08522fb2 100644 --- a/src/client/minidump_file_writer_unittest.cc +++ b/src/client/minidump_file_writer_unittest.cc @@ -144,22 +144,23 @@ static bool CompareFile(const char *path) { 0x0000000a, 0x000a1c09, 0x0000000b, 0x00000000, #endif }; - unsigned int expected_byte_count = sizeof(expected); + size_t expected_byte_count = sizeof(expected); int fd = open(path, O_RDONLY, 0600); void *buffer = malloc(expected_byte_count); ASSERT_NE(fd, -1); ASSERT_TRUE(buffer); - ASSERT_EQ(read(fd, buffer, expected_byte_count), expected_byte_count); + ASSERT_EQ(read(fd, buffer, expected_byte_count), + static_cast<ssize_t>(expected_byte_count)); char *b1, *b2; - b1 = (char*)buffer; - b2 = (char*)expected; + b1 = reinterpret_cast<char*>(buffer); + b2 = reinterpret_cast<char*>(expected); while (*b1 == *b2) { b1++; b2++; } - printf("%d\n",b1 - (char*)buffer); + printf("%p\n", reinterpret_cast<void*>(b1 - (char*)buffer)); ASSERT_EQ(memcmp(buffer, expected, expected_byte_count), 0); return true; diff --git a/src/common/dwarf/bytereader.cc b/src/common/dwarf/bytereader.cc index a9b0020f..95193834 100644 --- a/src/common/dwarf/bytereader.cc +++ b/src/common/dwarf/bytereader.cc @@ -123,11 +123,11 @@ uint64 ByteReader::ReadEncodedPointer(const char *buffer, // First, find the offset to START from the closest prior aligned // address. - size_t skew = section_base_ & (AddressSize() - 1); + uint64_t skew = section_base_ & (AddressSize() - 1); // Now find the offset from that aligned address to buffer. - size_t offset = skew + (buffer - buffer_base_); + uint64_t offset = skew + (buffer - buffer_base_); // Round up to the next boundary. - size_t aligned = (offset + AddressSize() - 1) & -AddressSize(); + uint64_t aligned = (offset + AddressSize() - 1) & -AddressSize(); // Convert back to a pointer. const char *aligned_buffer = buffer_base_ + (aligned - skew); // Finally, store the length and actually fetch the pointer. diff --git a/src/common/dwarf/dwarf2reader.cc b/src/common/dwarf/dwarf2reader.cc index a2915bad..ab5be208 100644 --- a/src/common/dwarf/dwarf2reader.cc +++ b/src/common/dwarf/dwarf2reader.cc @@ -90,7 +90,7 @@ void CompilationUnit::ReadAbbrevs() { while (1) { CompilationUnit::Abbrev abbrev; size_t len; - const uint32 number = reader_->ReadUnsignedLEB128(abbrevptr, &len); + const uint64 number = reader_->ReadUnsignedLEB128(abbrevptr, &len); if (number == 0) break; @@ -98,7 +98,7 @@ void CompilationUnit::ReadAbbrevs() { abbrevptr += len; assert(abbrevptr < abbrev_start + abbrev_length); - const uint32 tag = reader_->ReadUnsignedLEB128(abbrevptr, &len); + const uint64 tag = reader_->ReadUnsignedLEB128(abbrevptr, &len); abbrevptr += len; abbrev.tag = static_cast<enum DwarfTag>(tag); @@ -109,11 +109,11 @@ void CompilationUnit::ReadAbbrevs() { assert(abbrevptr < abbrev_start + abbrev_length); while (1) { - const uint32 nametemp = reader_->ReadUnsignedLEB128(abbrevptr, &len); + const uint64 nametemp = reader_->ReadUnsignedLEB128(abbrevptr, &len); abbrevptr += len; assert(abbrevptr < abbrev_start + abbrev_length); - const uint32 formtemp = reader_->ReadUnsignedLEB128(abbrevptr, &len); + const uint64 formtemp = reader_->ReadUnsignedLEB128(abbrevptr, &len); abbrevptr += len; if (nametemp == 0 && formtemp == 0) break; @@ -515,7 +515,7 @@ void CompilationUnit::ProcessDIEs() { continue; } - const Abbrev& abbrev = abbrevs_->at(abbrev_num); + const Abbrev& abbrev = abbrevs_->at(static_cast<size_t>(abbrev_num)); const enum DwarfTag tag = abbrev.tag; if (!handler_->StartDIE(absolute_offset, tag, abbrev.attributes)) { dieptr = SkipDIE(dieptr, abbrev); @@ -618,8 +618,8 @@ void LineInfo::ReadHeader() { uint64 filelength = reader_->ReadUnsignedLEB128(lineptr, &len); lineptr += len; - handler_->DefineFile(filename, fileindex, dirindex, mod_time, - filelength); + handler_->DefineFile(filename, fileindex, static_cast<uint32>(dirindex), + mod_time, filelength); fileindex++; } } @@ -649,7 +649,7 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, opcode -= header.opcode_base; const int64 advance_address = (opcode / header.line_range) * header.min_insn_length; - const int64 advance_line = (opcode % header.line_range) + const int32 advance_line = (opcode % header.line_range) + header.line_base; // Check if the lsm passes "pc". If so, mark it as passed. @@ -689,7 +689,7 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, case DW_LNS_advance_line: { const int64 advance_line = reader->ReadSignedLEB128(start, &templen); oplen += templen; - lsm->line_num += advance_line; + lsm->line_num += static_cast<int32>(advance_line); // With gcc 4.2.1, we can get the line_no here for the first time // since DW_LNS_advance_line is called after DW_LNE_set_address is @@ -703,13 +703,13 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, case DW_LNS_set_file: { const uint64 fileno = reader->ReadUnsignedLEB128(start, &templen); oplen += templen; - lsm->file_num = fileno; + lsm->file_num = static_cast<uint32>(fileno); } break; case DW_LNS_set_column: { const uint64 colno = reader->ReadUnsignedLEB128(start, &templen); oplen += templen; - lsm->column_num = colno; + lsm->column_num = static_cast<uint32>(colno); } break; case DW_LNS_negate_stmt: { @@ -748,7 +748,7 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, } break; case DW_LNS_extended_op: { - const size_t extended_op_len = reader->ReadUnsignedLEB128(start, + const uint64 extended_op_len = reader->ReadUnsignedLEB128(start, &templen); start += templen; oplen += templen + extended_op_len; @@ -790,8 +790,8 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, oplen += templen; if (handler) { - handler->DefineFile(filename, -1, dirindex, mod_time, - filelength); + handler->DefineFile(filename, -1, static_cast<uint32>(dirindex), + mod_time, filelength); } } break; @@ -803,7 +803,6 @@ bool LineInfo::ProcessOneOpcode(ByteReader* reader, // Ignore unknown opcode silently if (header.std_opcode_lengths) { for (int i = 0; i < (*header.std_opcode_lengths)[opcode]; i++) { - size_t templen; reader->ReadUnsignedLEB128(start, &templen); start += templen; oplen += templen; @@ -1940,7 +1939,7 @@ bool CallFrameInfo::ReadCIEFields(CIE *cie) { // If we have a 'z' augmentation string, find the augmentation data and // use the augmentation string to parse it. if (cie->has_z_augmentation) { - size_t data_size = reader_->ReadUnsignedLEB128(cursor, &len); + uint64_t data_size = reader_->ReadUnsignedLEB128(cursor, &len); if (size_t(cie->end - cursor) < len + data_size) return ReportIncomplete(cie); cursor += len; @@ -2060,7 +2059,7 @@ bool CallFrameInfo::ReadFDEFields(FDE *fde) { // If the CIE has a 'z' augmentation string, then augmentation data // appears here. if (fde->cie->has_z_augmentation) { - size_t data_size = reader_->ReadUnsignedLEB128(cursor, &size); + uint64_t data_size = reader_->ReadUnsignedLEB128(cursor, &size); if (size_t(fde->end - cursor) < size + data_size) return ReportIncomplete(fde); cursor += size; diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h index a7a13afb..5a255238 100644 --- a/src/common/dwarf/dwarf2reader.h +++ b/src/common/dwarf/dwarf2reader.h @@ -242,7 +242,7 @@ class CompilationUnit { // The abbreviation tells how to read a DWARF2/3 DIE, and consist of a // tag and a list of attributes, as well as the data form of each attribute. struct Abbrev { - uint32 number; + uint64 number; enum DwarfTag tag; bool has_children; AttributeList attributes; diff --git a/src/common/dwarf/line_state_machine.h b/src/common/dwarf/line_state_machine.h index 6f9fb72b..0ff72abc 100644 --- a/src/common/dwarf/line_state_machine.h +++ b/src/common/dwarf/line_state_machine.h @@ -48,7 +48,7 @@ struct LineStateMachine { uint32 file_num; uint64 address; - uint64 line_num; + uint32 line_num; uint32 column_num; bool is_stmt; // stmt means statement. bool basic_block; diff --git a/src/common/mac/Breakpad.xcconfig b/src/common/mac/Breakpad.xcconfig new file mode 100644 index 00000000..3062bbac --- /dev/null +++ b/src/common/mac/Breakpad.xcconfig @@ -0,0 +1,57 @@ +// Copyright (c) 2010, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ARCHS = $(ARCHS_STANDARD_32_64_BIT) +SDKROOT = macosx10.5 +SDKROOT[arch=i386] = macosx10.4 +SDKROOT[arch=ppc] = macosx10.4 + +GCC_VERSION = 4.2 +GCC_VERSION[sdk=macosx10.4][arch=*] = 4.0 + +GCC_C_LANGUAGE_STANDARD = c99 + +GCC_WARN_CHECK_SWITCH_STATEMENTS = YES +// TODO(nealsid): Get the code so we can turn on the 64_TO_32 warning. +GCC_WARN_64_TO_32_BIT_CONVERSION = NO +GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES +GCC_WARN_ABOUT_RETURN_TYPE = YES +GCC_WARN_MISSING_PARENTHESES = YES +GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES +GCC_WARN_ABOUT_MISSING_NEWLINE = YES +GCC_WARN_SIGN_COMPARE = YES +GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES +GCC_WARN_UNDECLARED_SELECTOR = YES +GCC_WARN_UNKNOWN_PRAGMAS = YES +GCC_WARN_UNUSED_VARIABLE = YES +GCC_TREAT_WARNINGS_AS_ERRORS = YES + +DEBUG_INFORMATION_FORMAT = dwarf-with-dsym + +ALWAYS_SEARCH_USER_PATHS = NO diff --git a/src/common/mac/BreakpadDebug.xcconfig b/src/common/mac/BreakpadDebug.xcconfig new file mode 100644 index 00000000..94cdd8cf --- /dev/null +++ b/src/common/mac/BreakpadDebug.xcconfig @@ -0,0 +1,32 @@ +// Copyright (c) 2010, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "Breakpad.xcconfig" + +GCC_OPTIMIZATION_LEVEL = 0 diff --git a/src/common/mac/BreakpadRelease.xcconfig b/src/common/mac/BreakpadRelease.xcconfig new file mode 100644 index 00000000..af209a42 --- /dev/null +++ b/src/common/mac/BreakpadRelease.xcconfig @@ -0,0 +1,33 @@ +// Copyright (c) 2010, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#include "Breakpad.xcconfig" + +GCC_OPTIMIZATION_LEVEL = s +GCC_WARN_UNINITIALIZED_AUTOS = YES diff --git a/src/common/mac/HTTPMultipartUpload.m b/src/common/mac/HTTPMultipartUpload.m index dd3612d8..eee66a9c 100644 --- a/src/common/mac/HTTPMultipartUpload.m +++ b/src/common/mac/HTTPMultipartUpload.m @@ -28,6 +28,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #import "HTTPMultipartUpload.h" +#import "GTMDefines.h" @interface HTTPMultipartUpload(PrivateMethods) - (NSString *)multipartBoundary; @@ -148,7 +149,6 @@ timeoutInterval:10.0 ]; NSMutableData *postBody = [NSMutableData data]; - int i, count; [req setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary_] forHTTPHeaderField:@"Content-type"]; @@ -157,8 +157,8 @@ NSArray *parameterKeys = [parameters_ allKeys]; NSString *key; - count = [parameterKeys count]; - for (i = 0; i < count; ++i) { + NSInteger count = [parameterKeys count]; + for (NSInteger i = 0; i < count; ++i) { key = [parameterKeys objectAtIndex:i]; [postBody appendData:[self formDataForKey:key value:[parameters_ objectForKey:key]]]; @@ -167,7 +167,7 @@ // Add any files to the message NSArray *fileNames = [files_ allKeys]; count = [fileNames count]; - for (i = 0; i < count; ++i) { + for (NSInteger i = 0; i < count; ++i) { NSString *name = [fileNames objectAtIndex:i]; id fileOrData = [files_ objectForKey:name]; NSData *fileData; diff --git a/src/common/mac/MachIPC.h b/src/common/mac/MachIPC.h index 89924123..40ef8541 100644 --- a/src/common/mac/MachIPC.h +++ b/src/common/mac/MachIPC.h @@ -224,7 +224,7 @@ class MachMessage { void SetDescriptor(int n, const MachMsgPortDescriptor &desc); // Returns total message size setting msgh_size in the header to this value - int CalculateSize(); + mach_msg_size_t CalculateSize(); mach_msg_header_t head; mach_msg_body_t body; diff --git a/src/common/mac/MachIPC.mm b/src/common/mac/MachIPC.mm index 9e521e48..c451edb7 100644 --- a/src/common/mac/MachIPC.mm +++ b/src/common/mac/MachIPC.mm @@ -53,10 +53,10 @@ MachSendMessage::MachSendMessage(int32_t message_id) : MachMessage() { bool MachMessage::SetData(void *data, int32_t data_length) { // first check to make sure we have enough space - int size = CalculateSize(); - int new_size = size + data_length; + size_t size = CalculateSize(); + size_t new_size = size + data_length; - if ((unsigned)new_size > sizeof(MachMessage)) { + if (new_size > sizeof(MachMessage)) { return false; // not enough space } @@ -72,8 +72,8 @@ bool MachMessage::SetData(void *data, // calculates and returns the total size of the message // Currently, the entire message MUST fit inside of the MachMessage // messsage size <= sizeof(MachMessage) -int MachMessage::CalculateSize() { - int size = sizeof(mach_msg_header_t) + sizeof(mach_msg_body_t); +mach_msg_size_t MachMessage::CalculateSize() { + size_t size = sizeof(mach_msg_header_t) + sizeof(mach_msg_body_t); // add space for MessageDataPacket int32_t alignedDataLength = (GetDataLength() + 3) & ~0x3; @@ -82,14 +82,14 @@ int MachMessage::CalculateSize() { // add space for descriptors size += GetDescriptorCount() * sizeof(MachMsgPortDescriptor); - head.msgh_size = size; + head.msgh_size = static_cast<mach_msg_size_t>(size); - return size; + return head.msgh_size; } //============================================================================== MachMessage::MessageDataPacket *MachMessage::GetDataPacket() { - int desc_size = sizeof(MachMsgPortDescriptor)*GetDescriptorCount(); + size_t desc_size = sizeof(MachMsgPortDescriptor)*GetDescriptorCount(); MessageDataPacket *packet = reinterpret_cast<MessageDataPacket*>(padding + desc_size); @@ -109,9 +109,9 @@ void MachMessage::SetDescriptor(int n, bool MachMessage::AddDescriptor(const MachMsgPortDescriptor &desc) { // first check to make sure we have enough space int size = CalculateSize(); - int new_size = size + sizeof(MachMsgPortDescriptor); + size_t new_size = size + sizeof(MachMsgPortDescriptor); - if ((unsigned)new_size > sizeof(MachMessage)) { + if (new_size > sizeof(MachMessage)) { return false; // not enough space } @@ -180,8 +180,8 @@ ReceivePort::ReceivePort(const char *receive_port_name) { if (init_result_ != KERN_SUCCESS) return; - mach_port_t bootstrap_port = 0; - init_result_ = task_get_bootstrap_port(current_task, &bootstrap_port); + mach_port_t task_bootstrap_port = 0; + init_result_ = task_get_bootstrap_port(current_task, &task_bootstrap_port); if (init_result_ != KERN_SUCCESS) return; @@ -256,13 +256,14 @@ kern_return_t ReceivePort::WaitForMessage(MachReceiveMessage *out_message, //============================================================================== // get a port with send rights corresponding to a named registered service MachPortSender::MachPortSender(const char *receive_port_name) { - mach_port_t bootstrap_port = 0; - init_result_ = task_get_bootstrap_port(mach_task_self(), &bootstrap_port); + mach_port_t task_bootstrap_port = 0; + init_result_ = task_get_bootstrap_port(mach_task_self(), + &task_bootstrap_port); if (init_result_ != KERN_SUCCESS) return; - init_result_ = bootstrap_look_up(bootstrap_port, + init_result_ = bootstrap_look_up(task_bootstrap_port, const_cast<char*>(receive_port_name), &send_port_); } diff --git a/src/common/mac/dump_syms.h b/src/common/mac/dump_syms.h index f2bee657..fbf11c78 100644 --- a/src/common/mac/dump_syms.h +++ b/src/common/mac/dump_syms.h @@ -83,7 +83,17 @@ class DumpSymbols { // object file, then the dumper will dump the object file whose // architecture matches that of this dumper program. bool SetArchitecture(cpu_type_t cpu_type, cpu_subtype_t cpu_subtype); - + + // If this dumper's file includes an object file for |arch_name|, then select + // that object file for dumping, and return true. Otherwise, return false, + // and leave this dumper's selected architecture unchanged. + // + // By default, if this dumper's file contains only one object file, then + // the dumper will dump those symbols; and if it contains more than one + // object file, then the dumper will dump the object file whose + // architecture matches that of this dumper program. + bool SetArchitecture(const std::string &arch_name); + // Return a pointer to an array of 'struct fat_arch' structures, // describing the object files contained in this dumper's file. Set // *|count| to the number of elements in the array. The returned array is diff --git a/src/common/mac/dump_syms.mm b/src/common/mac/dump_syms.mm index ab2f2b9e..066683f3 100644 --- a/src/common/mac/dump_syms.mm +++ b/src/common/mac/dump_syms.mm @@ -54,6 +54,10 @@ #include "common/stabs_reader.h" #include "common/stabs_to_module.h" +#ifndef CPU_TYPE_ARM +#define CPU_TYPE_ARM (static_cast<cpu_type_t>(12)) +#endif // CPU_TYPE_ARM + using dwarf2reader::ByteReader; using google_breakpad::DwarfCUToModule; using google_breakpad::DwarfLineToModule; @@ -176,7 +180,7 @@ bool DumpSymbols::SetArchitecture(cpu_type_t cpu_type, // Find the best match for the architecture the user requested. const struct fat_arch *best_match = NXFindBestFatArch(cpu_type, cpu_subtype, &object_files_[0], - object_files_.size()); + static_cast<uint32_t>(object_files_.size())); if (!best_match) return false; // Record the selected object file. @@ -184,6 +188,15 @@ bool DumpSymbols::SetArchitecture(cpu_type_t cpu_type, return true; } +bool DumpSymbols::SetArchitecture(const std::string &arch_name) { + bool arch_set = false; + const NXArchInfo *arch_info = NXGetArchInfoFromName(arch_name.c_str()); + if (arch_info) { + arch_set = SetArchitecture(arch_info->cputype, arch_info->cpusubtype); + } + return arch_set; +} + string DumpSymbols::Identifier() { FileID file_id([object_filename_ fileSystemRepresentation]); unsigned char identifier_bytes[16]; diff --git a/src/common/mac/macho_id.cc b/src/common/mac/macho_id.cc index 160f6ed7..486cf536 100644 --- a/src/common/mac/macho_id.cc +++ b/src/common/mac/macho_id.cc @@ -53,7 +53,12 @@ extern "C" { // necessary for Leopard namespace MacFileUtilities { -MachoID::MachoID(const char *path) { +MachoID::MachoID(const char *path) + : file_(0), + crc_(0), + md5_context_(), + sha1_context_(), + update_function_(NULL) { strlcpy(path_, path, sizeof(path_)); file_ = open(path, O_RDONLY); } @@ -119,7 +124,7 @@ void MachoID::UpdateSHA1(unsigned char *bytes, size_t size) { SHA_Update(&sha1_context_, bytes, size); } -void MachoID::Update(MachoWalker *walker, unsigned long offset, size_t size) { +void MachoID::Update(MachoWalker *walker, off_t offset, size_t size) { if (!update_function_ || !size) return; @@ -182,7 +187,7 @@ bool MachoID::IDCommand(int cpu_type, unsigned char identifier[16]) { identifier[2] = 0; identifier[3] = 0; - for (int j = 0, i = strlen(path_)-1; i >= 0 && path_[i]!='/'; ++j, --i) { + for (int j = 0, i = (int)strlen(path_)-1; i>=0 && path_[i]!='/'; ++j, --i) { identifier[j%4] += path_[i]; } @@ -313,7 +318,9 @@ bool MachoID::WalkerCB(MachoWalker *walker, load_command *cmd, off_t offset, // sections of type S_ZEROFILL are "virtual" and contain no data // in the file itself if ((sec64.flags & SECTION_TYPE) != S_ZEROFILL && sec64.offset != 0) - macho_id->Update(walker, header_offset + sec64.offset, sec64.size); + macho_id->Update(walker, + header_offset + sec64.offset, + (size_t)sec64.size); offset += sizeof(struct section_64); } diff --git a/src/common/mac/macho_id.h b/src/common/mac/macho_id.h index 039bba38..ea01a6d7 100644 --- a/src/common/mac/macho_id.h +++ b/src/common/mac/macho_id.h @@ -86,7 +86,7 @@ class MachoID { void UpdateSHA1(unsigned char *bytes, size_t size); // Bottleneck for update routines - void Update(MachoWalker *walker, unsigned long offset, size_t size); + void Update(MachoWalker *walker, off_t offset, size_t size); // The callback from the MachoWalker for CRC, MD5, and SHA1 static bool WalkerCB(MachoWalker *walker, load_command *cmd, off_t offset, diff --git a/src/common/mac/macho_reader.cc b/src/common/mac/macho_reader.cc index 53da1807..ff16bc61 100644 --- a/src/common/mac/macho_reader.cc +++ b/src/common/mac/macho_reader.cc @@ -130,7 +130,7 @@ bool FatReader::Read(const uint8_t *buffer, size_t size) { } object_files_[0].offset = 0; - object_files_[0].size = buffer_.Size(); + object_files_[0].size = static_cast<uint32_t>(buffer_.Size()); // This alignment is correct for 32 and 64-bit x86 and ppc. // See get_align in the lipo source for other architectures: // http://www.opensource.apple.com/source/cctools/cctools-773/misc/lipo.c diff --git a/src/common/mac/macho_reader_unittest.cc b/src/common/mac/macho_reader_unittest.cc index 4e478d79..9bc6d25a 100644 --- a/src/common/mac/macho_reader_unittest.cc +++ b/src/common/mac/macho_reader_unittest.cc @@ -992,7 +992,7 @@ TEST_F(LoadCommand, None) { EXPECT_FALSE(reader.big_endian()); EXPECT_EQ(CPU_TYPE_X86, reader.cpu_type()); EXPECT_EQ(CPU_SUBTYPE_I386_ALL, reader.cpu_subtype()); - EXPECT_EQ(MH_EXECUTE, reader.file_type()); + EXPECT_EQ(static_cast<uint32_t>(MH_EXECUTE), reader.file_type()); EXPECT_EQ(FileFlags(MH_TWOLEVEL | MH_DYLDLINK | MH_NOUNDEFS), @@ -1018,7 +1018,7 @@ TEST_F(LoadCommand, Unknown) { EXPECT_TRUE(reader.big_endian()); EXPECT_EQ(CPU_TYPE_X86, reader.cpu_type()); EXPECT_EQ(CPU_SUBTYPE_I386_ALL, reader.cpu_subtype()); - EXPECT_EQ(MH_EXECUTE, reader.file_type()); + EXPECT_EQ(static_cast<uint32_t>(MH_EXECUTE), reader.file_type()); EXPECT_EQ(FileFlags(MH_TWOLEVEL | MH_DYLDLINK | MH_NOUNDEFS), diff --git a/src/common/mac/macho_walker.cc b/src/common/mac/macho_walker.cc index ecea8997..aeec4ae1 100644 --- a/src/common/mac/macho_walker.cc +++ b/src/common/mac/macho_walker.cc @@ -52,7 +52,11 @@ namespace MacFileUtilities { MachoWalker::MachoWalker(const char *path, LoadCommandCallback callback, void *context) : callback_(callback), - callback_context_(context) { + callback_context_(context), + file_(0), + current_header_(NULL), + current_header_size_(0), + current_header_offset_(0) { file_ = open(path, O_RDONLY); } diff --git a/src/common/mac/macho_walker.h b/src/common/mac/macho_walker.h index 6445a4f4..0d30b5c0 100644 --- a/src/common/mac/macho_walker.h +++ b/src/common/mac/macho_walker.h @@ -99,6 +99,10 @@ class MachoWalker { struct mach_header_64 *current_header_; unsigned long current_header_size_; off_t current_header_offset_; + + private: + MachoWalker(const MachoWalker &); + MachoWalker &operator=(const MachoWalker &); }; } // namespace MacFileUtilities diff --git a/src/common/mac/string_utilities.cc b/src/common/mac/string_utilities.cc index 5a89be38..e1f63a98 100644 --- a/src/common/mac/string_utilities.cc +++ b/src/common/mac/string_utilities.cc @@ -58,7 +58,7 @@ unsigned int IntegerValueAtIndex(string &str, unsigned int idx) { size_t start = 0; size_t end; size_t found = 0; - size_t result = 0; + unsigned int result = 0; for (; found <= idx; ++found) { end = str.find_first_not_of(digits, start); diff --git a/src/common/module.cc b/src/common/module.cc index 01f4985f..c980b96f 100644 --- a/src/common/module.cc +++ b/src/common/module.cc @@ -49,7 +49,7 @@ Module::Module(const string &name, const string &os, Module::~Module() { for (FileByNameMap::iterator it = files_.begin(); it != files_.end(); it++) delete it->second; - for (set<Function *>::iterator it = functions_.begin(); + for (FunctionSet::iterator it = functions_.begin(); it != functions_.end(); it++) delete *it; for (vector<StackFrameEntry *>::iterator it = stack_frame_entries_.begin(); @@ -62,7 +62,7 @@ void Module::SetLoadAddress(Address address) { } void Module::AddFunction(Function *function) { - std::pair<set<Function *>::iterator,bool> ret = functions_.insert(function); + std::pair<FunctionSet::iterator,bool> ret = functions_.insert(function); if (!ret.second) { // Free the duplicate we failed to insert because we own it. delete function; @@ -135,7 +135,7 @@ void Module::AssignSourceIds() { // Next, mark all files actually cited by our functions' line number // info, by setting each one's source id to zero. - for (set<Function *>::const_iterator func_it = functions_.begin(); + for (FunctionSet::const_iterator func_it = functions_.begin(); func_it != functions_.end(); func_it++) { Function *func = *func_it; for (vector<Line>::iterator line_it = func->lines.begin(); @@ -192,7 +192,7 @@ bool Module::Write(FILE *stream) { } // Write out functions and their lines. - for (set<Function *>::const_iterator func_it = functions_.begin(); + for (FunctionSet::const_iterator func_it = functions_.begin(); func_it != functions_.end(); func_it++) { Function *func = *func_it; if (0 > fprintf(stream, "FUNC %llx %llx %llx %s\n", diff --git a/src/common/module.h b/src/common/module.h index 18351319..8aea99f8 100644 --- a/src/common/module.h +++ b/src/common/module.h @@ -274,7 +274,8 @@ class Module { // to it; destroying the module frees the Files and Functions these // point to. FileByNameMap files_; // This module's source files. - set<Function *, FunctionCompare> functions_; // This module's functions. + typedef set<Function *, FunctionCompare> FunctionSet; + FunctionSet functions_; // This module's functions. // The module owns all the call frame info entries that have been // added to it. diff --git a/src/common/module_unittest.cc b/src/common/module_unittest.cc index 7ba1c17a..24189944 100644 --- a/src/common/module_unittest.cc +++ b/src/common/module_unittest.cc @@ -49,7 +49,7 @@ using testing::ContainerEq; // Return a FILE * referring to a temporary file that will be deleted // automatically when the stream is closed or the program exits. -FILE *checked_tmpfile() { +static FILE *checked_tmpfile() { FILE *f = tmpfile(); if (!f) { fprintf(stderr, "error creating temporary file: %s\n", strerror(errno)); @@ -60,7 +60,7 @@ FILE *checked_tmpfile() { // Read from STREAM until end of file, and return the contents as a // string. -string checked_read(FILE *stream) { +static string checked_read(FILE *stream) { string contents; int c; while ((c = getc(stream)) != EOF) @@ -74,7 +74,7 @@ string checked_read(FILE *stream) { } // Apply 'fflush' to STREAM, and check for errors. -void checked_fflush(FILE *stream) { +static void checked_fflush(FILE *stream) { if (fflush(stream) == EOF) { fprintf(stderr, "error flushing temporary file stream: %s\n", strerror(errno)); @@ -83,7 +83,7 @@ void checked_fflush(FILE *stream) { } // Apply 'fclose' to STREAM, and check for errors. -void checked_fclose(FILE *stream) { +static void checked_fclose(FILE *stream) { if (fclose(stream) == EOF) { fprintf(stderr, "error closing temporary file stream: %s\n", strerror(errno)); @@ -91,7 +91,7 @@ void checked_fclose(FILE *stream) { } } -Module::Function *generate_duplicate_function(const string &name) { +static Module::Function *generate_duplicate_function(const string &name) { const Module::Address DUP_ADDRESS = 0xd35402aac7a7ad5cLL; const Module::Address DUP_SIZE = 0x200b26e605f99071LL; const Module::Address DUP_PARAMETER_SIZE = 0xf14ac4fed48c4a99LL; diff --git a/src/common/string_conversion.cc b/src/common/string_conversion.cc index 50054ebc..5af12f5a 100644 --- a/src/common/string_conversion.cc +++ b/src/common/string_conversion.cc @@ -68,7 +68,7 @@ int UTF8ToUTF16Char(const char *in, int in_length, u_int16_t out[2]) { strictConversion); if (result == conversionOK) - return source_ptr - reinterpret_cast<const UTF8 *>(in); + return static_cast<int>(source_ptr - reinterpret_cast<const UTF8 *>(in)); // Add another character to the input stream and try again source_ptr = reinterpret_cast<const UTF8 *>(in); @@ -135,7 +135,7 @@ string UTF16ToUTF8(const vector<u_int16_t> &in, bool swap) { // The maximum expansion would be 4x the size of the input string. const UTF16 *source_end_ptr = source_ptr + in.size(); - int target_capacity = in.size() * 4; + size_t target_capacity = in.size() * 4; scoped_array<UTF8> target_buffer(new UTF8[target_capacity]); UTF8 *target_ptr = target_buffer.get(); UTF8 *target_end_ptr = target_ptr + target_capacity; @@ -145,8 +145,7 @@ string UTF16ToUTF8(const vector<u_int16_t> &in, bool swap) { if (result == conversionOK) { const char *targetPtr = reinterpret_cast<const char *>(target_buffer.get()); - string result(targetPtr); - return result; + return targetPtr; } return ""; diff --git a/src/common/test_assembler_unittest.cc b/src/common/test_assembler_unittest.cc index c26a9383..5db13267 100644 --- a/src/common/test_assembler_unittest.cc +++ b/src/common/test_assembler_unittest.cc @@ -37,10 +37,10 @@ #include "breakpad_googletest_includes.h" #include "common/test_assembler.h" -using google_breakpad::TestAssembler::Label; -using google_breakpad::TestAssembler::Section; -using google_breakpad::TestAssembler::kBigEndian; -using google_breakpad::TestAssembler::kLittleEndian; +using google_breakpad::test_assembler::Label; +using google_breakpad::test_assembler::Section; +using google_breakpad::test_assembler::kBigEndian; +using google_breakpad::test_assembler::kLittleEndian; using std::string; using testing::Test; diff --git a/src/processor/stackwalker_sparc.cc b/src/processor/stackwalker_sparc.cc index f1eac7c2..7363abd5 100644 --- a/src/processor/stackwalker_sparc.cc +++ b/src/processor/stackwalker_sparc.cc @@ -93,7 +93,7 @@ StackFrame* StackwalkerSPARC::GetCallerFrame(const CallStack *stack) { // A caller frame must reside higher in memory than its callee frames. // Anything else is an error, or an indication that we've reached the // end of the stack. - u_int32_t stack_pointer = last_frame->context.g_r[30]; + u_int64_t stack_pointer = last_frame->context.g_r[30]; if (stack_pointer <= last_frame->context.g_r[14]) { return NULL; } diff --git a/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj index 5759ab4d..7ff11601 100644 --- a/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj +++ b/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj @@ -3,24 +3,25 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ 557800400BE1F28500EC23E0 /* macho_utilities.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5578003E0BE1F28500EC23E0 /* macho_utilities.cc */; }; - 557800410BE1F28500EC23E0 /* macho_utilities.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5578003F0BE1F28500EC23E0 /* macho_utilities.h */; }; + 8B31FF2A11F0C62700FCF3E4 /* dwarf_cfi_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */; }; + 8B31FF2B11F0C62700FCF3E4 /* dwarf_cu_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */; }; + 8B31FF2C11F0C62700FCF3E4 /* dwarf_line_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */; }; + 8B31FF4111F0C64400FCF3E4 /* stabs_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */; }; + 8B31FF4211F0C64400FCF3E4 /* stabs_to_module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */; }; + 8B31FF7411F0C6E000FCF3E4 /* macho_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */; }; + 8B31FF8811F0C6FB00FCF3E4 /* language.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF8411F0C6FB00FCF3E4 /* language.cc */; }; + 8B31FF8911F0C6FB00FCF3E4 /* module.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FF8611F0C6FB00FCF3E4 /* module.cc */; }; + 8B31FFC511F0C8AB00FCF3E4 /* dwarf2diehandler.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */; }; 8B40BDC00C0638E4009535AF /* logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8B40BDBF0C0638E4009535AF /* logging.cc */; }; 8DD76F9A0486AA7600D96B5E /* crash_report.mm in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* crash_report.mm */; settings = {ATTRIBUTES = (); }; }; 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; }; - 9B35FEE40B2675F9008DE8C7 /* code_module.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FEE20B2675F9008DE8C7 /* code_module.h */; }; - 9B35FEE50B2675F9008DE8C7 /* code_modules.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FEE30B2675F9008DE8C7 /* code_modules.h */; }; - 9B35FEE90B26761C008DE8C7 /* basic_code_module.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FEE60B26761C008DE8C7 /* basic_code_module.h */; }; 9B35FEEA0B26761C008DE8C7 /* basic_code_modules.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B35FEE70B26761C008DE8C7 /* basic_code_modules.cc */; }; - 9B35FEEB0B26761C008DE8C7 /* basic_code_modules.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B35FEE80B26761C008DE8C7 /* basic_code_modules.h */; }; - 9B3904960B2E52D90059FABE /* basic_source_line_resolver.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B3904940B2E52D90059FABE /* basic_source_line_resolver.h */; }; - 9B3904970B2E52D90059FABE /* source_line_resolver_interface.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B3904950B2E52D90059FABE /* source_line_resolver_interface.h */; }; 9B3904990B2E52FD0059FABE /* basic_source_line_resolver.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9B3904980B2E52FD0059FABE /* basic_source_line_resolver.cc */; }; - 9B44619E0B66C66B00BBB817 /* system_info.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B44619D0B66C66B00BBB817 /* system_info.h */; }; 9BDF172C0B1B8B2400F8391B /* call_stack.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF172A0B1B8B2400F8391B /* call_stack.cc */; }; 9BDF172D0B1B8B2400F8391B /* minidump_processor.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF172B0B1B8B2400F8391B /* minidump_processor.cc */; }; 9BDF17410B1B8B9A00F8391B /* minidump.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF173F0B1B8B9A00F8391B /* minidump.cc */; }; @@ -28,21 +29,12 @@ 9BDF17550B1B8BF900F8391B /* stackwalker_x86.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF17520B1B8BF900F8391B /* stackwalker_x86.cc */; }; 9BDF17560B1B8BF900F8391B /* stackwalker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF17530B1B8BF900F8391B /* stackwalker.cc */; }; 9BDF175D0B1B8C1B00F8391B /* process_state.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF175B0B1B8C1B00F8391B /* process_state.cc */; }; - 9BDF176D0B1B8CB100F8391B /* on_demand_symbol_supplier.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */; }; 9BDF176E0B1B8CB100F8391B /* on_demand_symbol_supplier.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */; }; 9BDF1A280B1BD58200F8391B /* pathname_stripper.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF1A270B1BD58200F8391B /* pathname_stripper.cc */; }; - 9BDF1AB90B1BE70C00F8391B /* range_map.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF1A7B0B1BE30100F8391B /* range_map.h */; }; - 9BDF1ABA0B1BE70D00F8391B /* range_map-inl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF1A7A0B1BE30100F8391B /* range_map-inl.h */; }; - 9BDF1AFC0B1BEB6300F8391B /* address_map-inl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF1AFA0B1BEB6300F8391B /* address_map-inl.h */; }; - 9BDF1AFD0B1BEB6300F8391B /* address_map.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF1AFB0B1BEB6300F8391B /* address_map.h */; }; - 9BDF21A60B1E825400F8391B /* dump_syms.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BDF192D0B1BC15D00F8391B /* dump_syms.h */; }; 9BDF21A70B1E825400F8391B /* dump_syms.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BDF192E0B1BC15D00F8391B /* dump_syms.mm */; }; 9BE650B20B52FE3000611104 /* file_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AC0B52FE3000611104 /* file_id.cc */; }; - 9BE650B30B52FE3000611104 /* file_id.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BE650AD0B52FE3000611104 /* file_id.h */; }; 9BE650B40B52FE3000611104 /* macho_id.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650AE0B52FE3000611104 /* macho_id.cc */; }; - 9BE650B50B52FE3000611104 /* macho_id.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BE650AF0B52FE3000611104 /* macho_id.h */; }; 9BE650B60B52FE3000611104 /* macho_walker.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9BE650B00B52FE3000611104 /* macho_walker.cc */; }; - 9BE650B70B52FE3000611104 /* macho_walker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9BE650B10B52FE3000611104 /* macho_walker.h */; }; D2A5DD4D1188651100081F03 /* cfi_frame_info.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2A5DD4C1188651100081F03 /* cfi_frame_info.cc */; }; D2A5DD631188658B00081F03 /* tokenize.cc in Sources */ = {isa = PBXBuildFile; fileRef = D2A5DD621188658B00081F03 /* tokenize.cc */; }; F9C7ECE50E8ABCA600E953AD /* bytereader.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9C7ECE20E8ABCA600E953AD /* bytereader.cc */; }; @@ -51,44 +43,34 @@ F9F0706710FBC02D0037B88B /* stackwalker_arm.cc in Sources */ = {isa = PBXBuildFile; fileRef = F9F0706510FBC02D0037B88B /* stackwalker_arm.cc */; }; FD6625CD0CF4D45C004AC844 /* stackwalker_amd64.cc in Sources */ = {isa = PBXBuildFile; fileRef = FD6625C40CF4D438004AC844 /* stackwalker_amd64.cc */; }; FD8EDEAE0CADDAD400A5EDF1 /* stackwalker_sparc.cc in Sources */ = {isa = PBXBuildFile; fileRef = FD8EDEAC0CADDAD400A5EDF1 /* stackwalker_sparc.cc */; }; - FD8EDEAF0CADDAD400A5EDF1 /* stackwalker_sparc.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FD8EDEAD0CADDAD400A5EDF1 /* stackwalker_sparc.h */; }; /* End PBXBuildFile section */ -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - 9BDF176D0B1B8CB100F8391B /* on_demand_symbol_supplier.h in CopyFiles */, - 9BDF1AB90B1BE70C00F8391B /* range_map.h in CopyFiles */, - 9BDF1ABA0B1BE70D00F8391B /* range_map-inl.h in CopyFiles */, - 9BDF1AFC0B1BEB6300F8391B /* address_map-inl.h in CopyFiles */, - 9BDF1AFD0B1BEB6300F8391B /* address_map.h in CopyFiles */, - 9BDF21A60B1E825400F8391B /* dump_syms.h in CopyFiles */, - 9B35FEE40B2675F9008DE8C7 /* code_module.h in CopyFiles */, - 9B35FEE50B2675F9008DE8C7 /* code_modules.h in CopyFiles */, - 9B35FEE90B26761C008DE8C7 /* basic_code_module.h in CopyFiles */, - 9B35FEEB0B26761C008DE8C7 /* basic_code_modules.h in CopyFiles */, - 9B3904960B2E52D90059FABE /* basic_source_line_resolver.h in CopyFiles */, - 9B3904970B2E52D90059FABE /* source_line_resolver_interface.h in CopyFiles */, - 9BE650B30B52FE3000611104 /* file_id.h in CopyFiles */, - 9BE650B50B52FE3000611104 /* macho_id.h in CopyFiles */, - 9BE650B70B52FE3000611104 /* macho_walker.h in CopyFiles */, - 9B44619E0B66C66B00BBB817 /* system_info.h in CopyFiles */, - 557800410BE1F28500EC23E0 /* macho_utilities.h in CopyFiles */, - FD8EDEAF0CADDAD400A5EDF1 /* stackwalker_sparc.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 08FB7796FE84155DC02AAC07 /* crash_report.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = crash_report.mm; sourceTree = "<group>"; }; 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 5578003E0BE1F28500EC23E0 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; }; 5578003F0BE1F28500EC23E0 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; }; + 8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cfi_to_module.cc; path = ../../../common/dwarf_cfi_to_module.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF2511F0C62700FCF3E4 /* dwarf_cfi_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cfi_to_module.h; path = ../../../common/dwarf_cfi_to_module.h; sourceTree = SOURCE_ROOT; }; + 8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_cu_to_module.cc; path = ../../../common/dwarf_cu_to_module.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF2711F0C62700FCF3E4 /* dwarf_cu_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_cu_to_module.h; path = ../../../common/dwarf_cu_to_module.h; sourceTree = SOURCE_ROOT; }; + 8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf_line_to_module.cc; path = ../../../common/dwarf_line_to_module.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF2911F0C62700FCF3E4 /* dwarf_line_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf_line_to_module.h; path = ../../../common/dwarf_line_to_module.h; sourceTree = SOURCE_ROOT; }; + 8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_reader.cc; path = ../../../common/stabs_reader.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF3E11F0C64400FCF3E4 /* stabs_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_reader.h; path = ../../../common/stabs_reader.h; sourceTree = SOURCE_ROOT; }; + 8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stabs_to_module.cc; path = ../../../common/stabs_to_module.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF4011F0C64400FCF3E4 /* stabs_to_module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stabs_to_module.h; path = ../../../common/stabs_to_module.h; sourceTree = SOURCE_ROOT; }; + 8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = macho_reader.cc; path = ../../../common/mac/macho_reader.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF7311F0C6E000FCF3E4 /* macho_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = macho_reader.h; path = ../../../common/mac/macho_reader.h; sourceTree = SOURCE_ROOT; }; + 8B31FF8411F0C6FB00FCF3E4 /* language.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = language.cc; path = ../../../common/language.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF8511F0C6FB00FCF3E4 /* language.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = language.h; path = ../../../common/language.h; sourceTree = SOURCE_ROOT; }; + 8B31FF8611F0C6FB00FCF3E4 /* module.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = module.cc; path = ../../../common/module.cc; sourceTree = SOURCE_ROOT; }; + 8B31FF8711F0C6FB00FCF3E4 /* module.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = module.h; path = ../../../common/module.h; sourceTree = SOURCE_ROOT; }; + 8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dwarf2diehandler.cc; path = ../../../common/dwarf/dwarf2diehandler.cc; sourceTree = SOURCE_ROOT; }; + 8B31FFC411F0C8AB00FCF3E4 /* dwarf2diehandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dwarf2diehandler.h; path = ../../../common/dwarf/dwarf2diehandler.h; sourceTree = SOURCE_ROOT; }; 8B40BDBF0C0638E4009535AF /* logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cc; path = ../../../processor/logging.cc; sourceTree = SOURCE_ROOT; }; 8DD76FA10486AA7600D96B5E /* crash_report */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = crash_report; sourceTree = BUILT_PRODUCTS_DIR; }; 9B35FEE20B2675F9008DE8C7 /* code_module.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = code_module.h; path = ../../../google_breakpad/processor/code_module.h; sourceTree = SOURCE_ROOT; }; @@ -161,14 +143,33 @@ 08FB7794FE84155DC02AAC07 /* crash_report */ = { isa = PBXGroup; children = ( + 8B31025311F0D2D400FCF3E4 /* Breakpad.xcconfig */, + 8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */, + 8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */, F9C7ECE10E8ABC7F00E953AD /* DWARF */, 5578003E0BE1F28500EC23E0 /* macho_utilities.cc */, 5578003F0BE1F28500EC23E0 /* macho_utilities.h */, + 8B31FF7211F0C6E000FCF3E4 /* macho_reader.cc */, + 8B31FF7311F0C6E000FCF3E4 /* macho_reader.h */, 9BDF192D0B1BC15D00F8391B /* dump_syms.h */, 9BDF192E0B1BC15D00F8391B /* dump_syms.mm */, 08FB7796FE84155DC02AAC07 /* crash_report.mm */, 9BDF176B0B1B8CB100F8391B /* on_demand_symbol_supplier.h */, 9BDF176C0B1B8CB100F8391B /* on_demand_symbol_supplier.mm */, + 8B31FF2411F0C62700FCF3E4 /* dwarf_cfi_to_module.cc */, + 8B31FF2511F0C62700FCF3E4 /* dwarf_cfi_to_module.h */, + 8B31FF2611F0C62700FCF3E4 /* dwarf_cu_to_module.cc */, + 8B31FF2711F0C62700FCF3E4 /* dwarf_cu_to_module.h */, + 8B31FF2811F0C62700FCF3E4 /* dwarf_line_to_module.cc */, + 8B31FF2911F0C62700FCF3E4 /* dwarf_line_to_module.h */, + 8B31FF3D11F0C64400FCF3E4 /* stabs_reader.cc */, + 8B31FF3E11F0C64400FCF3E4 /* stabs_reader.h */, + 8B31FF3F11F0C64400FCF3E4 /* stabs_to_module.cc */, + 8B31FF4011F0C64400FCF3E4 /* stabs_to_module.h */, + 8B31FF8411F0C6FB00FCF3E4 /* language.cc */, + 8B31FF8511F0C6FB00FCF3E4 /* language.h */, + 8B31FF8611F0C6FB00FCF3E4 /* module.cc */, + 8B31FF8711F0C6FB00FCF3E4 /* module.h */, 08FB7795FE84155DC02AAC07 /* breakpad */, 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */, 1AB674ADFE9D54B511CA2CBB /* Products */, @@ -292,6 +293,8 @@ children = ( F9C7ECE20E8ABCA600E953AD /* bytereader.cc */, F9C7ECE30E8ABCA600E953AD /* dwarf2reader.cc */, + 8B31FFC311F0C8AB00FCF3E4 /* dwarf2diehandler.cc */, + 8B31FFC411F0C8AB00FCF3E4 /* dwarf2diehandler.h */, F9C7ECE40E8ABCA600E953AD /* functioninfo.cc */, ); name = DWARF; @@ -306,7 +309,6 @@ buildPhases = ( 8DD76F990486AA7600D96B5E /* Sources */, 8DD76F9B0486AA7600D96B5E /* Frameworks */, - 8DD76F9E0486AA7600D96B5E /* CopyFiles */, ); buildRules = ( ); @@ -324,7 +326,7 @@ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "crash_report" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 08FB7794FE84155DC02AAC07 /* crash_report */; projectDirPath = ""; @@ -366,6 +368,15 @@ F9F0706710FBC02D0037B88B /* stackwalker_arm.cc in Sources */, D2A5DD4D1188651100081F03 /* cfi_frame_info.cc in Sources */, D2A5DD631188658B00081F03 /* tokenize.cc in Sources */, + 8B31FF2A11F0C62700FCF3E4 /* dwarf_cfi_to_module.cc in Sources */, + 8B31FF2B11F0C62700FCF3E4 /* dwarf_cu_to_module.cc in Sources */, + 8B31FF2C11F0C62700FCF3E4 /* dwarf_line_to_module.cc in Sources */, + 8B31FF4111F0C64400FCF3E4 /* stabs_reader.cc in Sources */, + 8B31FF4211F0C64400FCF3E4 /* stabs_to_module.cc in Sources */, + 8B31FF7411F0C6E000FCF3E4 /* macho_reader.cc in Sources */, + 8B31FF8811F0C6FB00FCF3E4 /* language.cc in Sources */, + 8B31FF8911F0C6FB00FCF3E4 /* module.cc in Sources */, + 8B31FFC511F0C8AB00FCF3E4 /* dwarf2diehandler.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -375,65 +386,43 @@ 1DEB927508733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; GCC_PREPROCESSOR_DEFINITIONS = ( - "$(GCC_PREPROCESSOR_DEFINITIONS)", + "$(inherited)", _GLIBCXX_DEBUG_PEDANTIC, _GLIBCXX_DEBUG, _GLIBCPP_CONCEPT_CHECKS, ); - INSTALL_PATH = "$(HOME)/bin"; OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = crash_report; USER_HEADER_SEARCH_PATHS = "../../../../** $(inherited)"; - ZERO_LINK = NO; }; name = Debug; }; 1DEB927608733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - ppc, - i386, - ); - GCC_C_LANGUAGE_STANDARD = c99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INSTALL_PATH = "$(HOME)/bin"; + GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = crash_report; USER_HEADER_SEARCH_PATHS = "../../../../** $(inherited)"; - ZERO_LINK = NO; }; name = Release; }; 1DEB927908733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102DA11F0D65600FCF3E4 /* BreakpadDebug.xcconfig */; buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; }; name = Debug; }; 1DEB927A08733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102DB11F0D65600FCF3E4 /* BreakpadRelease.xcconfig */; buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; }; name = Release; }; diff --git a/src/tools/mac/crash_report/on_demand_symbol_supplier.mm b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm index 4123a27c..0f37686f 100644 --- a/src/tools/mac/crash_report/on_demand_symbol_supplier.mm +++ b/src/tools/mac/crash_report/on_demand_symbol_supplier.mm @@ -53,7 +53,7 @@ OnDemandSymbolSupplier::OnDemandSymbolSupplier(const string &search_dir, const string &symbol_search_dir) : search_dir_(search_dir) { NSFileManager *mgr = [NSFileManager defaultManager]; - int length = symbol_search_dir.length(); + size_t length = symbol_search_dir.length(); if (length) { // Load all sym files in symbol_search_dir into our module_file_map // A symbol file always starts with a line like this: @@ -149,7 +149,7 @@ OnDemandSymbolSupplier::GetSymbolFile(const CodeModule *module, if (s == FOUND) { - ifstream in(symbol_file->c_str()); + std::ifstream in(symbol_file->c_str()); getline(in, *symbol_data, std::string::traits_type::to_char_type( std::string::traits_type::eof())); in.close(); @@ -174,14 +174,14 @@ string OnDemandSymbolSupplier::GetLocalModulePath(const CodeModule *module) { // search string and stop if a file (not dir) is found or all components // have been appended NSArray *pathComponents = [modulePath componentsSeparatedByString:@"/"]; - int count = [pathComponents count]; + size_t count = [pathComponents count]; NSMutableString *path = [NSMutableString string]; - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { [path setString:searchDir]; - for (int j = 0; j < i + 1; ++j) { - int idx = count - 1 - i + j; + for (size_t j = 0; j < i + 1; ++j) { + size_t idx = count - 1 - i + j; [path appendFormat:@"/%@", [pathComponents objectAtIndex:idx]]; } @@ -214,7 +214,7 @@ static float GetFileModificationTime(const char *path) { struct stat file_stat; if (stat(path, &file_stat) == 0) result = (float)file_stat.st_mtimespec.tv_sec + - (float)file_stat.st_mtimespec.tv_nsec / 1.0e9; + (float)file_stat.st_mtimespec.tv_nsec / 1.0e9f; return result; } @@ -236,7 +236,7 @@ bool OnDemandSymbolSupplier::GenerateSymbolFile(const CodeModule *module, if ([[NSFileManager defaultManager] fileExistsAtPath:symbol_path]) { // Check if the module file is newer than the saved symbols float cache_time = - GetFileModificationTime([symbol_path fileSystemRepresentation]); + GetFileModificationTime([symbol_path fileSystemRepresentation]); float module_time = GetFileModificationTime(module_path.c_str()); @@ -248,15 +248,26 @@ bool OnDemandSymbolSupplier::GenerateSymbolFile(const CodeModule *module, NSString *module_str = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:module_path.c_str() length:module_path.length()]; - DumpSymbols *dump = [[DumpSymbols alloc] initWithContentsOfFile:module_str]; - const char *archStr = system_info->cpu.c_str(); - if ([dump setArchitecture:[NSString stringWithUTF8String:archStr]]) { - [dump writeSymbolFile:symbol_path]; + DumpSymbols dump; + if (dump.Read(module_str)) { + if (dump.SetArchitecture(system_info->cpu)) { + FILE *file = fopen([symbol_path fileSystemRepresentation],"w"); + if (file) { + dump.WriteSymbolFile(file); + fclose(file); + } else { + printf("Unable to open %s (%d)\n", name.c_str(), errno); + result = false; + } + } else { + printf("Architecture %s not available for %s\n", + system_info->cpu.c_str(), name.c_str()); + result = false; + } } else { - printf("Architecture %s not available for %s\n", archStr, name.c_str()); + printf("Unable to open %s\n", [module_str UTF8String]); result = false; } - [dump release]; } // Add the mapping diff --git a/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj b/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj index 172b1fd3..7f89b919 100644 --- a/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj +++ b/src/tools/mac/dump_syms/dump_syms.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXAggregateTarget section */ @@ -25,6 +25,7 @@ B88FB15D116CF54B00407530 /* PBXTargetDependency */, B84A9201116CF7D2006C210E /* PBXTargetDependency */, B88FB0C8116CEB4A00407530 /* PBXTargetDependency */, + 8B31051511F100CF00FCF3E4 /* PBXTargetDependency */, ); name = all_unittests; productName = all_unittests; @@ -103,6 +104,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 8B31051411F100CF00FCF3E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D21F97D111CBA0F200239E38; + remoteInfo = test_assembler_unittest; + }; B84A91F9116CF796006C210E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; @@ -264,6 +272,9 @@ 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 557800890BE1F3AB00EC23E0 /* macho_utilities.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_utilities.cc; path = ../../../common/mac/macho_utilities.cc; sourceTree = SOURCE_ROOT; }; 5578008A0BE1F3AB00EC23E0 /* macho_utilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_utilities.h; path = ../../../common/mac/macho_utilities.h; sourceTree = SOURCE_ROOT; }; + 8B31023E11F0CF1C00FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; }; 9BDF186D0B1BB43700F8391B /* dump_syms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dump_syms.h; path = ../../../common/mac/dump_syms.h; sourceTree = "<group>"; }; 9BDF186E0B1BB43700F8391B /* dump_syms_tool.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = dump_syms_tool.mm; sourceTree = "<group>"; }; 9BE650410B52F6D800611104 /* file_id.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = file_id.cc; path = ../../../common/mac/file_id.cc; sourceTree = SOURCE_ROOT; }; @@ -463,6 +474,9 @@ 08FB7794FE84155DC02AAC07 /* dump_syms */ = { isa = PBXGroup; children = ( + 8B31023E11F0CF1C00FCF3E4 /* Breakpad.xcconfig */, + 8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */, + 8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */, B89E0E9D11665A9500DD08C9 /* TESTING */, F9F5344B0E7C8FFC0012363F /* DWARF */, B89E0E6C1166569700DD08C9 /* MACHO */, @@ -869,7 +883,7 @@ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "dump_syms" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 08FB7794FE84155DC02AAC07 /* dump_syms */; projectDirPath = ""; @@ -907,7 +921,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -eu\n\ncd $BUILT_PRODUCTS_DIR\npwd\n\n./byte_cursor_unittest\n./macho_reader_unittest\n./stabs_reader_unittest\n./bytereader_unittest\n./dwarf2reader_cfi_unittest\n./dwarf2diehandler_unittest\n./dwarf_cu_to_module_unittest\n./dwarf_line_to_module_unittest\n./dwarf_cfi_to_module_unittest\n./stabs_to_module_unittest\n./module_unittest\n\necho \"Expect two warnings from the following tests:\"\necho \" Errors.BadFileNumber\"\necho \" Errors.BadDirectoryNumber\"\necho \"The proper behavior of these tests is to print text that XCode confuses with compiler warnings.\"\n"; + shellScript = "set -eu\n\ncd $BUILT_PRODUCTS_DIR\npwd\n\n./byte_cursor_unittest\n./macho_reader_unittest\n./stabs_reader_unittest\n./bytereader_unittest\n./dwarf2reader_cfi_unittest\n./dwarf2diehandler_unittest\n./dwarf_cu_to_module_unittest\n./dwarf_line_to_module_unittest\n./dwarf_cfi_to_module_unittest\n./stabs_to_module_unittest\n./module_unittest\n./test_assembler_unittest\n\necho \"Expect two warnings from the following tests:\"\necho \" Errors.BadFileNumber\"\necho \" Errors.BadDirectoryNumber\"\necho \"The proper behavior of these tests is to print text that XCode confuses with compiler warnings.\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -1074,6 +1088,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 8B31051511F100CF00FCF3E4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D21F97D111CBA0F200239E38 /* test_assembler_unittest */; + targetProxy = 8B31051411F100CF00FCF3E4 /* PBXContainerItemProxy */; + }; B84A91FA116CF796006C210E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = B88FB023116BDFFF00407530 /* gtestmockall */; @@ -1189,38 +1208,23 @@ /* Begin XCBuildConfiguration section */ 1DEB927908733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102D411F0D60300FCF3E4 /* BreakpadDebug.xcconfig */; buildSettings = { - ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = "../../../**"; - ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH_ACTUAL)"; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + HEADER_SEARCH_PATHS = "\"../../../**\""; }; name = Debug; }; 1DEB927A08733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102D511F0D60300FCF3E4 /* BreakpadRelease.xcconfig */; buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + HEADER_SEARCH_PATHS = "\"../../../**\""; }; name = Release; }; B84A91F6116CF784006C210E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = stabs_to_module_unittest; }; name = Debug; @@ -1228,38 +1232,18 @@ B84A91F7116CF784006C210E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = stabs_to_module_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FAF31116A591F00407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)"; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_SYMBOLS_PRIVATE_EXTERN = YES; - INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/build/Debug\""; - ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 = "$(NATIVE_ARCH_ACTUAL)"; - PREBINDING = NO; PRODUCT_NAME = dwarf2reader_cfi_unittest; }; name = Debug; @@ -1267,29 +1251,18 @@ B88FAF32116A591F00407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", ); LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/build/Debug\""; - PREBINDING = NO; PRODUCT_NAME = dwarf2reader_cfi_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FAFCA116BDCAD00407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; PRODUCT_NAME = all_unittests; }; name = Debug; @@ -1297,26 +1270,14 @@ B88FAFCB116BDCAD00407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = all_unittests; - ZERO_LINK = NO; }; name = Release; }; B88FB009116BDE8400407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = stabs_reader_unittest; }; name = Debug; @@ -1324,32 +1285,16 @@ B88FB00A116BDE8400407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = stabs_reader_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB025116BE00100407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; GCC_SYMBOLS_PRIVATE_EXTERN = YES; - INSTALL_PATH = /usr/local/lib; - PREBINDING = NO; PRODUCT_NAME = gtestmockall; }; name = Debug; @@ -1357,29 +1302,13 @@ B88FB026116BE00100407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/lib; - PREBINDING = NO; PRODUCT_NAME = gtestmockall; - ZERO_LINK = NO; }; name = Release; }; B88FB0BB116CEAC000407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = module_unittest; }; name = Debug; @@ -1387,29 +1316,13 @@ B88FB0BC116CEAC000407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = module_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB0E1116CEEA800407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf2diehandler_unittest; }; name = Debug; @@ -1417,29 +1330,13 @@ B88FB0E2116CEEA800407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf2diehandler_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB0F4116CEF1900407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_line_to_module_unittest; }; name = Debug; @@ -1447,29 +1344,13 @@ B88FB0F5116CEF1900407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_line_to_module_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB10C116CF07A00407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_cu_to_module_unittest; }; name = Debug; @@ -1477,29 +1358,13 @@ B88FB10D116CF07A00407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_cu_to_module_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB121116CF28000407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_cfi_to_module_unittest; }; name = Debug; @@ -1507,29 +1372,13 @@ B88FB122116CF28000407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dwarf_cfi_to_module_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB137116CF30F00407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = bytereader_unittest; }; name = Debug; @@ -1537,29 +1386,13 @@ B88FB138116CF30F00407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = bytereader_unittest; - ZERO_LINK = NO; }; name = Release; }; B88FB14D116CF4A800407530 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = byte_cursor_unittest; }; name = Debug; @@ -1567,29 +1400,13 @@ B88FB14E116CF4A800407530 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = byte_cursor_unittest; - ZERO_LINK = NO; }; name = Release; }; B89E0E761166575300DD08C9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = macho_dump; }; name = Debug; @@ -1597,29 +1414,13 @@ B89E0E771166575300DD08C9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = macho_dump; - ZERO_LINK = NO; }; name = Release; }; B89E0E9711665A6400DD08C9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = macho_reader_unittest; }; name = Debug; @@ -1627,31 +1428,14 @@ B89E0E9811665A6400DD08C9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = macho_reader_unittest; - ZERO_LINK = NO; }; name = Release; }; B8C5B5131166531B00D34F4E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ""; - PREBINDING = NO; PRODUCT_NAME = dump_syms; }; name = Debug; @@ -1659,39 +1443,14 @@ B8C5B5141166531B00D34F4E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; GCC_PREPROCESSOR_DEFINITIONS = HAVE_MACH_O_NLIST_H; - INSTALL_PATH = /usr/local/bin; - PREBINDING = NO; PRODUCT_NAME = dump_syms; - ZERO_LINK = NO; }; name = Release; }; D21F97D411CBA0F200239E38 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; - PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES; PRODUCT_NAME = test_assembler_unittest; }; name = Debug; @@ -1699,23 +1458,7 @@ D21F97D511CBA0F200239E38 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INSTALL_PATH = /usr/local/bin; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = test_assembler_unittest; - ZERO_LINK = NO; }; name = Release; }; diff --git a/src/tools/mac/dump_syms/macho_dump.cc b/src/tools/mac/dump_syms/macho_dump.cc index fcef37c5..940df25b 100644 --- a/src/tools/mac/dump_syms/macho_dump.cc +++ b/src/tools/mac/dump_syms/macho_dump.cc @@ -137,7 +137,8 @@ void DumpFile(const char *filename) { } printf("filename: %s\n", filename); size_t object_files_size; - struct fat_arch *object_files = fat_reader.object_files(&object_files_size); + const struct fat_arch *object_files + = fat_reader.object_files(&object_files_size); printf(" object file count: %ld\n", object_files_size); for (size_t i = 0; i < object_files_size; i++) { const struct fat_arch &file = object_files[i]; diff --git a/src/tools/mac/symupload/minidump_upload.m b/src/tools/mac/symupload/minidump_upload.m index 4f9d8c7a..991a5de5 100644 --- a/src/tools/mac/symupload/minidump_upload.m +++ b/src/tools/mac/symupload/minidump_upload.m @@ -98,10 +98,10 @@ SetupOptions(int argc, const char *argv[], Options *options) { while ((ch = getopt(argc, (char * const *)argv, "p:v:h?")) != -1) { switch (ch) { case 'p': - options->product = [NSString stringWithCString:optarg]; + options->product = [NSString stringWithUTF8String:optarg]; break; case 'v': - options->version = [NSString stringWithCString:optarg]; + options->version = [NSString stringWithUTF8String:optarg]; break; default: @@ -117,8 +117,8 @@ SetupOptions(int argc, const char *argv[], Options *options) { exit(1); } - options->minidumpPath = [NSString stringWithCString:argv[optind]]; - options->uploadURLStr = [NSString stringWithCString:argv[optind + 1]]; + options->minidumpPath = [NSString stringWithUTF8String:argv[optind]]; + options->uploadURLStr = [NSString stringWithUTF8String:argv[optind + 1]]; } //============================================================================= diff --git a/src/tools/mac/symupload/symupload.m b/src/tools/mac/symupload/symupload.m index 7830cdca..fe0cb67c 100644 --- a/src/tools/mac/symupload/symupload.m +++ b/src/tools/mac/symupload/symupload.m @@ -134,7 +134,7 @@ static void Start(Options *options) { fprintf(stdout, "Send: %s\n", error ? [[error description] UTF8String] : "No Error"); fprintf(stdout, "Response: %d\n", status); - fprintf(stdout, "Result: %d bytes\n%s\n", [data length], [result UTF8String]); + fprintf(stdout, "Result: %lu bytes\n%s\n", [data length], [result UTF8String]); [result release]; [ul release]; @@ -173,8 +173,8 @@ SetupOptions(int argc, const char *argv[], Options *options) { exit(1); } - options->symbolsPath = [NSString stringWithCString:argv[optind]]; - options->uploadURLStr = [NSString stringWithCString:argv[optind + 1]]; + options->symbolsPath = [NSString stringWithUTF8String:argv[optind]]; + options->uploadURLStr = [NSString stringWithUTF8String:argv[optind + 1]]; } //============================================================================= diff --git a/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj b/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj index d2f4a1ca..73b58ddb 100644 --- a/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj +++ b/src/tools/mac/symupload/symupload.xcodeproj/project.pbxproj @@ -3,10 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 45; objects = { /* Begin PBXBuildFile section */ + 8B31022C11F0CEBD00FCF3E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; }; 8DD76F9A0486AA7600D96B5E /* symupload.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* symupload.m */; settings = {ATTRIBUTES = (); }; }; 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; }; 9BC1D49E0B37427A00F2A2B4 /* minidump_upload.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD836000B0544BA0055103E /* minidump_upload.m */; }; @@ -31,6 +32,9 @@ /* Begin PBXFileReference section */ 08FB7796FE84155DC02AAC07 /* symupload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = symupload.m; sourceTree = "<group>"; }; 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; + 8B31022B11F0CE6900FCF3E4 /* Breakpad.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Breakpad.xcconfig; path = ../../../common/mac/Breakpad.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadDebug.xcconfig; path = ../../../common/mac/BreakpadDebug.xcconfig; sourceTree = SOURCE_ROOT; }; + 8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = BreakpadRelease.xcconfig; path = ../../../common/mac/BreakpadRelease.xcconfig; sourceTree = SOURCE_ROOT; }; 8DD76FA10486AA7600D96B5E /* symupload */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = symupload; sourceTree = BUILT_PRODUCTS_DIR; }; 9BD833680B03E4080055103E /* HTTPMultipartUpload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPMultipartUpload.h; path = ../../../common/mac/HTTPMultipartUpload.h; sourceTree = "<group>"; }; 9BD833690B03E4080055103E /* HTTPMultipartUpload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HTTPMultipartUpload.m; path = ../../../common/mac/HTTPMultipartUpload.m; sourceTree = "<group>"; }; @@ -51,6 +55,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8B31022C11F0CEBD00FCF3E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -60,6 +65,9 @@ 08FB7794FE84155DC02AAC07 /* symupload */ = { isa = PBXGroup; children = ( + 8B31022B11F0CE6900FCF3E4 /* Breakpad.xcconfig */, + 8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */, + 8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */, 08FB7796FE84155DC02AAC07 /* symupload.m */, 9BD836000B0544BA0055103E /* minidump_upload.m */, 9BD833680B03E4080055103E /* HTTPMultipartUpload.h */, @@ -130,9 +138,11 @@ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "symupload" */; + compatibilityVersion = "Xcode 3.1"; hasScannedForEncodings = 1; mainGroup = 08FB7794FE84155DC02AAC07 /* symupload */; projectDirPath = ""; + projectRoot = ""; targets = ( 8DD76F960486AA7600D96B5E /* symupload */, 9BD835FA0B0544950055103E /* minidump_upload */, @@ -165,105 +175,46 @@ 1DEB927508733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INSTALL_PATH = "$(HOME)/bin"; PRODUCT_NAME = symupload; USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)"; - ZERO_LINK = NO; }; name = Debug; }; 1DEB927608733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - ppc, - i386, - ); - GCC_C_LANGUAGE_STANDARD = c99; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INSTALL_PATH = "$(HOME)/bin"; PRODUCT_NAME = symupload; USER_HEADER_SEARCH_PATHS = "../../../** $(inherited)"; - ZERO_LINK = NO; }; name = Release; }; 1DEB927908733DD40010E9CD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102B611F0D5CE00FCF3E4 /* BreakpadDebug.xcconfig */; buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Debug; }; 1DEB927A08733DD40010E9CD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8B3102B711F0D5CE00FCF3E4 /* BreakpadRelease.xcconfig */; buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; }; name = Release; }; 9BD836030B0544BB0055103E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INSTALL_PATH = "$(HOME)/bin"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = minidump_upload; USER_HEADER_SEARCH_PATHS = "../../../**"; - ZERO_LINK = NO; }; name = Debug; }; 9BD836040B0544BB0055103E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INSTALL_PATH = "$(HOME)/bin"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; PRODUCT_NAME = minidump_upload; USER_HEADER_SEARCH_PATHS = "../../../**"; - ZERO_LINK = NO; }; name = Release; }; |