@@ -298,10 +298,10 @@ The header (chunk) is 224 bytes of size and consists of:
298
298
| 4 | 4 | 0x0011 | Chunk sub tag (subtag)
299
299
| 8 | 8 | 208 | Chunk data size (length)
300
300
4+| _Chunk data (tracev3_chunk_header)_
301
- | 16 | 4 | | Mach timebase numerator (first number in timebase # / #)
302
- | 20 | 4 | | Mach timebase denominator (second number in timebase # / #)
301
+ | 16 | 4 | | Timebase numerator (first number in timebase # / #)
302
+ | 20 | 4 | | Timebase denominator (second number in timebase # / #)
303
303
| 24 | 8 | | Start time +
304
- Contains a continuous time
304
+ Contains a Mach continuous timestamp
305
305
| 32 | 4 | | [yellow-background]*Unknown time (related to starttime?)* +
306
306
Contains number of seconds since January 1, 1970 00:00:00 UTC (POSIX epoch), disregarding leap seconds
307
307
| 36 | 4 | | [yellow-background]*Unknown*
@@ -341,7 +341,8 @@ The header continuous time sub chunk is 16 bytes of size and consist of:
341
341
| 4 | 4 | | Sub chunk data size +
342
342
The size value does not include the 8 bytes of the sub chunk tag and data size
343
343
4+| _The continuous time sub chunk data (tracev3_subchunk_continuous)_
344
- | 8 | 8 | | Continuous time (value data related to starttime?)
344
+ | 8 | 8 | | Continuous time +
345
+ Contains a Mach continuous timestamp
345
346
|===
346
347
347
348
==== [[header_system_information_sub_chunk]]Header system information sub chunk
@@ -423,7 +424,7 @@ The offset is relative to the start of the catalog UUIDs
423
424
| 24 | 2 | | Number of sub chunks
424
425
| 26 | 6 | | [yellow-background]*Unknown (Reserved or Padding)*
425
426
| 32 | 8 | | Earliest firehose timestamp +
426
- Contains continuous time
427
+ Contains a Mach continuous timestamp
427
428
| 40 | 16 x ... | | Catalog UUIDs +
428
429
Contains an array of UUIDs stored in big-endian
429
430
| ... | ... | | Catalog sub system strings +
@@ -501,8 +502,10 @@ The catalog sub chunk describes metadata for the chunk to follow and consists of
501
502
[cols="1,1,1,5",options="header"]
502
503
|===
503
504
| Offset | Size | Value | Description
504
- | 0 | 8 | | Start (earliest) continuous time
505
- | 8 | 8 | | End (latest) continuous time
505
+ | 0 | 8 | | Start (earliest) continuous time +
506
+ Contains a Mach continuous timestamp
507
+ | 8 | 8 | | End (latest) continuous time +
508
+ Contains a Mach continuous timestamp
506
509
| 16 | 4 | | Uncompressed size of chunk
507
510
| 20 | 4 | 0x100 | Compression algorithm used (0x100 = LZ4)
508
511
| 24 | 4 | | Number of indexes (num_indexes or procinfos)
@@ -599,7 +602,8 @@ Contains 4096 (0x1000) if there is no private data and `-(4096 - offset)` as off
599
602
| 36 | 2 | | [yellow-background]*Unknown*
600
603
| 38 | 1 | | Stream type
601
604
| 39 | 1 | | [yellow-background]*Unknown3*
602
- | 40 | 8 | | Base continuous time for events in the firehose chunk
605
+ | 40 | 8 | | Base continuous time for events in the firehose chunk +
606
+ Contains a Mach continuous timestamp
603
607
4+|
604
608
| 48 | data size | | data +
605
609
Contains one or more <<tracev3_firehose_tracepoint,Firehose tracepoints>>
@@ -792,11 +796,11 @@ Contains inline data or a value data range
792
796
[cols="1,1,5",options="header"]
793
797
|===
794
798
| Value | Identifier | Description
795
- | 0x00 | | [yellow-background]*Unknown (floating-point value? )* +
799
+ | 0x00 | | [yellow-background]*Unknown (integer or floating-point value)* +
796
800
Contains a 32-bit or 64-bit value
797
801
| 0x01 | | [yellow-background]*Unknown (private value)* +
798
802
Contains a 32-bit value, formatted as "<private>"
799
- | 0x02 | | [yellow-background]*Unknown (integer)* +
803
+ | 0x02 | | [yellow-background]*Unknown (integer or floating-point value )* +
800
804
Contains a 8-bit, 16-bit, 32-bit or 64-bit value
801
805
3+|
802
806
| 0x10 | | [yellow-background]*Unknown (integer format precision)* +
@@ -918,6 +922,8 @@ Contains the delta relative to the base continuous time in the <<tracev3_firehos
918
922
Note that "has private data range flag (0x0100)" has been observed to be set
919
923
but without any obvious changes to the activity firehose tracepoint structure.
920
924
925
+ [yellow-background]*TODO: determine meaning of MSB of UUID entry load address (lower 32-bit)*
926
+
921
927
==== [[tracev3_firehose_tracepoint_trace]]Trace firehose tracepoint
922
928
923
929
A trace firehose tracepoint is variable of size and consists of:
@@ -989,6 +995,8 @@ Where the range offset is a virtual private strings offset in the <<tracev3_fire
989
995
| ... | ... | | 64-bit alignment padding
990
996
|===
991
997
998
+ [yellow-background]*TODO: determine meaning of MSB of UUID entry load address (lower 32-bit)*
999
+
992
1000
==== [[tracev3_firehose_tracepoint_singpost]]Signpost firehose tracepoint
993
1001
994
1002
A signpost firehose tracepoint is variable of size and consists of:
@@ -1039,6 +1047,8 @@ Where the range offset is a virtual private strings offset in the <<tracev3_fire
1039
1047
| ... | ... | | 64-bit alignment padding
1040
1048
|===
1041
1049
1050
+ [yellow-background]*TODO: determine meaning of MSB of UUID entry load address (lower 32-bit)*
1051
+
1042
1052
==== [[tracev3_firehose_tracepoint_loss]]Loss firehose tracepoint
1043
1053
1044
1054
A loss firehose tracepoint is variable of size and consists of:
@@ -1135,6 +1145,7 @@ Other observerd value type decoders are:
1135
1145
| "mdnsresponder:domain_name" | |
1136
1146
| "mdnsresponder:ip_addr" | | Formatted as a <<mdnsresponder_ip_address,mDNSResponder IP address>>
1137
1147
| "mdnsresponder:mac_addr" | | Formatted as a <<mdnsresponder_mac_address,mDNSResponder MAC address>>
1148
+ | "name=NAME" | | Name formatting argument, where NAME is the name of the value, which has no additional formatting
1138
1149
| "network:in_addr" | | Formatted as an IPv4 address, for example "127.0.0.1"
1139
1150
| "network:in6_addr" | | Formatted as an IPv6 address, for example "fe80::f:86ff:fee9:5c16"
1140
1151
| "network:sockaddr" | |
@@ -1144,9 +1155,14 @@ Other observerd value type decoders are:
1144
1155
| "odtypes:mbr_details" | |
1145
1156
| "odtypes:mbridtype" | |
1146
1157
| "odtypes:nt_sid_t" | |
1147
- | "sensitive" | | Sensitive log argument, which is formatted as "<private>"
1148
- | "private" | | Private log argument, which is formatted as "<private>"
1149
- | "public" | | Public log argument, which has no additional formatting
1158
+ | "sensitive" | | Sensitive formatting argument, which is formatted as "<private>"
1159
+ | "signpost.description:attribute" | | Formatted as a signpost description attribute, for example `__##__signpost.description#____#attribute#_##_#efilogin-helper##__##`
1160
+ | "signpost.description:begin_time" | | Formatted as a signpost description begin time, for example `__##__signpost.description#____#begin_time#_##_#2180300470618##__##`
1161
+ | "signpost.description:end_time" | | Formatted as a signpost description end time, for example `__##__signpost.description#____#end_time#_##_#1005756624719##__##`
1162
+ | "signpost.telemetry:number1" | | For example `__##__signpost.telemetry#____#number1#_##_#5.8203125##__##`
1163
+ | "signpost.telemetry:string1" | | For example `__##__signpost.telemetry#____#string1#_##_#executeQueryBegin##__##`
1164
+ | "private" | | Private formatting argument, which is formatted as "<private>"
1165
+ | "public" | | Public formatting argument, which has no additional formatting
1150
1166
|===
1151
1167
1152
1168
[NOTE]
@@ -1238,7 +1254,8 @@ The oversize chunk is variable of size and consists of:
1238
1254
| 24 | 4 | | Second number in proc_id #@#
1239
1255
| 28 | 1 | | TTL
1240
1256
| 29 | 3 | 0 | [yellow-background]*Unknown (Reserved?)*
1241
- | 32 | 8 | | Continuous time
1257
+ | 32 | 8 | | Timestamp +
1258
+ Contains a Mach continuous timestamp
1242
1259
| 40 | 4 | | Data reference index
1243
1260
| 44 | 2 | | Size of public data
1244
1261
| 46 | 2 | | Size of private data
@@ -1265,16 +1282,17 @@ The StateDump chunk is variable of size and consists of:
1265
1282
| 24 | 4 | | Second number in proc_id #@#
1266
1283
| 28 | 1 | | TTL
1267
1284
| 29 | 3 | 0 | [yellow-background]*Unknown (Reserved?)*
1268
- | 32 | 8 | | Continuous time
1285
+ | 32 | 8 | | Timestamp +
1286
+ Contains a Mach continuous timestamp
1269
1287
| 40 | 8 | | Activity identifier
1270
1288
| 48 | 16 | | [yellow-background]*Unknown identifier* +
1271
1289
Contains a UUID stored in big-endian
1272
1290
| 64 | 4 | | Data type
1273
1291
| 68 | 4 | | Data size
1274
1292
| 72 | 64 | | [yellow-background]*Unknown* +
1275
- [yellow-background]*Oncly used when data type is 3?*
1293
+ [yellow-background]*Only used when data type is 3?*
1276
1294
| 136 | 64 | | [yellow-background]*Unknown* +
1277
- [yellow-background]*Oncly used when data type is 3?*
1295
+ [yellow-background]*Only used when data type is 3?*
1278
1296
| 200 | 64 | | Name +
1279
1297
Contains an UTF-8 formatted string with an end-of-string character
1280
1298
| 264 | data size | | Data
@@ -1308,7 +1326,7 @@ The SimpleDump chunk is variable of size and consists of:
1308
1326
| 29 | 1 | | Type
1309
1327
| 29 | 2 | 0 | [yellow-background]*Unknown (Reserved?)*
1310
1328
| 32 | 8 | | Timestamp +
1311
- Contains a continuous time
1329
+ Contains a Mach continuous timestamp
1312
1330
| 40 | 8 | | Thread identifier
1313
1331
| 48 | 8 | | Offset
1314
1332
| 56 | 16 | | Sender identifier +
@@ -1356,14 +1374,14 @@ The timesync boot record is 48 bytes of size and consists of:
1356
1374
| Offset | Size | Value | Description
1357
1375
| 0 | 2 | "\xb0\xbb" | Signature
1358
1376
| 2 | 2 | 48 | Size of record
1359
- | 4 | 4 | | [yellow-background]*Unknown*
1377
+ | 4 | 4 | | [yellow-background]*Unknown (Seen: 0) *
1360
1378
| 8 | 16 | | Boot identifier (boot UUID)
1361
- | 24 | 4 | | Timebase numerator (first number in timebase # / #)
1362
- | 28 | 4 | | Timebase denominator (second number in timebase # / #)
1379
+ | 24 | 4 | | (Mach) Timebase numerator (first number in timebase # / #)
1380
+ | 28 | 4 | | (Mach) Timebase denominator (second number in timebase # / #)
1363
1381
| 32 | 8 | | Timestamp (or boot time) +
1364
1382
Signed integer that contains the number of nanoseconds since January 1, 1970 00:00:00 UTC or 0 if not set
1365
1383
| 40 | 4 | | Time zone offset in minutes +
1366
- Contains a signed integer
1384
+ Contains a signed integer that contains the number of minutes relative from UTC, for example -60 represents UTC+1
1367
1385
| 44 | 4 | | Daylight savings (DST) flag (0 = no DST, 1 = DST)
1368
1386
|===
1369
1387
@@ -1383,14 +1401,13 @@ The timesync sync record is 32 bytes of size and consists of:
1383
1401
| Offset | Size | Value | Description
1384
1402
| 0 | 2 | "Ts" | Signature
1385
1403
| 2 | 2 | 32 | Size of record
1386
- | 4 | 4 | | [yellow-background]*Unknown (flags?)* +
1387
- Seen: 0 and 1
1404
+ | 4 | 4 | | [yellow-background]*Unknown (Seen: 0 and 1)*
1388
1405
| 8 | 8 | | Kernel time +
1389
1406
Contains a Mach continuous timestamp
1390
1407
| 16 | 8 | | Timestamp (or wall time) +
1391
1408
Signed integer that contains the number of nanoseconds since January 1, 1970 00:00:00 UTC or 0 if not set
1392
1409
| 24 | 4 | | Time zone offset in minutes +
1393
- Contains a signed integer
1410
+ Contains a signed integer that contains the number of minutes relative from UTC, for example -60 represents UTC+1
1394
1411
| 28 | 4 | | Daylight savings (DST) flag (0 = no DST, 1 = DST)
1395
1412
|===
1396
1413
@@ -1492,10 +1509,9 @@ and consist of:
1492
1509
| Offset | Size | Value | Description
1493
1510
| 0 | 4 | | (dsc) text offset
1494
1511
| 4 | 4 | | (dsc) text size
1495
- | 8 | 16 | | Sender (process or library) identifier +
1496
- Contains a UUID stored in big-endian +
1497
- [yellow-background]*Does this reference to the uuidtext file?*
1498
- | 24 | 4 | | Path offset +
1512
+ | 8 | 16 | | Image (process or library) identifier +
1513
+ Contains a UUID stored in big-endian
1514
+ | 24 | 4 | | Image (process or library) path offset +
1499
1515
The offset is relative to the start of the file
1500
1516
|===
1501
1517
@@ -1509,10 +1525,9 @@ and consist of:
1509
1525
| Offset | Size | Value | Description
1510
1526
| 0 | 8 | | (dsc) text offset
1511
1527
| 8 | 4 | | (dsc) text size
1512
- | 12 | 16 | | Sender (process or library) identifier +
1513
- Contains a UUID stored in big-endian +
1514
- [yellow-background]*Does this reference to the uuidtext file?*
1515
- | 28 | 4 | | Path offset +
1528
+ | 12 | 16 | | Image (process or library) identifier +
1529
+ Contains a UUID stored in big-endian
1530
+ | 28 | 4 | | Image (process or library) path offset +
1516
1531
The offset is relative to the start of the file
1517
1532
|===
1518
1533
@@ -1566,7 +1581,7 @@ The UUID text (uuidtext) entry descriptor is 8 bytes of size and consists of:
1566
1581
[cols="1,1,1,5",options="header"]
1567
1582
|===
1568
1583
| Offset | Size | Value | Description
1569
- | 0 | ... | | Path of sender process/ library +
1584
+ | 0 | ... | | Image (process or library) path +
1570
1585
Contains an UTF-8 formatted string with an end-of-string character
1571
1586
|===
1572
1587
@@ -1854,6 +1869,9 @@ Output starts with *.tracev3 files under "Signpost" followed by
1854
1869
}]
1855
1870
....
1856
1871
1872
+ traceID consists of:
1873
+ ( fmt lower 32-bit << 32 ) | ( tp flags << 16 ) | ( tp log type << 8 ) | ( tp record type )
1874
+
1857
1875
:numbered!:
1858
1876
[appendix]
1859
1877
== References
0 commit comments