# the AddressSanitizer runtime itself, or because the code executes before
# the runtime has been initialized.
+[.*]
+
+# Blanket ignore non-sanitized functions
+fun:__nosan_*
+
+# Try really hard to avoid panicing while debugging
+src:./osfmk/kdp/*
+src:./osfmk/kern/debug.c
+
+[address]
+
# Exclude linker sets
type:struct linker_set_entry
type:linker_set_entry
+type:struct startup_entry
+type:startup_entry
-# Exclude KASAN itself
+# Exclude per-cpu data structures the assembly accesses
+type:vm_statistics64
+type:struct vm_statistics64
+type:vm_statistics64_data_t
+type:struct processor
+type:processor
+
+# Exclude KASan itself
src:./san/kasan.c
src:./san/kasan-fakestack.c
src:./san/kasan-x86_64.c
src:./san/kasan-memintrinsics.c
src:./san/kasan_dynamic_blacklist.c
-# Try really hard to avoid panicing while debugging
-src:./osfmk/kdp/*
-src:./osfmk/kern/debug.c
+# Exclude other sanitizers
+src:./san/ksancov.c
+
+# Exclude dtrace function that does weird stack manipulations
+fun:fbt_perfCallback
+
+# Exclude leak detection code that reads all memory
+fun:_ZL18IOTrackingLeakScanPv
# Exclude KASAN dependencies
# XXX: could this be relaxed since fakestack is reentrant?