Skip to content

Commit 14852af

Browse files
committed
Add PGM-style allocation stack logging for bmalloc allocations
https://bugs.webkit.org/show_bug.cgi?id=299621 rdar://153737681 Reviewed by Yusuke Suzuki. As another useful diagnostic tool, we want to add in allocation stack logging for bmalloc's allocations. Memory Allocation Records (MAR) track metadata about where allocations were made, enabling the analysis of these records if we crash. We aim to utilize this to help debug bugs involving misuse of allocated memory, likely a crash caught by features such as MIE. MAR ensures that the memory access patterns are not disrupted, but we are still able to log some metadata to diagnose bugs at crash time. Canonical link: https://commits.webkit.org/301663@main
1 parent 560b0ef commit 14852af

18 files changed

Lines changed: 984 additions & 15 deletions
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Copyright (c) 2025 Apple Inc. All rights reserved.
3+
*
4+
* Redistribution and use in source and binary forms, with or without
5+
* modification, are permitted provided that the following conditions
6+
* are met:
7+
* 1. Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* 2. Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
*
13+
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
*/
25+
26+
#include "config.h"
27+
#include "MARReportCrashPrivate.h"
28+
29+
#ifdef __APPLE__
30+
31+
#if !USE(SYSTEM_MALLOC)
32+
#include <bmalloc/BPlatform.h>
33+
#if BENABLE(LIBPAS)
34+
#include <bmalloc/pas_mar_report_crash.h>
35+
#endif
36+
#endif
37+
38+
kern_return_t MARReportCrashExtractResults(vm_address_t faultAddress, mach_vm_address_t marGlobalRegistry, unsigned version, task_t task, pas_mar_crash_report* report, crash_reporter_memory_reader_t crmReader)
39+
{
40+
#if !USE(SYSTEM_MALLOC)
41+
#if BENABLE(LIBPAS)
42+
return pas_mar_extract_crash_report(faultAddress, marGlobalRegistry, version, task, report, crmReader);
43+
#endif
44+
#endif
45+
UNUSED_PARAM(faultAddress);
46+
UNUSED_PARAM(marGlobalRegistry);
47+
UNUSED_PARAM(version);
48+
UNUSED_PARAM(task);
49+
UNUSED_PARAM(report);
50+
UNUSED_PARAM(crmReader);
51+
return KERN_FAILURE;
52+
}
53+
#endif /* __APPLE__ */
54+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2025 Apple Inc. All rights reserved.
3+
*
4+
* Redistribution and use in source and binary forms, with or without
5+
* modification, are permitted provided that the following conditions
6+
* are met:
7+
* 1. Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* 2. Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
*
13+
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
*/
25+
26+
#pragma once
27+
28+
#include <JavaScriptCore/JSBase.h>
29+
30+
#ifdef __APPLE__
31+
#include <bmalloc/pas_mar_report_crash.h>
32+
33+
#ifdef __cplusplus
34+
extern "C" {
35+
#endif
36+
37+
JS_EXPORT kern_return_t MARReportCrashExtractResults(vm_address_t fault_address, mach_vm_address_t mar_global_registry, unsigned version, task_t, pas_mar_crash_report*, crash_reporter_memory_reader_t crm_reader);
38+
39+
#ifdef __cplusplus
40+
}
41+
#endif
42+
43+
#endif /* __APPLE__ */
44+

‎Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2132,6 +2132,7 @@
21322132
E3FF75331D9CEA1800C7E16D /* DOMJITGetterSetter.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FF752F1D9CEA1200C7E16D /* DOMJITGetterSetter.h */; settings = {ATTRIBUTES = (Private, ); }; };
21332133
E49DC16C12EF294E00184A1F /* SourceProviderCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC15112EF272200184A1F /* SourceProviderCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
21342134
E49DC16D12EF295300184A1F /* SourceProviderCacheItem.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC14912EF261A00184A1F /* SourceProviderCacheItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
2135+
F300DBB02E259A8B00430A24 /* MARReportCrashPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F300DBAE2E259A7900430A24 /* MARReportCrashPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
21352136
F323932D2A43748000421AD2 /* WasmFunctionIPIntMetadataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = F323932B2A43748000421AD2 /* WasmFunctionIPIntMetadataGenerator.h */; settings = {ATTRIBUTES = (Private, ); }; };
21362137
F395BE252A43C5920083DE3A /* InPlaceInterpreter.h in Headers */ = {isa = PBXBuildFile; fileRef = F395BE242A43C58B0083DE3A /* InPlaceInterpreter.h */; settings = {ATTRIBUTES = (Private, ); }; };
21372138
F3D9C2392A426CB8006EE152 /* WasmIPIntGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D9C2352A426CB7006EE152 /* WasmIPIntGenerator.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -6019,6 +6020,8 @@
60196020
E49DC14912EF261A00184A1F /* SourceProviderCacheItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceProviderCacheItem.h; sourceTree = "<group>"; };
60206021
E49DC15112EF272200184A1F /* SourceProviderCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceProviderCache.h; sourceTree = "<group>"; };
60216022
E49DC15512EF277200184A1F /* SourceProviderCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceProviderCache.cpp; sourceTree = "<group>"; };
6023+
F300DBAE2E259A7900430A24 /* MARReportCrashPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MARReportCrashPrivate.h; sourceTree = "<group>"; };
6024+
F300DBAF2E259A7900430A24 /* MARReportCrashPrivate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MARReportCrashPrivate.cpp; sourceTree = "<group>"; };
60226025
F323932B2A43748000421AD2 /* WasmFunctionIPIntMetadataGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WasmFunctionIPIntMetadataGenerator.h; sourceTree = "<group>"; };
60236026
F323932C2A43748000421AD2 /* WasmFunctionIPIntMetadataGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WasmFunctionIPIntMetadataGenerator.cpp; sourceTree = "<group>"; };
60246027
F3459D7423973ABD00DCD27A /* InspectorTarget.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorTarget.cpp; sourceTree = "<group>"; };
@@ -7549,6 +7552,8 @@
75497552
86E3C60B167BAB87006D760A /* JSWrapperMap.mm */,
75507553
E3D3515E241B89CF008DC16E /* MarkedJSValueRefArray.cpp */,
75517554
E3D3515D241B89CE008DC16E /* MarkedJSValueRefArray.h */,
7555+
F300DBAF2E259A7900430A24 /* MARReportCrashPrivate.cpp */,
7556+
F300DBAE2E259A7900430A24 /* MARReportCrashPrivate.h */,
75527557
86F3EEB9168CCF750077B92A /* ObjCCallbackFunction.h */,
75537558
86F3EEBA168CCF750077B92A /* ObjCCallbackFunction.mm */,
75547559
86F3EEB616855A5B0077B92A /* ObjcRuntimeExtras.h */,
@@ -11834,6 +11839,7 @@
1183411839
0F9DAA091FD1C3CF0079C5B2 /* MarkingConstraintSolver.h in Headers */,
1183511840
142D6F1213539A4100B02E86 /* MarkStack.h in Headers */,
1183611841
0F6453181FD246A7002432A1 /* MarkStackMergingConstraint.h in Headers */,
11842+
F300DBB02E259A8B00430A24 /* MARReportCrashPrivate.h in Headers */,
1183711843
8612E4CD152389EC00C836BE /* MatchResult.h in Headers */,
1183811844
4340A4851A9051AF00D73CCA /* MathCommon.h in Headers */,
1183911845
BC18C43C0E16F5CD00B34460 /* MathObject.h in Headers */,

‎Source/JavaScriptCore/JavaScriptCore_Private.modulemap‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ framework module JavaScriptCore_Private [system] {
8282
export *
8383
}
8484

85+
explicit module MARReportCrashPrivate {
86+
header "MARReportCrashPrivate.h"
87+
export *
88+
}
89+
8590
explicit module PASReportCrashPrivate {
8691
header "PASReportCrashPrivate.h"
8792
export *
@@ -114,6 +119,7 @@ framework module JavaScriptCore_Private [system] {
114119
exclude header "JSVirtualMachinePrivate.h"
115120
exclude header "JSWeakPrivate.h"
116121
exclude header "JSWeakObjectMapRefPrivate.h"
122+
exclude header "MARReportCrashPrivate.h"
117123
exclude header "PASReportCrashPrivate.h"
118124

119125
explicit module * {

‎Source/JavaScriptCore/SourcesCocoa.txt‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ API/JSVirtualMachine.mm @nonARC
3434
API/JSWrapperMap.mm @nonARC
3535
API/ObjCCallbackFunction.mm @nonARC
3636
API/PASReportCrashPrivate.cpp
37+
API/MARReportCrashPrivate.cpp
3738

3839
// Use inspector/remote/SourcesCocoa.txt for Remote Inspector files

‎Source/bmalloc/CMakeLists.txt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ set(bmalloc_C_SOURCES
148148
libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c
149149
libpas/src/libpas/pas_log.c
150150
libpas/src/libpas/pas_malloc_stack_logging.c
151+
libpas/src/libpas/pas_mar_registry.c
152+
libpas/src/libpas/pas_mar_report_crash.c
151153
libpas/src/libpas/pas_medium_megapage_cache.c
152154
libpas/src/libpas/pas_megapage_cache.c
153155
libpas/src/libpas/pas_monotonic_time.c
@@ -548,6 +550,9 @@ set(bmalloc_PUBLIC_HEADERS
548550
libpas/src/libpas/pas_lock.h
549551
libpas/src/libpas/pas_log.h
550552
libpas/src/libpas/pas_malloc_stack_logging.h
553+
libpas/src/libpas/pas_mar_crash_reporter_report.h
554+
libpas/src/libpas/pas_mar_registry.h
555+
libpas/src/libpas/pas_mar_report_crash.h
551556
libpas/src/libpas/pas_medium_megapage_cache.h
552557
libpas/src/libpas/pas_megapage_cache.h
553558
libpas/src/libpas/pas_min_heap.h

‎Source/bmalloc/bmalloc.xcodeproj/project.pbxproj‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
/* End PBXAggregateTarget section */
2222

2323
/* Begin PBXBuildFile section */
24+
0100000D37BABA0A0A991999 /* pas_zero_memory.h in Headers */ = {isa = PBXBuildFile; fileRef = 0100000B37BABA0A0A991999 /* pas_zero_memory.h */; settings = {ATTRIBUTES = (Private, ); }; };
2425
079E6EA02E45531700E9AF5F /* pas_backtrace_metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 079E6E9F2E45531700E9AF5F /* pas_backtrace_metadata.h */; settings = {ATTRIBUTES = (Private, ); }; };
2526
0F26A7A5205483130090A141 /* PerProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F26A7A42054830D0090A141 /* PerProcess.cpp */; };
2627
0F5167741FAD685C008236A8 /* bmalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5167731FAD6852008236A8 /* bmalloc.cpp */; };
@@ -700,6 +701,11 @@
700701
EB17D11123BFCD42002093A7 /* HeapConstants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EB17D11023BFC8C4002093A7 /* HeapConstants.cpp */; };
701702
EB17D11223BFCD7A002093A7 /* HeapConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = EB17D10E23BE691D002093A7 /* HeapConstants.h */; settings = {ATTRIBUTES = (Private, ); }; };
702703
F15AF5192D791B4B001AE01E /* pas_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = F15AF5182D791B4B001AE01E /* pas_thread.h */; settings = {ATTRIBUTES = (Private, ); }; };
704+
F34D74B92E71E80200024262 /* pas_mar_report_crash.c in Sources */ = {isa = PBXBuildFile; fileRef = F39CF9AB2E70E40900EB3567 /* pas_mar_report_crash.c */; };
705+
F34D74BA2E71E80D00024262 /* pas_mar_registry.c in Sources */ = {isa = PBXBuildFile; fileRef = F39CF9A52E70CA3600EB3567 /* pas_mar_registry.c */; };
706+
F39CF9A82E70CA3600EB3567 /* pas_mar_registry.h in Headers */ = {isa = PBXBuildFile; fileRef = F39CF9A42E70CA3600EB3567 /* pas_mar_registry.h */; settings = {ATTRIBUTES = (Private, ); }; };
707+
F39CF9AD2E70E41400EB3567 /* pas_mar_crash_reporter_report.h in Headers */ = {isa = PBXBuildFile; fileRef = F39CF9AC2E70E40900EB3567 /* pas_mar_crash_reporter_report.h */; settings = {ATTRIBUTES = (Private, ); }; };
708+
F39CF9AE2E70E41B00EB3567 /* pas_mar_report_crash.h in Headers */ = {isa = PBXBuildFile; fileRef = F39CF9AA2E70E40900EB3567 /* pas_mar_report_crash.h */; settings = {ATTRIBUTES = (Private, ); }; };
703709
FE0383202ABC0E9F00A576A2 /* TZoneHeap.h in Headers */ = {isa = PBXBuildFile; fileRef = FE03831E2ABC0E9F00A576A2 /* TZoneHeap.h */; settings = {ATTRIBUTES = (Private, ); }; };
704710
FE0383212ABC0E9F00A576A2 /* TZoneHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE03831F2ABC0E9F00A576A2 /* TZoneHeap.cpp */; };
705711
FE0383232ABC988C00A576A2 /* TZoneHeapInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0383222ABC988C00A576A2 /* TZoneHeapInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -748,6 +754,7 @@
748754
/* End PBXCopyFilesBuildPhase section */
749755

750756
/* Begin PBXFileReference section */
757+
0100000B37BABA0A0A991999 /* pas_zero_memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pas_zero_memory.h; path = libpas/src/libpas/pas_zero_memory.h; sourceTree = "<group>"; };
751758
079E6E9F2E45531700E9AF5F /* pas_backtrace_metadata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pas_backtrace_metadata.h; path = libpas/src/libpas/pas_backtrace_metadata.h; sourceTree = "<group>"; };
752759
0F18F83C25C3467700721C2A /* pas_segregated_exclusive_view_inlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pas_segregated_exclusive_view_inlines.h; path = libpas/src/libpas/pas_segregated_exclusive_view_inlines.h; sourceTree = "<group>"; };
753760
0F18F83D25C3467700721C2A /* minalign32_heap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = minalign32_heap.c; path = libpas/src/libpas/minalign32_heap.c; sourceTree = "<group>"; };
@@ -1427,6 +1434,11 @@
14271434
EB17D10E23BE691D002093A7 /* HeapConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HeapConstants.h; path = bmalloc/HeapConstants.h; sourceTree = "<group>"; };
14281435
EB17D11023BFC8C4002093A7 /* HeapConstants.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HeapConstants.cpp; path = bmalloc/HeapConstants.cpp; sourceTree = "<group>"; };
14291436
F15AF5182D791B4B001AE01E /* pas_thread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pas_thread.h; path = libpas/src/libpas/pas_thread.h; sourceTree = "<group>"; };
1437+
F39CF9A42E70CA3600EB3567 /* pas_mar_registry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pas_mar_registry.h; path = libpas/src/libpas/pas_mar_registry.h; sourceTree = "<group>"; };
1438+
F39CF9A52E70CA3600EB3567 /* pas_mar_registry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pas_mar_registry.c; path = libpas/src/libpas/pas_mar_registry.c; sourceTree = "<group>"; };
1439+
F39CF9AA2E70E40900EB3567 /* pas_mar_report_crash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pas_mar_report_crash.h; path = libpas/src/libpas/pas_mar_report_crash.h; sourceTree = "<group>"; };
1440+
F39CF9AB2E70E40900EB3567 /* pas_mar_report_crash.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = pas_mar_report_crash.c; path = libpas/src/libpas/pas_mar_report_crash.c; sourceTree = "<group>"; };
1441+
F39CF9AC2E70E40900EB3567 /* pas_mar_crash_reporter_report.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = pas_mar_crash_reporter_report.h; path = libpas/src/libpas/pas_mar_crash_reporter_report.h; sourceTree = "<group>"; };
14301442
FE03831E2ABC0E9F00A576A2 /* TZoneHeap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TZoneHeap.h; path = bmalloc/TZoneHeap.h; sourceTree = "<group>"; };
14311443
FE03831F2ABC0E9F00A576A2 /* TZoneHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TZoneHeap.cpp; path = bmalloc/TZoneHeap.cpp; sourceTree = "<group>"; };
14321444
FE0383222ABC988C00A576A2 /* TZoneHeapInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TZoneHeapInlines.h; path = bmalloc/TZoneHeapInlines.h; sourceTree = "<group>"; };
@@ -1870,6 +1882,11 @@
18701882
0FC40AC12451499000876DA0 /* pas_log.h */,
18711883
E3696A3A28F6C48B00C2F2D4 /* pas_malloc_stack_logging.c */,
18721884
E3696A3B28F6C48B00C2F2D4 /* pas_malloc_stack_logging.h */,
1885+
F39CF9AC2E70E40900EB3567 /* pas_mar_crash_reporter_report.h */,
1886+
F39CF9A52E70CA3600EB3567 /* pas_mar_registry.c */,
1887+
F39CF9A42E70CA3600EB3567 /* pas_mar_registry.h */,
1888+
F39CF9AB2E70E40900EB3567 /* pas_mar_report_crash.c */,
1889+
F39CF9AA2E70E40900EB3567 /* pas_mar_report_crash.h */,
18731890
0F87004B25AF8A19000E1ABF /* pas_medium_megapage_cache.c */,
18741891
0F87004825AF8A19000E1ABF /* pas_medium_megapage_cache.h */,
18751892
0FC40A812451498B00876DA0 /* pas_megapage_cache.c */,
@@ -2099,6 +2116,7 @@
20992116
147AAA9C18CE6010002201E4 /* heap: large */,
21002117
147AAA9A18CE5FD3002201E4 /* heap: small */,
21012118
0F7EB7FB1F95416900F1ABCB /* iso */,
2119+
F3D6990D2E1EFCD0006B54BD /* mar */,
21022120
145F6840179DC45F00D65598 /* Products */,
21032121
14D9DB4F17F2868900EAAB79 /* stdlib */,
21042122
);
@@ -2251,6 +2269,13 @@
22512269
name = darwin;
22522270
sourceTree = "<group>";
22532271
};
2272+
F3D6990D2E1EFCD0006B54BD /* mar */ = {
2273+
isa = PBXGroup;
2274+
children = (
2275+
);
2276+
name = mar;
2277+
sourceTree = "<group>";
2278+
};
22542279
/* End PBXGroup section */
22552280

22562281
/* Begin PBXHeadersBuildPhase section */
@@ -2617,6 +2642,9 @@
26172642
DD4BECC929CBA49700398E35 /* pas_lock_free_read_ptr_ptr_hashtable.h in Headers */,
26182643
DD4BEDFA29CBA49700398E35 /* pas_log.h in Headers */,
26192644
DD4BED2B29CBA49700398E35 /* pas_malloc_stack_logging.h in Headers */,
2645+
F39CF9AD2E70E41400EB3567 /* pas_mar_crash_reporter_report.h in Headers */,
2646+
F39CF9A82E70CA3600EB3567 /* pas_mar_registry.h in Headers */,
2647+
F39CF9AE2E70E41B00EB3567 /* pas_mar_report_crash.h in Headers */,
26202648
DD4BED2429CBA49700398E35 /* pas_medium_megapage_cache.h in Headers */,
26212649
DD4BED4229CBA49700398E35 /* pas_megapage_cache.h in Headers */,
26222650
DD4BECFF29CBA49700398E35 /* pas_min_heap.h in Headers */,
@@ -3041,6 +3069,8 @@
30413069
DD4BECF229CBA49700398E35 /* pas_lock_free_read_ptr_ptr_hashtable.c in Sources */,
30423070
DD4BECD429CBA49700398E35 /* pas_log.c in Sources */,
30433071
DD4BEC4629CBA49700398E35 /* pas_malloc_stack_logging.c in Sources */,
3072+
F34D74BA2E71E80D00024262 /* pas_mar_registry.c in Sources */,
3073+
F34D74B92E71E80200024262 /* pas_mar_report_crash.c in Sources */,
30443074
DD4BEC2729CBA49700398E35 /* pas_medium_megapage_cache.c in Sources */,
30453075
DD4BED2829CBA49700398E35 /* pas_megapage_cache.c in Sources */,
30463076
DD4BECBC29CBA49700398E35 /* pas_monotonic_time.c in Sources */,

0 commit comments

Comments
 (0)