<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildMachineOSBuild</key>
	<string>23A344017</string>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>CPUTrace</string>
	<key>CFBundleIdentifier</key>
	<string>com.apple.AppleTracingSupport.CPUTraceProvider</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>CPUTrace</string>
	<key>CFBundlePackageType</key>
	<string>BNDL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSupportedPlatforms</key>
	<array>
		<string>MacOSX</string>
	</array>
	<key>CFBundleVersion</key>
	<string>69</string>
	<key>DTCompiler</key>
	<string>com.apple.compilers.llvm.clang.1_0</string>
	<key>DTPlatformBuild</key>
	<string>25E223</string>
	<key>DTPlatformName</key>
	<string>macosx</string>
	<key>DTPlatformVersion</key>
	<string>26.4</string>
	<key>DTSDKBuild</key>
	<string>25E223</string>
	<key>DTSDKName</key>
	<string>macosx26.4.internal</string>
	<key>DTXcode</key>
	<string>2630</string>
	<key>DTXcodeBuild</key>
	<string>17E6107</string>
	<key>Documentation</key>
	<dict>
		<key>Description</key>
		<string>AppleProcessorTrace (aka CPUTrace) provides a precise record of every instruction executed, on all cores/threads, over a window of time.  You can then see precisely where each cycle was spent across user and/or kernel space.</string>
		<key>Options</key>
		<array>
			<dict>
				<key>Description</key>
				<string>List of systems to be traced. Defaults to only tracing XNU.</string>
				<key>Option</key>
				<string>systems</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) streaming to filesystem.  Defaults to enabled.</string>
				<key>Option</key>
				<string>stream</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) throttling a workload to reduce trace packet loss.  Defaults to disabled.</string>
				<key>Option</key>
				<string>throttle</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) capturing addresses. Records the address every time there is a load or store instruction. Defaults to disabled.</string>
				<key>Option</key>
				<string>address</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Rate-limit writes to the filesystem with a user-provided limit expressed in MB/s. When the hardware generates trace packets at a rate higher than the limit, data is discarded. This option requires --CPUTrace:stream to be enabled. By default, rate limiting is disabled.</string>
				<key>Option</key>
				<string>rate-limit</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1=ringbuffer, 2=ringbuffer-memory, 3=ringbuffer-filesystem) or disable (0) wraparound mode.  Defaults to disabled.</string>
				<key>Option</key>
				<string>wrap</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) production trace.  Defaults to disabled.</string>
				<key>Option</key>
				<string>prod</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) driver trace.  Defaults to enabled.</string>
				<key>Option</key>
				<string>driver</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Record a process specified by pid_t.  Specifying 0 for the process id will limit tracing to the kernel.</string>
				<key>Option</key>
				<string>process-id</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) collecting all of the referenced symbols as part of the unified Symbols schema for the trace. Defaults to enabled.</string>
				<key>Option</key>
				<string>collect-symbols</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) copying images. This option causes a significant trace size increase. When the `decode` option is disabled, this makes the final trace portable to other machines.</string>
				<key>Option</key>
				<string>copy-images</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) decoding the trace on-device. This makes the final trace smaller and faster to open, but takes time. Defaults to enabled.</string>
				<key>Option</key>
				<string>decode</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Compresses results while decoding, achieving 3-5x size reduction. Value must be a choice of an algorithm: LZ4, LZ4_RAW or LZFSE, Only valid when decode=1 is set. </string>
				<key>Option</key>
				<string>decode-compression</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Size of the virtual ringbuffer (memory, filesystem) in megabytes.  Defaults to 0.</string>
				<key>Option</key>
				<string>wrap-size</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Size limit trace can use for recording in megabytes. Once reach the limit, data recording will stop. Defaults to 0 - unlimited.</string>
				<key>Option</key>
				<string>size-limit</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Dynamic trace buffer size in megabytes. Defaults to 0 - system picks an appropriate size.</string>
				<key>Option</key>
				<string>trace-buffer-size</string>
			</dict>
			<dict>
				<key>Description</key>
				<string>Enable (1) or disable (0) CPMU trace.  Defaults to enabled.</string>
				<key>Option</key>
				<string>cpmu</string>
			</dict>
		</array>
		<key>Synopsis</key>
		<string>Collect HW Processor Trace data alongside SW events</string>
	</dict>
	<key>LSMinimumSystemVersion</key>
	<string>26.4</string>
	<key>NSPrincipalClass</key>
	<string>CPUTraceProvider</string>
</dict>
</plist>
