3 new revisions:
Revision: e6d5d1054bfb
Author: Landon Fuller <
lan...@plausible.coop>
Date: Thu Feb 14 09:55:20 2013
Log: Fix relative references to project resources.
http://code.google.com/p/plcrashreporter/source/detail?r=e6d5d1054bfb
Revision: 97a82f46a4a3
Author: Landon Fuller <
lan...@plausible.coop>
Date: Thu Feb 14 10:00:07 2013
Log: Set a retina Default.png to quiesce Xcode warnings when building
DemoC...
http://code.google.com/p/plcrashreporter/source/detail?r=97a82f46a4a3
Revision: 5b69d7733671
Author: Landon Fuller <
lan...@plausible.coop>
Date: Mon Feb 18 06:18:17 2013
Log: Fix reset of exception ports for which a server was not
previously reg...
http://code.google.com/p/plcrashreporter/source/detail?r=5b69d7733671
==============================================================================
Revision: e6d5d1054bfb
Author: Landon Fuller <
lan...@plausible.coop>
Date: Thu Feb 14 09:55:20 2013
Log: Fix relative references to project resources.
http://code.google.com/p/plcrashreporter/source/detail?r=e6d5d1054bfb
Deleted:
/Resources/English.lproj/InfoPlist.strings
Modified:
/CrashReporter.xcodeproj/project.pbxproj
=======================================
--- /Resources/English.lproj/InfoPlist.strings Fri Dec 5 02:34:37 2008
+++ /dev/null
@@ -1,3 +0,0 @@
-ÿþ/ * L o c a l i z e d v e r s i o n s o f I n f o . p l i s t
k e y s * /
-
-
=======================================
--- /CrashReporter.xcodeproj/project.pbxproj Sun Jan 20 17:42:56 2013
+++ /CrashReporter.xcodeproj/project.pbxproj Thu Feb 14 09:55:20 2013
@@ -198,7 +198,6 @@
05BB84901364EE1500D53B84 /* PLCrashSysctlTests.m in Sources */ = {isa =
PBXBuildFile; fileRef = 05BB848E1364EE1500D53B84 /* PLCrashSysctlTests.m
*/; };
05BB84911364EE1500D53B84 /* PLCrashSysctlTests.m in Sources */ = {isa =
PBXBuildFile; fileRef = 05BB848E1364EE1500D53B84 /* PLCrashSysctlTests.m
*/; };
05BB84A31364F1A000D53B84 /* PLCrashSysctl.c in Sources */ = {isa =
PBXBuildFile; fileRef = 05BB84851364EDF200D53B84 /* PLCrashSysctl.c */; };
- 05CD314D0EE9364B000FDE88 /* InfoPlist.strings in Resources */ = {isa =
PBXBuildFile; fileRef = 05CD314C0EE9364B000FDE88 /* InfoPlist.strings */; };
05CD318B0EE93A90000FDE88 /* CrashReporter.h in Headers */ = {isa =
PBXBuildFile; fileRef = 05CD31890EE93A90000FDE88 /* CrashReporter.h */;
settings = {ATTRIBUTES = (Public, ); }; };
05CD318C0EE93A90000FDE88 /* CrashReporter.m in Sources */ = {isa =
PBXBuildFile; fileRef = 05CD318A0EE93A90000FDE88 /* CrashReporter.m */; };
05CD318D0EE93A90000FDE88 /* CrashReporter.h in Headers */ = {isa =
PBXBuildFile; fileRef = 05CD31890EE93A90000FDE88 /* CrashReporter.h */; };
@@ -759,7 +758,7 @@
/* Begin PBXFileReference section */
050DE24D0F61B80B00152ED3 /* Fuzz Testing */ = {isa = PBXFileReference;
explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path
= "Fuzz Testing"; sourceTree = BUILT_PRODUCTS_DIR; };
- 050DE28D0F61BB1D00152ED3 /* fuzz_report.plcrash */ = {isa =
PBXFileReference; lastKnownFileType = file; name = fuzz_report.plcrash;
path = Resources/fuzz_report.plcrash; sourceTree = "<group>"; };
+ 050DE28D0F61BB1D00152ED3 /* fuzz_report.plcrash */ = {isa =
PBXFileReference; lastKnownFileType = file; path = fuzz_report.plcrash;
sourceTree = "<group>"; };
050DE2A80F61BD8D00152ED3 /* fuzz-main.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= "fuzz-main.m"; sourceTree = "<group>"; };
052951E91696965E006EDA8A /* PLCrashLogWriterEncodingTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashLogWriterEncodingTests.m; sourceTree = "<group>"; };
052951EE1696A461006EDA8A /* PLCrashLogWriterEncodingTests.proto */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path =
PLCrashLogWriterEncodingTests.proto; sourceTree = "<group>"; };
@@ -777,7 +776,7 @@
0573B42B1681098E00395F2A /* PLCrashMachExceptionServer.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashMachExceptionServer.m; sourceTree = "<group>"; };
0581B520168FDB280098C103 /* mach_exc.defs */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = mach_exc.defs;
path = usr/include/mach/mach_exc.defs; sourceTree = SDKROOT; };
058812B91040582D009128FB /* CrashReporter.framework */ = {isa =
PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0;
path = CrashReporter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0592C8E6169B899B00209116 /* crash_report_v2.proto */ = {isa =
PBXFileReference; lastKnownFileType = text; name = crash_report_v2.proto;
path = Resources/crash_report_v2.proto; sourceTree = "<group>"; };
+ 0592C8E6169B899B00209116 /* crash_report_v2.proto */ = {isa =
PBXFileReference; lastKnownFileType = text; path = crash_report_v2.proto;
sourceTree = "<group>"; };
059666DA0EEDDFB8008A0601 /* PLCrashFrameWalker.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashFrameWalker.h; sourceTree = "<group>"; };
059666DB0EEDDFB8008A0601 /* PLCrashFrameWalker.c */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c;
path = PLCrashFrameWalker.c; sourceTree = "<group>"; };
059666E20EEDDFCC008A0601 /* PLCrashFrameWalkerTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashFrameWalkerTests.m; sourceTree = "<group>"; };
@@ -788,7 +787,7 @@
059670250EEF6B1A008A0601 /* PLCrashLogWriter.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashLogWriter.h; sourceTree = "<group>"; };
059670260EEF6B1A008A0601 /* PLCrashLogWriter.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashLogWriter.m; sourceTree = "<group>"; };
0596702D0EEF6B51008A0601 /* PLCrashLogWriterTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashLogWriterTests.m; sourceTree = "<group>"; };
- 059670C70EEFAC3A008A0601 /* crash_report.proto */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name =
crash_report.proto; path = Resources/crash_report.proto; sourceTree
= "<group>"; };
+ 059670C70EEFAC3A008A0601 /* crash_report.proto */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path =
crash_report.proto; sourceTree = "<group>"; };
059671140EEFADA6008A0601 /* README.txt */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree
= "<group>"; };
059672F00EF08564008A0601 /* PLCrashAsync.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
PLCrashAsync.h; sourceTree = "<group>"; };
05A2077215AB30C9001E3EFC /* PLCrashReporterNamespace.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
PLCrashReporterNamespace.h; sourceTree = "<group>"; };
@@ -801,22 +800,21 @@
05BB84841364EDF200D53B84 /* PLCrashSysctl.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashSysctl.h; sourceTree = "<group>"; };
05BB84851364EDF200D53B84 /* PLCrashSysctl.c */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c;
path = PLCrashSysctl.c; sourceTree = "<group>"; };
05BB848E1364EE1500D53B84 /* PLCrashSysctlTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashSysctlTests.m; sourceTree = "<group>"; };
- 05CD314A0EE93647000FDE88 /* English */ = {isa = PBXFileReference;
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English;
path = Resources/English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
05CD31520EE936A9000FDE88 /* libCrashReporter-iphoneos.a */ = {isa =
PBXFileReference; explicitFileType =
archive.ar; includeInIndex = 0; path
= "libCrashReporter-iphoneos.a"; sourceTree = BUILT_PRODUCTS_DIR; };
05CD31630EE93905000FDE88 /* libCrashReporter-iphonesimulator.a */ = {isa
= PBXFileReference; explicitFileType =
archive.ar; includeInIndex = 0; path
= "libCrashReporter-iphonesimulator.a"; sourceTree = BUILT_PRODUCTS_DIR; };
05CD31890EE93A90000FDE88 /* CrashReporter.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = CrashReporter.h; sourceTree = "<group>"; };
05CD318A0EE93A90000FDE88 /* CrashReporter.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = CrashReporter.m; sourceTree = "<group>"; };
05CD32690EE93DC3000FDE88 /* Tests-MacOSX.octest */ = {isa =
PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0;
path = "Tests-MacOSX.octest"; sourceTree = BUILT_PRODUCTS_DIR; };
- 05CD326A0EE93DC3000FDE88 /* Tests-MacOSX-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; name
= "Tests-MacOSX-Info.plist"; path = "Resources/Tests-MacOSX-Info.plist";
sourceTree = "<group>"; };
+ 05CD326A0EE93DC3000FDE88 /* Tests-MacOSX-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; path
= "Tests-MacOSX-Info.plist"; sourceTree = "<group>"; };
05CD328B0EE93F5E000FDE88 /* GTMDefines.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTMDefines.h;
sourceTree = "<group>"; };
05CD328C0EE93F7C000FDE88 /* GTMSenTestCase.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
name = GTMSenTestCase.h; path = UnitTesting/GTMSenTestCase.h; sourceTree
= "<group>"; };
05CD328D0EE93F7C000FDE88 /* GTMSenTestCase.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
name = GTMSenTestCase.m; path = UnitTesting/GTMSenTestCase.m; sourceTree
= "<group>"; };
05CD32A90EE94062000FDE88 /* Tests-iOS-Simulator.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex =
0; path = "Tests-iOS-Simulator.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- 05CD32AF0EE94086000FDE88 /* Tests-iPhone-Info.plist */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml;
name = "Tests-iPhone-Info.plist"; path
= "Resources/Tests-iPhone-Info.plist"; sourceTree = "<group>"; };
+ 05CD32AF0EE94086000FDE88 /* Tests-iPhone-Info.plist */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml;
path = "Tests-iPhone-Info.plist"; sourceTree = "<group>"; };
05CD32B00EE940B8000FDE88 /* GTMIPhoneUnitTestDelegate.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
name = GTMIPhoneUnitTestDelegate.m; path =
UnitTesting/GTMIPhoneUnitTestDelegate.m; sourceTree = "<group>"; };
05CD32B10EE940B8000FDE88 /* GTMIPhoneUnitTestMain.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
name = GTMIPhoneUnitTestMain.m; path = UnitTesting/GTMIPhoneUnitTestMain.m;
sourceTree = "<group>"; };
05CD33240EE94439000FDE88 /* Tests-iOS-Device.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex =
0; path = "Tests-iOS-Device.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- 05CD33520EE9457D000FDE88 /* CrashReporter.exp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports;
name = CrashReporter.exp; path = Resources/CrashReporter.exp; sourceTree
= "<group>"; };
+ 05CD33520EE9457D000FDE88 /* CrashReporter.exp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports;
path = CrashReporter.exp; sourceTree = "<group>"; };
05CD339A0EE948EB000FDE88 /* PLCrashSignalHandler.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashSignalHandler.h; sourceTree = "<group>"; };
05CD339B0EE948EB000FDE88 /* PLCrashSignalHandler.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashSignalHandler.m; sourceTree = "<group>"; };
05CD33A20EE94931000FDE88 /* PLCrashSignalHandlerTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashSignalHandlerTests.m; sourceTree = "<group>"; };
@@ -855,7 +853,7 @@
05F40ACA0EF7379F008050CF /* PLCrashReporter.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReporter.m; sourceTree = "<group>"; };
05F40ADD0EF73A39008050CF /* PLCrashReporterTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReporterTests.m; sourceTree = "<group>"; };
05F40CE70EF7AB80008050CF /* DemoCrash.app */ = {isa = PBXFileReference;
explicitFileType = wrapper.application; includeInIndex = 0; path =
DemoCrash.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 05F40CE90EF7AB80008050CF /* DemoCrash-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; name
= "DemoCrash-Info.plist"; path = "Resources/DemoCrash-Info.plist";
sourceTree = "<group>"; };
+ 05F40CE90EF7AB80008050CF /* DemoCrash-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; path
= "DemoCrash-Info.plist"; sourceTree = "<group>"; };
05F40CF10EF7AC0E008050CF /* main.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m;
sourceTree = "<group>"; };
05F40F7D0EF85099008050CF /* protoc-c */ = {isa = PBXFileReference;
lastKnownFileType = "compiled.mach-o.executable"; path = "protoc-c";
sourceTree = "<group>"; };
05F40F830EF850FC008050CF /* protobuf-c.c */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path
= "protobuf-c.c"; sourceTree = "<group>"; };
@@ -874,7 +872,7 @@
05F4150C0EF9DD9B008050CF /* PLCrashReportBinaryImageInfo.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReportBinaryImageInfo.m; sourceTree = "<group>"; };
05F415510EF9E078008050CF /* PLCrashReportExceptionInfo.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashReportExceptionInfo.h; sourceTree = "<group>"; };
05F415520EF9E078008050CF /* PLCrashReportExceptionInfo.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReportExceptionInfo.m; sourceTree = "<group>"; };
- 05F76DCD162CB85000A668C7 /* Defaul...@2x.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; name
= "Defaul...@2x.png"; path = "Resources/Defaul...@2x.png"; sourceTree
= "<group>"; };
+ 05F76DCD162CB85000A668C7 /* Defaul...@2x.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path
= "Defaul...@2x.png"; sourceTree = "<group>"; };
05F76DCF162DBF8300A668C7 /* GTMObjC2Runtime.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; name =
GTMObjC2Runtime.h; path = Foundation/GTMObjC2Runtime.h; sourceTree
= "<group>"; };
05F76DD0162DC2BC00A668C7 /* GTMGarbageCollection.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; name =
GTMGarbageCollection.h; path = Foundation/GTMGarbageCollection.h;
sourceTree = "<group>"; };
05F76DD2162F213E00A668C7 /* PLCrashAsyncMachOImage.c */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c;
path = PLCrashAsyncMachOImage.c; sourceTree = "<group>"; };
@@ -884,7 +882,7 @@
0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
Foundation.framework; path =
/System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>";
};
2D0E10441141F7DC00CE1BD6 /* PLCrashReportProcessInfo.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashReportProcessInfo.h; sourceTree = "<group>"; };
2D0E10451141F7DC00CE1BD6 /* PLCrashReportProcessInfo.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReportProcessInfo.m; sourceTree = "<group>"; };
- 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist;
path = Resources/Info.plist; sourceTree = "<group>"; };
+ 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist;
sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* CrashReporter.framework */ = {isa =
PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0;
path = CrashReporter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
C21688F816445344000F90ED /* PLCrashAsyncMachOStringTests.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashAsyncMachOStringTests.m; sourceTree = "<group>"; };
C2198DD81640188C006EB46A /* PLCrashAsyncObjCSection.c */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c;
path = PLCrashAsyncObjCSection.c; sourceTree = "<group>"; };
@@ -1464,7 +1462,6 @@
children = (
05F76DCD162CB85000A668C7 /* Defaul...@2x.png */,
05F40CE90EF7AB80008050CF /* DemoCrash-Info.plist */,
- 05CD314C0EE9364B000FDE88 /* InfoPlist.strings */,
8DC2EF5A0486A6940098B216 /* Info.plist */,
05CD32AF0EE94086000FDE88 /* Tests-iPhone-Info.plist */,
05CD326A0EE93DC3000FDE88 /* Tests-MacOSX-Info.plist */,
@@ -1473,7 +1470,7 @@
050DE28D0F61BB1D00152ED3 /* fuzz_report.plcrash */,
0592C8E6169B899B00209116 /* crash_report_v2.proto */,
);
- name = Resources;
+ path = Resources;
sourceTree = "<group>";
};
08FB77AEFE84172EC02AAC07 /* Source */ = {
@@ -2030,7 +2027,6 @@
isa = PBXResourcesBuildPhase;
buildActionMask =
2147483647;
files = (
- 05CD314D0EE9364B000FDE88 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2611,17 +2607,6 @@
};
/* End PBXTargetDependency section */
-/* Begin PBXVariantGroup section */
- 05CD314C0EE9364B000FDE88 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 05CD314A0EE93647000FDE88 /* English */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
-/* End PBXVariantGroup section */
-
/* Begin XCBuildConfiguration section */
0502E45B12BD0D0000ACDCB5 /* Debug */ = {
isa = XCBuildConfiguration;
==============================================================================
Revision: 97a82f46a4a3
Author: Landon Fuller <
lan...@plausible.coop>
Date: Thu Feb 14 10:00:07 2013
Log: Set a retina Default.png to quiesce Xcode warnings when building
DemoCrash-iOS-Device
http://code.google.com/p/plcrashreporter/source/detail?r=97a82f46a4a3
Modified:
/CrashReporter.xcodeproj/project.pbxproj
=======================================
--- /CrashReporter.xcodeproj/project.pbxproj Thu Feb 14 09:55:20 2013
+++ /CrashReporter.xcodeproj/project.pbxproj Thu Feb 14 10:00:07 2013
@@ -109,6 +109,8 @@
0573B44A1681108500395F2A /* PLCrashReportSymbolInfo.h in Headers */ =
{isa = PBXBuildFile; fileRef = 05D9E55916765D0200B39833 /*
PLCrashReportSymbolInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
05771CE213683ED4001DE4B1 /* PLCrashReportProcessorInfo.h in Headers */ =
{isa = PBXBuildFile; fileRef = 05BB83CB1364A77800D53B84 /*
PLCrashReportProcessorInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
05771CE313683EDD001DE4B1 /* PLCrashReportMachineInfo.h in Headers */ =
{isa = PBXBuildFile; fileRef = 05BB83EF1364AD3E00D53B84 /*
PLCrashReportMachineInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 057CD98616CD5D5C0067E670 /* Defaul...@2x.png in Resources */ = {isa =
PBXBuildFile; fileRef = 057CD98516CD5D5C0067E670 /* Defaul...@2x.png */;
};
+ 057CD98716CD5D7A0067E670 /* Defaul...@2x.png in Resources */ = {isa =
PBXBuildFile; fileRef = 057CD98516CD5D5C0067E670 /* Defaul...@2x.png */;
};
0581B521168FDB280098C103 /* mach_exc.defs in Sources */ = {isa =
PBXBuildFile; fileRef = 0581B520168FDB280098C103 /* mach_exc.defs */; };
0581B522168FDB280098C103 /* mach_exc.defs in Sources */ = {isa =
PBXBuildFile; fileRef = 0581B520168FDB280098C103 /* mach_exc.defs */; };
059666DC0EEDDFB8008A0601 /* PLCrashFrameWalker.h in Headers */ = {isa =
PBXBuildFile; fileRef = 059666DA0EEDDFB8008A0601 /* PLCrashFrameWalker.h
*/; };
@@ -438,7 +440,6 @@
05F415560EF9E078008050CF /* PLCrashReportExceptionInfo.m in Sources */ =
{isa = PBXBuildFile; fileRef = 05F415520EF9E078008050CF /*
PLCrashReportExceptionInfo.m */; };
05F415570EF9E078008050CF /* PLCrashReportExceptionInfo.h in Headers */ =
{isa = PBXBuildFile; fileRef = 05F415510EF9E078008050CF /*
PLCrashReportExceptionInfo.h */; };
05F415580EF9E078008050CF /* PLCrashReportExceptionInfo.m in Sources */ =
{isa = PBXBuildFile; fileRef = 05F415520EF9E078008050CF /*
PLCrashReportExceptionInfo.m */; };
- 05F76DCE162CB85000A668C7 /* Defaul...@2x.png in Resources */ = {isa =
PBXBuildFile; fileRef = 05F76DCD162CB85000A668C7 /* Defaul...@2x.png */;
};
05F76DD3162F213E00A668C7 /* PLCrashAsyncMachOImage.c in Sources */ =
{isa = PBXBuildFile; fileRef = 05F76DD2162F213E00A668C7 /*
PLCrashAsyncMachOImage.c */; };
05F76DD4162F213E00A668C7 /* PLCrashAsyncMachOImage.c in Sources */ =
{isa = PBXBuildFile; fileRef = 05F76DD2162F213E00A668C7 /*
PLCrashAsyncMachOImage.c */; };
05F76DD5162F213E00A668C7 /* PLCrashAsyncMachOImage.c in Sources */ =
{isa = PBXBuildFile; fileRef = 05F76DD2162F213E00A668C7 /*
PLCrashAsyncMachOImage.c */; };
@@ -774,6 +775,7 @@
05654F760EFA5B54004283F5 /* CoreServices.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
CoreServices.framework; path =
System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
0573B42A1681098E00395F2A /* PLCrashMachExceptionServer.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashMachExceptionServer.h; sourceTree = "<group>"; };
0573B42B1681098E00395F2A /* PLCrashMachExceptionServer.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashMachExceptionServer.m; sourceTree = "<group>"; };
+ 057CD98516CD5D5C0067E670 /* Defaul...@2x.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path
= "Defaul...@2x.png"; sourceTree = "<group>"; };
0581B520168FDB280098C103 /* mach_exc.defs */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.mig; name = mach_exc.defs;
path = usr/include/mach/mach_exc.defs; sourceTree = SDKROOT; };
058812B91040582D009128FB /* CrashReporter.framework */ = {isa =
PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0;
path = CrashReporter.framework; sourceTree = BUILT_PRODUCTS_DIR; };
0592C8E6169B899B00209116 /* crash_report_v2.proto */ = {isa =
PBXFileReference; lastKnownFileType = text; path = crash_report_v2.proto;
sourceTree = "<group>"; };
@@ -872,7 +874,6 @@
05F4150C0EF9DD9B008050CF /* PLCrashReportBinaryImageInfo.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReportBinaryImageInfo.m; sourceTree = "<group>"; };
05F415510EF9E078008050CF /* PLCrashReportExceptionInfo.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = PLCrashReportExceptionInfo.h; sourceTree = "<group>"; };
05F415520EF9E078008050CF /* PLCrashReportExceptionInfo.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = PLCrashReportExceptionInfo.m; sourceTree = "<group>"; };
- 05F76DCD162CB85000A668C7 /* Defaul...@2x.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path
= "Defaul...@2x.png"; sourceTree = "<group>"; };
05F76DCF162DBF8300A668C7 /* GTMObjC2Runtime.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; name =
GTMObjC2Runtime.h; path = Foundation/GTMObjC2Runtime.h; sourceTree
= "<group>"; };
05F76DD0162DC2BC00A668C7 /* GTMGarbageCollection.h */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.c.h; name =
GTMGarbageCollection.h; path = Foundation/GTMGarbageCollection.h;
sourceTree = "<group>"; };
05F76DD2162F213E00A668C7 /* PLCrashAsyncMachOImage.c */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c;
path = PLCrashAsyncMachOImage.c; sourceTree = "<group>"; };
@@ -1460,7 +1461,7 @@
089C1665FE841158C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
- 05F76DCD162CB85000A668C7 /* Defaul...@2x.png */,
+ 057CD98516CD5D5C0067E670 /* Defaul...@2x.png */,
05F40CE90EF7AB80008050CF /* DemoCrash-Info.plist */,
8DC2EF5A0486A6940098B216 /* Info.plist */,
05CD32AF0EE94086000FDE88 /* Tests-iPhone-Info.plist */,
@@ -1977,6 +1978,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask =
2147483647;
files = (
+ 057CD98616CD5D5C0067E670 /* Defaul...@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2012,7 +2014,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask =
2147483647;
files = (
- 05F76DCE162CB85000A668C7 /* Defaul...@2x.png in Resources */,
+ 057CD98716CD5D7A0067E670 /* Defaul...@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
==============================================================================
Revision: 5b69d7733671
Author: Landon Fuller <
lan...@plausible.coop>
Date: Mon Feb 18 06:18:17 2013
Log: Fix reset of exception ports for which a server was not
previously registered.
This fixes the case where we register for exception types (via
FATAL_EXCEPTION_MASK) that were not registered to an existing server.
The ports in question would be left registered to our exception server
after it was stopped, which would result in a hang in the case where an
exception occured.
The fix is to reset all ports; in the case where a server was previously
registered, we re-insert it. In the case where none was registered, we
set the exception handler server port to MACH_PORT_NULL.
It remains the case that deregistering a mach exception server should
not generally be done, for the reasons described in the
deregisterHandlerAndReturnError: method documentation.
http://code.google.com/p/plcrashreporter/source/detail?r=5b69d7733671
Modified:
/Source/PLCrashMachExceptionServer.m
=======================================
--- /Source/PLCrashMachExceptionServer.m Sun Jan 20 13:30:26 2013
+++ /Source/PLCrashMachExceptionServer.m Mon Feb 18 06:18:17 2013
@@ -179,6 +179,9 @@
/** Registered exception port. */
mach_port_t server_port;
+ /** The mask of exceptions for which we're registered. */
+ exception_mask_t exc_mask;
+
/** User callback. */
PLCrashMachExceptionHandlerCallback callback;
@@ -228,19 +231,39 @@
*
* @param task The task for which the exception handler(s) were registered.
* @param thread If not MACH_PORT_NULL, the thread for which the exception
ports should be set.
+ * @param required_mask The mask of exception types for which the ports
should be set. If @a state does not contain handlers
+ * for all types specified in @a required_mask, a port of MACH_PORT_NULL
will be set for the given exception type.
* @param state Exception handler state.
*/
-static void set_exception_ports (task_t task, thread_t thread, struct
plcrash_exception_handler_state *state) {
+static void set_exception_ports (task_t task, thread_t thread,
exception_mask_t required_mask, struct plcrash_exception_handler_state
*state) {
kern_return_t kr;
+
+ /* Set exception ports for all supplied state entries. */
+ exception_mask_t remaining_mask = required_mask;
for (mach_msg_type_number_t i = 0; i < state->count; ++i) {
+ if (MACH_PORT_VALID(!state->ports[i]))
+ continue;
+
if (thread == MACH_PORT_NULL)
kr = task_set_exception_ports(task, state->masks[i],
state->ports[i], state->behaviors[i], state->flavors[i]);
else
kr = thread_set_exception_ports(thread, state->masks[i],
state->ports[i], state->behaviors[i], state->flavors[i]);
/* Log errors, but continue to restore any remaining exception
ports */
- if (kr != KERN_SUCCESS)
- PLCF_DEBUG("Failed to restore task exception ports: %x", kr);
+ if (kr == KERN_SUCCESS) {
+ /* Mark as completed */
+ remaining_mask &= ~state->masks[i];
+ } else {
+ PLCF_DEBUG("Failed to restore task exception ports (i=%x,
m=%x, p=%x, b=%x, f=%x): %x", i, state->masks[i], state->ports[i],
state->behaviors[i], state->flavors[i], kr);
+ }
+ }
+
+ /* Reset any remaining exception types that were not handled above. */
+ if (remaining_mask != 0) {
+ if (thread == MACH_PORT_NULL)
+ kr = task_set_exception_ports(task, remaining_mask,
MACH_PORT_NULL, EXCEPTION_STATE_IDENTITY, MACHINE_THREAD_STATE);
+ else
+ kr = thread_set_exception_ports(thread, remaining_mask,
MACH_PORT_NULL, EXCEPTION_STATE_IDENTITY, MACHINE_THREAD_STATE);
}
}
@@ -661,7 +684,7 @@
if (exc_context->thread == MACH_PORT_NULL) {
kr = task_swap_exception_ports(exc_context->task,
- FATAL_EXCEPTION_MASK,
+ exc_context->exc_mask,
exc_context->server_port,
behavior,
THREAD_STATE_NONE,
@@ -672,7 +695,7 @@
exc_context->prev_handler_state.flavors);
} else {
kr = thread_swap_exception_ports(exc_context->thread,
- FATAL_EXCEPTION_MASK,
+ exc_context->exc_mask,
exc_context->server_port,
behavior,
THREAD_STATE_NONE,
@@ -742,7 +765,7 @@
PLCF_DEBUG("Unexpected error in mach_msg(): 0x%x. Restoring
exception ports and stopping server thread.", mr);
/* Restore exception ports; we won't be around to handle
future exceptions */
- set_exception_ports(exc_context->task, exc_context->thread,
&exc_context->prev_handler_state);
+ set_exception_ports(exc_context->task, exc_context->thread,
exc_context->exc_mask, &exc_context->prev_handler_state);
break;
@@ -757,7 +780,7 @@
/* Restore exception ports; we won't be around to
handle future exceptions */
// TODO - This is non-atomic; should we cycle through
a mach_msg() call to clear
// exception messages that may have been enqueued?
- set_exception_ports(exc_context->task,
exc_context->thread, &exc_context->prev_handler_state);
+ set_exception_ports(exc_context->task,
exc_context->thread, exc_context->exc_mask,
&exc_context->prev_handler_state);
/* Inform the requesting thread of completion */
pthread_mutex_lock(&exc_context->lock); {
@@ -795,7 +818,7 @@
/* Restore exception ports; we don't want to double-fault if
our exception handler crashes */
// TODO - We should register a thread-specific double-fault
handler to specifically handle
// this state by executing a "safe mode" logging path.
- set_exception_ports(exc_context->task, exc_context->thread,
&exc_context->prev_handler_state);
+ set_exception_ports(exc_context->task, exc_context->thread,
exc_context->exc_mask, &exc_context->prev_handler_state);
/* Map 32-bit codes to 64-bit types. */
#if !HANDLE_MACH64_CODES
@@ -903,6 +926,7 @@
_serverContext = calloc(1, sizeof(*_serverContext));
_serverContext->task = task;
_serverContext->thread = thread;
+ _serverContext->exc_mask = FATAL_EXCEPTION_MASK;
_serverContext->server_port = MACH_PORT_NULL;
_serverContext->server_init_result = KERN_SUCCESS;
_serverContext->callback = callback;