├── .gitignore ├── README.md ├── Source ├── PFTTrackSegment.h ├── PFTTrackSegment.m ├── XRRun.h ├── XRRun.m └── main.m ├── Supporting files ├── .DS_Store └── Traced-Prefix.pch └── Traced.xcodeproj ├── project.pbxproj └── project.xcworkspace └── contents.xcworkspacedata /.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A very simple proof of concept on how to parse a `.trace` file generated by Instruments OpenGL ES instrument. See also: [Trying to read a Xcode Instruments .trace file. What is the file format of a .trace file?](http://stackoverflow.com/questions/16737621/trying-to-read-a-xcode-instruments-trace-file-what-is-the-file-format-of-a-tr) -------------------------------------------------------------------------------- /Source/PFTTrackSegment.h: -------------------------------------------------------------------------------- 1 | // 2 | // PFTTrackSegment.h 3 | // Traced 4 | // 5 | // Created by Sidney Just 6 | // Copyright (c) 2013 by Sidney Just 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 8 | // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 9 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 10 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 11 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 16 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | // 18 | 19 | #import 20 | 21 | @interface PFTTrackSegment : NSObject 22 | { 23 | double startTime; 24 | double endTime; 25 | } 26 | 27 | @end 28 | 29 | @interface XRTrackSegment : PFTTrackSegment 30 | @end 31 | -------------------------------------------------------------------------------- /Source/PFTTrackSegment.m: -------------------------------------------------------------------------------- 1 | // 2 | // PFTTrackSegment.m 3 | // Traced 4 | // 5 | // Created by Sidney Just 6 | // Copyright (c) 2013 by Sidney Just 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 8 | // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 9 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 10 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 11 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 16 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | // 18 | 19 | #import "PFTTrackSegment.h" 20 | 21 | @implementation PFTTrackSegment 22 | 23 | - (id)initWithCoder:(NSCoder *)decoder 24 | { 25 | if((self = [super init])) 26 | { 27 | // Probably _start and _end, but they are zero... 28 | // No idea what they mean 29 | [decoder decodeObject]; 30 | [decoder decodeObject]; 31 | 32 | // In seconds 33 | startTime = [[decoder decodeObject] doubleValue]; 34 | endTime = [[decoder decodeObject] doubleValue]; 35 | 36 | // _endTimeRange?! 37 | [decoder decodeObject]; 38 | } 39 | 40 | return self; 41 | } 42 | 43 | @end 44 | 45 | @implementation XRTrackSegment 46 | 47 | - (id)initWithCoder:(NSCoder *)decoder 48 | { 49 | if((self = [super initWithCoder:decoder])) 50 | { 51 | } 52 | 53 | return self; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /Source/XRRun.h: -------------------------------------------------------------------------------- 1 | // 2 | // XRRun.h 3 | // Traced 4 | // 5 | // Created by Sidney Just 6 | // Copyright (c) 2013 by Sidney Just 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 8 | // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 9 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 10 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 11 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 16 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | // 18 | 19 | #import 20 | 21 | @interface XRRun : NSObject 22 | { 23 | NSUInteger runNumber; 24 | NSTimeInterval startTime; 25 | NSTimeInterval endTime; 26 | 27 | NSMutableArray *trackSegments; 28 | NSMutableDictionary *runData; 29 | 30 | BOOL dataChanged; 31 | BOOL fetchedArchInfo; 32 | BOOL is64BitTarget; 33 | } 34 | 35 | @end 36 | 37 | @interface XRVideoCardRun : XRRun 38 | { 39 | NSMutableArray *sampleData; 40 | } 41 | 42 | @end 43 | 44 | /* 45 | sampleData contains an array of dictionaries with all the samples of the run 46 | the content of these dictionaries looks like this: 47 | 48 | { 49 | "Built-In" = "Built-In"; 50 | CommandBufferRenderCount = 33; 51 | CommandBufferSubmitCount = 0; 52 | CommandBufferTransferCount = 0; 53 | CoreAnimationFramesPerSecond = 27; 54 | "Device Utilization %" = 0; 55 | "Renderer Utilization %" = 0; 56 | SplitSceneCount = 0; 57 | TiledSceneBytes = 1720320; 58 | "Tiler Utilization %" = 0; 59 | XRVideoCardRunTimeStamp = 1012740; 60 | commandGLBytesPerSample = 0; 61 | contextGLCount = 3; 62 | finishGLWaitTime = 0; 63 | gartMapInBytesPerSample = 114753536; 64 | gartMapOutBytesPerSample = 32587776; 65 | gartUsedBytes = 85909504; 66 | hardwareWaitTime = 8402916; 67 | recoveryCount = 0; 68 | textureCount = "-13887"; 69 | } 70 | 71 | */ 72 | -------------------------------------------------------------------------------- /Source/XRRun.m: -------------------------------------------------------------------------------- 1 | // 2 | // XRRun.m 3 | // Traced 4 | // 5 | // Created by Sidney Just 6 | // Copyright (c) 2013 by Sidney Just 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 8 | // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 9 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 10 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 11 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 16 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | // 18 | 19 | #import "XRRun.h" 20 | 21 | #define kXRVideoCardRunTilerUtilizationKey @"Tiler Utilization %" 22 | #define kXRVideoCardRunDeviceUtilizationKey @"Device Utilization %" 23 | #define kXRVideoCardRunRendererUtilizationKey @"Renderer Utilization %" 24 | #define kXRVideoCardRunFPSKey @"CoreAnimationFramesPerSecond" 25 | #define kXRVideoCardRunTimestampKey @"XRVideoCardRunTimeStamp" 26 | 27 | @implementation XRRun 28 | 29 | - (id)initWithCoder:(NSCoder *)decoder 30 | { 31 | if((self = [super init])) 32 | { 33 | startTime = [[decoder decodeObject] doubleValue]; 34 | endTime = [[decoder decodeObject] doubleValue]; 35 | runNumber = [[decoder decodeObject] unsignedIntegerValue]; 36 | 37 | trackSegments = [[decoder decodeObject] retain]; 38 | 39 | // Totally not sure about these 40 | // They are numbers, but if this is the correct assignment... no idea. 41 | dataChanged = [[decoder decodeObject] boolValue]; 42 | fetchedArchInfo = [[decoder decodeObject] boolValue]; 43 | is64BitTarget = [[decoder decodeObject] boolValue]; 44 | 45 | runData = [[decoder decodeObject] retain]; 46 | } 47 | 48 | return self; 49 | } 50 | 51 | - (void)dealloc 52 | { 53 | [runData release]; 54 | [trackSegments release]; 55 | 56 | [super dealloc]; 57 | } 58 | 59 | 60 | @end 61 | 62 | @implementation XRVideoCardRun 63 | 64 | 65 | - (NSString *)formattedSample:(NSUInteger)index 66 | { 67 | NSDictionary *data = [sampleData objectAtIndex:index]; 68 | NSMutableString *result = [NSMutableString string]; 69 | 70 | double timestamp = [[data objectForKey:kXRVideoCardRunTimestampKey] doubleValue]; 71 | double milliseconds = timestamp / 1000.0; 72 | double seconds = milliseconds / 1000.0; 73 | 74 | [result appendFormat:@"FPS: %@ ", [data objectForKey:kXRVideoCardRunFPSKey]]; 75 | [result appendFormat:@"Device: %@%% ", [data objectForKey:kXRVideoCardRunDeviceUtilizationKey]]; 76 | [result appendFormat:@"Renderer: %@%% ", [data objectForKey:kXRVideoCardRunRendererUtilizationKey]]; 77 | [result appendFormat:@"Tiler: %@%% ", [data objectForKey:kXRVideoCardRunTilerUtilizationKey]]; 78 | [result appendFormat:@"Timestamp: %f ", seconds]; 79 | 80 | return result; 81 | } 82 | 83 | - (NSString *)description 84 | { 85 | NSString *start = [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:startTime] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterMediumStyle]; 86 | NSString *end = [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:endTime] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterMediumStyle]; 87 | 88 | NSMutableString *result = [NSMutableString stringWithFormat:@"Run %u, starting at %@, running until %@\n", (unsigned int)runNumber, start, end]; 89 | 90 | for(NSUInteger i=0; i<[sampleData count]; i++) 91 | { 92 | [result appendFormat:@"Sample %u: %@\n", (unsigned int)i, [self formattedSample:i]]; 93 | } 94 | 95 | return result; 96 | } 97 | 98 | 99 | 100 | - (id)initWithCoder:(NSCoder *)decoder 101 | { 102 | if((self = [super initWithCoder:decoder])) 103 | { 104 | // No idea what that is or if it actually belongs to this class or XRRun 105 | // It's an NSNumber, and XRRun doesn't have any more numbers according 106 | // to class-dump, so yeah... 107 | [decoder decodeObject]; 108 | 109 | sampleData = [[decoder decodeObject] retain]; 110 | 111 | // Here are now three more objects, which are all nil... 112 | // Anyone got any idea? 113 | [decoder decodeObject]; 114 | [decoder decodeObject]; 115 | [decoder decodeObject]; 116 | } 117 | 118 | return self; 119 | } 120 | 121 | - (void)dealloc 122 | { 123 | [sampleData release]; 124 | [super dealloc]; 125 | } 126 | 127 | @end 128 | -------------------------------------------------------------------------------- /Source/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Traced 4 | // 5 | // Created by Sidney Just 6 | // Copyright (c) 2013 by Sidney Just 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 8 | // documentation files (the "Software"), to deal in the Software without restriction, including without limitation 9 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 10 | // and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 11 | // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 13 | // INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 | // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 15 | // FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 16 | // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | // 18 | 19 | #import 20 | #import "XRRun.h" 21 | 22 | int main(int argc, const char *argv[]) 23 | { 24 | @autoreleasepool 25 | { 26 | // Read the trace file into memory, it assumes the extracted trace file content to be on the Desktop 27 | NSURL *traceFile = [NSURL fileURLWithPath:[@"~/Desktop/1.run" stringByExpandingTildeInPath]]; 28 | NSData *data = [NSData dataWithContentsOfURL:traceFile]; 29 | 30 | // Deserialize the data and dump its content 31 | XRVideoCardRun *run = [NSUnarchiver unarchiveObjectWithData:data]; 32 | NSLog(@"%@", run); 33 | } 34 | 35 | return 0; 36 | } 37 | 38 | -------------------------------------------------------------------------------- /Supporting files/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JustSid/Traced/1e4927f88ada8949950b4fe261367645287baac5/Supporting files/.DS_Store -------------------------------------------------------------------------------- /Supporting files/Traced-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Traced' target in the 'Traced' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Traced.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | E9532F27174FF45000FE0C66 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9532F26174FF45000FE0C66 /* Foundation.framework */; }; 11 | E9532F4217500B7B00FE0C66 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E9532F3B17500B7B00FE0C66 /* main.m */; }; 12 | E9532F4317500B7B00FE0C66 /* PFTTrackSegment.m in Sources */ = {isa = PBXBuildFile; fileRef = E9532F3D17500B7B00FE0C66 /* PFTTrackSegment.m */; }; 13 | E9532F4417500B7B00FE0C66 /* XRRun.m in Sources */ = {isa = PBXBuildFile; fileRef = E9532F3F17500B7B00FE0C66 /* XRRun.m */; }; 14 | /* End PBXBuildFile section */ 15 | 16 | /* Begin PBXCopyFilesBuildPhase section */ 17 | E9532F21174FF45000FE0C66 /* CopyFiles */ = { 18 | isa = PBXCopyFilesBuildPhase; 19 | buildActionMask = 2147483647; 20 | dstPath = /usr/share/man/man1/; 21 | dstSubfolderSpec = 0; 22 | files = ( 23 | ); 24 | runOnlyForDeploymentPostprocessing = 1; 25 | }; 26 | /* End PBXCopyFilesBuildPhase section */ 27 | 28 | /* Begin PBXFileReference section */ 29 | E9532F23174FF45000FE0C66 /* Traced */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Traced; sourceTree = BUILT_PRODUCTS_DIR; }; 30 | E9532F26174FF45000FE0C66 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 31 | E9532F3B17500B7B00FE0C66 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 32 | E9532F3C17500B7B00FE0C66 /* PFTTrackSegment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PFTTrackSegment.h; sourceTree = ""; }; 33 | E9532F3D17500B7B00FE0C66 /* PFTTrackSegment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PFTTrackSegment.m; sourceTree = ""; }; 34 | E9532F3E17500B7B00FE0C66 /* XRRun.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XRRun.h; sourceTree = ""; }; 35 | E9532F3F17500B7B00FE0C66 /* XRRun.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XRRun.m; sourceTree = ""; }; 36 | E9532F4117500B7B00FE0C66 /* Traced-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Traced-Prefix.pch"; sourceTree = ""; }; 37 | /* End PBXFileReference section */ 38 | 39 | /* Begin PBXFrameworksBuildPhase section */ 40 | E9532F20174FF45000FE0C66 /* Frameworks */ = { 41 | isa = PBXFrameworksBuildPhase; 42 | buildActionMask = 2147483647; 43 | files = ( 44 | E9532F27174FF45000FE0C66 /* Foundation.framework in Frameworks */, 45 | ); 46 | runOnlyForDeploymentPostprocessing = 0; 47 | }; 48 | /* End PBXFrameworksBuildPhase section */ 49 | 50 | /* Begin PBXGroup section */ 51 | E9532F1A174FF45000FE0C66 = { 52 | isa = PBXGroup; 53 | children = ( 54 | E9532F3A17500B7B00FE0C66 /* Source */, 55 | E9532F4017500B7B00FE0C66 /* Supporting files */, 56 | E9532F25174FF45000FE0C66 /* Frameworks */, 57 | E9532F24174FF45000FE0C66 /* Products */, 58 | ); 59 | sourceTree = ""; 60 | }; 61 | E9532F24174FF45000FE0C66 /* Products */ = { 62 | isa = PBXGroup; 63 | children = ( 64 | E9532F23174FF45000FE0C66 /* Traced */, 65 | ); 66 | name = Products; 67 | sourceTree = ""; 68 | }; 69 | E9532F25174FF45000FE0C66 /* Frameworks */ = { 70 | isa = PBXGroup; 71 | children = ( 72 | E9532F26174FF45000FE0C66 /* Foundation.framework */, 73 | ); 74 | name = Frameworks; 75 | sourceTree = ""; 76 | }; 77 | E9532F3A17500B7B00FE0C66 /* Source */ = { 78 | isa = PBXGroup; 79 | children = ( 80 | E9532F3C17500B7B00FE0C66 /* PFTTrackSegment.h */, 81 | E9532F3D17500B7B00FE0C66 /* PFTTrackSegment.m */, 82 | E9532F3E17500B7B00FE0C66 /* XRRun.h */, 83 | E9532F3F17500B7B00FE0C66 /* XRRun.m */, 84 | E9532F3B17500B7B00FE0C66 /* main.m */, 85 | ); 86 | path = Source; 87 | sourceTree = ""; 88 | }; 89 | E9532F4017500B7B00FE0C66 /* Supporting files */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | E9532F4117500B7B00FE0C66 /* Traced-Prefix.pch */, 93 | ); 94 | path = "Supporting files"; 95 | sourceTree = ""; 96 | }; 97 | /* End PBXGroup section */ 98 | 99 | /* Begin PBXNativeTarget section */ 100 | E9532F22174FF45000FE0C66 /* Traced */ = { 101 | isa = PBXNativeTarget; 102 | buildConfigurationList = E9532F31174FF45000FE0C66 /* Build configuration list for PBXNativeTarget "Traced" */; 103 | buildPhases = ( 104 | E9532F1F174FF45000FE0C66 /* Sources */, 105 | E9532F20174FF45000FE0C66 /* Frameworks */, 106 | E9532F21174FF45000FE0C66 /* CopyFiles */, 107 | ); 108 | buildRules = ( 109 | ); 110 | dependencies = ( 111 | ); 112 | name = Traced; 113 | productName = Traced; 114 | productReference = E9532F23174FF45000FE0C66 /* Traced */; 115 | productType = "com.apple.product-type.tool"; 116 | }; 117 | /* End PBXNativeTarget section */ 118 | 119 | /* Begin PBXProject section */ 120 | E9532F1B174FF45000FE0C66 /* Project object */ = { 121 | isa = PBXProject; 122 | attributes = { 123 | LastUpgradeCheck = 0460; 124 | ORGANIZATIONNAME = "Sidney Just"; 125 | }; 126 | buildConfigurationList = E9532F1E174FF45000FE0C66 /* Build configuration list for PBXProject "Traced" */; 127 | compatibilityVersion = "Xcode 3.2"; 128 | developmentRegion = English; 129 | hasScannedForEncodings = 0; 130 | knownRegions = ( 131 | en, 132 | ); 133 | mainGroup = E9532F1A174FF45000FE0C66; 134 | productRefGroup = E9532F24174FF45000FE0C66 /* Products */; 135 | projectDirPath = ""; 136 | projectRoot = ""; 137 | targets = ( 138 | E9532F22174FF45000FE0C66 /* Traced */, 139 | ); 140 | }; 141 | /* End PBXProject section */ 142 | 143 | /* Begin PBXSourcesBuildPhase section */ 144 | E9532F1F174FF45000FE0C66 /* Sources */ = { 145 | isa = PBXSourcesBuildPhase; 146 | buildActionMask = 2147483647; 147 | files = ( 148 | E9532F4217500B7B00FE0C66 /* main.m in Sources */, 149 | E9532F4317500B7B00FE0C66 /* PFTTrackSegment.m in Sources */, 150 | E9532F4417500B7B00FE0C66 /* XRRun.m in Sources */, 151 | ); 152 | runOnlyForDeploymentPostprocessing = 0; 153 | }; 154 | /* End PBXSourcesBuildPhase section */ 155 | 156 | /* Begin XCBuildConfiguration section */ 157 | E9532F2F174FF45000FE0C66 /* Debug */ = { 158 | isa = XCBuildConfiguration; 159 | buildSettings = { 160 | ALWAYS_SEARCH_USER_PATHS = NO; 161 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 162 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 163 | CLANG_CXX_LIBRARY = "libc++"; 164 | CLANG_WARN_CONSTANT_CONVERSION = YES; 165 | CLANG_WARN_EMPTY_BODY = YES; 166 | CLANG_WARN_ENUM_CONVERSION = YES; 167 | CLANG_WARN_INT_CONVERSION = YES; 168 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 169 | COPY_PHASE_STRIP = NO; 170 | GCC_C_LANGUAGE_STANDARD = gnu99; 171 | GCC_DYNAMIC_NO_PIC = NO; 172 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 173 | GCC_OPTIMIZATION_LEVEL = 0; 174 | GCC_PREPROCESSOR_DEFINITIONS = ( 175 | "DEBUG=1", 176 | "$(inherited)", 177 | ); 178 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 179 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 180 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 181 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 182 | GCC_WARN_UNUSED_VARIABLE = YES; 183 | MACOSX_DEPLOYMENT_TARGET = 10.8; 184 | ONLY_ACTIVE_ARCH = YES; 185 | SDKROOT = macosx; 186 | }; 187 | name = Debug; 188 | }; 189 | E9532F30174FF45000FE0C66 /* Release */ = { 190 | isa = XCBuildConfiguration; 191 | buildSettings = { 192 | ALWAYS_SEARCH_USER_PATHS = NO; 193 | ARCHS = "$(ARCHS_STANDARD_64_BIT)"; 194 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 195 | CLANG_CXX_LIBRARY = "libc++"; 196 | CLANG_WARN_CONSTANT_CONVERSION = YES; 197 | CLANG_WARN_EMPTY_BODY = YES; 198 | CLANG_WARN_ENUM_CONVERSION = YES; 199 | CLANG_WARN_INT_CONVERSION = YES; 200 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 201 | COPY_PHASE_STRIP = YES; 202 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 203 | GCC_C_LANGUAGE_STANDARD = gnu99; 204 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 205 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 206 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 207 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 208 | GCC_WARN_UNUSED_VARIABLE = YES; 209 | MACOSX_DEPLOYMENT_TARGET = 10.8; 210 | SDKROOT = macosx; 211 | }; 212 | name = Release; 213 | }; 214 | E9532F32174FF45000FE0C66 /* Debug */ = { 215 | isa = XCBuildConfiguration; 216 | buildSettings = { 217 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 218 | GCC_PREFIX_HEADER = "Supporting files/Traced-Prefix.pch"; 219 | PRODUCT_NAME = "$(TARGET_NAME)"; 220 | }; 221 | name = Debug; 222 | }; 223 | E9532F33174FF45000FE0C66 /* Release */ = { 224 | isa = XCBuildConfiguration; 225 | buildSettings = { 226 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 227 | GCC_PREFIX_HEADER = "Supporting files/Traced-Prefix.pch"; 228 | PRODUCT_NAME = "$(TARGET_NAME)"; 229 | }; 230 | name = Release; 231 | }; 232 | /* End XCBuildConfiguration section */ 233 | 234 | /* Begin XCConfigurationList section */ 235 | E9532F1E174FF45000FE0C66 /* Build configuration list for PBXProject "Traced" */ = { 236 | isa = XCConfigurationList; 237 | buildConfigurations = ( 238 | E9532F2F174FF45000FE0C66 /* Debug */, 239 | E9532F30174FF45000FE0C66 /* Release */, 240 | ); 241 | defaultConfigurationIsVisible = 0; 242 | defaultConfigurationName = Release; 243 | }; 244 | E9532F31174FF45000FE0C66 /* Build configuration list for PBXNativeTarget "Traced" */ = { 245 | isa = XCConfigurationList; 246 | buildConfigurations = ( 247 | E9532F32174FF45000FE0C66 /* Debug */, 248 | E9532F33174FF45000FE0C66 /* Release */, 249 | ); 250 | defaultConfigurationIsVisible = 0; 251 | defaultConfigurationName = Release; 252 | }; 253 | /* End XCConfigurationList section */ 254 | }; 255 | rootObject = E9532F1B174FF45000FE0C66 /* Project object */; 256 | } 257 | -------------------------------------------------------------------------------- /Traced.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | --------------------------------------------------------------------------------