]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 513844 - Support macOS 13.0 (Ventura)
authorPaul Floyd <pjfloyd@wanadoo.fr>
Thu, 12 Mar 2026 20:27:07 +0000 (21:27 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Fri, 13 Mar 2026 06:51:08 +0000 (07:51 +0100)
Preliminary support.

On macOS 10.13, 10.13, 10.15, 11 and 12 I get around 80 regtest failures
(mostly due to macOS's propensity to leak, but also some due to debuginfo
differences).

With macOS 13 that figure goes up to about 80. I haven't analysed all
problems. There are certaainly memory map issues - I thinks that
some syscalls like kernelrpc_mach_vm_deallocate_trap are causing
mapped blocks of memory to be split in ways thnat we're not handling
correctly. That results in --sanity-level=3 failures.

54 files changed:
NEWS
configure.ac
coregrind/m_libcfile.c
coregrind/m_mach/mach_msg.c
coregrind/m_mach/mach_traps-amd64-darwin.S
coregrind/m_signals.c
coregrind/m_syswrap/priv_syswrap-darwin.h
coregrind/m_syswrap/syswrap-darwin.c
darwin.supp
gdbserver_tests/filter_gdb.in
include/vki/vki-scnums-darwin.h
massif/tests/alloc-fns-A.vgtest
massif/tests/alloc-fns-B.vgtest
massif/tests/basic.vgtest
massif/tests/basic2.vgtest
massif/tests/big-alloc.vgtest
massif/tests/bug469146.vgtest
massif/tests/culling1.stderr.exp
massif/tests/culling1.vgtest
massif/tests/culling2.stderr.exp
massif/tests/culling2.vgtest
massif/tests/custom_alloc.vgtest
massif/tests/deep-A.vgtest
massif/tests/deep-B.stderr.exp
massif/tests/deep-B.vgtest
massif/tests/deep-C.stderr.exp
massif/tests/deep-C.vgtest
massif/tests/deep-D.vgtest
massif/tests/ignored.vgtest
massif/tests/ignoring.vgtest
massif/tests/inlinfomalloc.vgtest
massif/tests/insig.vgtest
massif/tests/long-names.vgtest
massif/tests/long-time.vgtest
massif/tests/new-cpp.vgtest
massif/tests/null.vgtest
massif/tests/one.vgtest
massif/tests/overloaded-new.vgtest
massif/tests/peak.vgtest
massif/tests/peak2.stderr.exp
massif/tests/peak2.vgtest
massif/tests/realloc.stderr.exp
massif/tests/realloc.vgtest
massif/tests/thresholds_0_0.vgtest
massif/tests/thresholds_0_10.vgtest
massif/tests/thresholds_10_0.vgtest
massif/tests/thresholds_10_10.vgtest
massif/tests/thresholds_5_0.vgtest
massif/tests/thresholds_5_10.vgtest
massif/tests/zero1.vgtest
massif/tests/zero2.vgtest
memcheck/tests/darwin.supp
none/tests/darwin/apple-main-arg.c
shared/vg_replace_strmem.c

diff --git a/NEWS b/NEWS
index 35c0b8a474f5fca7b9e8f60b0b73d36a941b13b2..1e5df7fc373d1b14b8a1475b036080b6af4f0d6f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,7 @@ PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
 MIPS64/Linux, RISCV64/Linux, ARM/Android, ARM64/Android, MIPS32/Android,
 X86/Android, X86/Solaris, AMD64/Solaris, X86/macOS, AMD64/macOS. 
 X86/FreeBSD, AMD64/FreeBSD and ARM64/FreeBSD. There is preliminary support
-for nanoMIPS/Linux. macOS is supported up to version 12 Monterey (amd64 only).
+for nanoMIPS/Linux. macOS is supported up to version 13 Ventura (amd64 only).
 
 * ==================== CORE CHANGES ===================
 
@@ -40,6 +40,7 @@ Support for the following macOS versions has been added
 10.15 Catalina
 11.0  Big Sur (Intel only)
 12.0  Monterey (Intel only)
+13.0  Ventura (Intel only, preliminary)
 
 * ==================== TOOL CHANGES ===================
 
index ea50189abc23aa00e49c1d596f63e638019d974d..8ed66042c778f87bf65b16ed96429dcccb3d8763 100644 (file)
@@ -558,6 +558,10 @@ case "${host_os}" in
                  AC_MSG_RESULT([Darwin 21.x (${kernel}) / macOS 12 Monterey])
                  DARWIN_VERS=$DARWIN_12_00
                  ;;
+            22.*)
+                 AC_MSG_RESULT([Darwin 22.x (${kernel}) / macOS 13 Ventura])
+                 DARWIN_VERS=$DARWIN_13_00
+                 ;;
             *)
                  AC_MSG_RESULT([unsupported (${darwin_platform} ${kernel})])
                  AC_MSG_ERROR([Valgrind works on Darwin 12.x-19.x (Mac OS X 10.8-10.11, macOS 10.12-10.15)])
@@ -691,17 +695,19 @@ esac
 
 case "$ARCH_MAX-$VGCONF_OS" in
      amd64-linux|ppc64be-linux|arm64-linux|amd64-solaris|amd64-darwin|amd64-freebsd)
-        AC_MSG_CHECKING([for 32 bit build support])
+        AC_MSG_CHECKING([for 32 bit build and execution support])
         safe_CFLAGS=$CFLAGS
         CFLAGS="-m32"
-        AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+        AC_RUN_IFELSE([AC_LANG_PROGRAM([[]], [[
           return 0;
         ]])], [
         AC_MSG_RESULT([yes])
         ], [
         vg_cv_only64bit="yes"
         AC_MSG_RESULT([no])
-        ])
+        ] , [
+        AC_MSG_RESULT([cross compiling, assuming no])
+        vg_cv_only64bit="yes"])
         CFLAGS=$safe_CFLAGS;;
     mips64-linux)
         AC_MSG_CHECKING([for 32 bit build support])
index ca3ecdc9a471a66191daf1fe51673627fec44873..ef8bd9d7b741d79de7c398f7b0e9dff70c999cd0 100644 (file)
@@ -1463,10 +1463,9 @@ Int VG_(socket) ( Int domain, Int type, Int protocol )
    if (!sr_isError(res)) {
        // Set SO_NOSIGPIPE so write() returns EPIPE instead of raising SIGPIPE
        Int optval = 1;
-       SysRes res2;
-       res2 = VG_(do_syscall5)(__NR_setsockopt, sr_Res(res), VKI_SOL_SOCKET, 
-                               VKI_SO_NOSIGPIPE, (UWord)&optval, 
-                               sizeof(optval));
+       (void)VG_(do_syscall5)(__NR_setsockopt, sr_Res(res), VKI_SOL_SOCKET, 
+                              VKI_SO_NOSIGPIPE, (UWord)&optval, 
+                              sizeof(optval));
        // ignore setsockopt() error
    }
    return sr_isError(res) ? -1 : sr_Res(res);
index adf95c1cf4a620f3ba924036f03107b9bbc4ef72..0a99e79816203a3b8e89acc12a1d44e7de858079 100644 (file)
 #include <mach/port.h>
 #include <mach/message.h>
 
+#if DARWIN_VERS >= DARWIN_13_00
+// All of those should be defined in mach/message.h, but they are not.
+typedef uint64_t mach_msg_option64_t;
+#define MACH64_SEND_MSG MACH_SEND_MSG
+#define MACH64_RCV_MSG MACH_RCV_MSG
+#define MACH64_RCV_LARGE MACH_RCV_LARGE
+#define MACH64_RCV_LARGE_IDENTITY MACH_RCV_LARGE_IDENTITY
+#define MACH64_SEND_TIMEOUT MACH_SEND_TIMEOUT
+#define MACH64_SEND_OVERRIDE MACH_SEND_OVERRIDE
+#define MACH64_SEND_INTERRUPT MACH_SEND_INTERRUPT
+#define MACH64_SEND_NOTIFY MACH_SEND_NOTIFY
+#define MACH64_SEND_FILTER_NONFATAL MACH_SEND_FILTER_NONFATAL
+#define MACH64_SEND_TRAILER MACH_SEND_TRAILER
+#define MACH64_SEND_NOIMPORTANCE MACH_SEND_NOIMPORTANCE
+#define MACH64_SEND_NODENAP MACH_SEND_NODENAP
+#define MACH64_SEND_SYNC_OVERRIDE MACH_SEND_SYNC_OVERRIDE
+#define MACH64_SEND_PROPAGATE_QOS MACH_SEND_PROPAGATE_QOS
+#define MACH64_SEND_SYNC_BOOTSTRAP_CHECKIN MACH_SEND_SYNC_BOOTSTRAP_CHECKIN
+#define MACH64_RCV_TIMEOUT MACH_RCV_TIMEOUT
+#define MACH64_RCV_INTERRUPT MACH_RCV_INTERRUPT
+#define MACH64_RCV_VOUCHER MACH_RCV_VOUCHER
+#define MACH64_RCV_GUARDED_DESC MACH_RCV_GUARDED_DESC
+#define MACH64_RCV_SYNC_WAIT MACH_RCV_SYNC_WAIT
+#define MACH64_RCV_SYNC_PEEK MACH_RCV_SYNC_PEEK
+#define MACH64_MSG_STRICT_REPLY MACH_MSG_STRICT_REPLY
+#define MACH64_MSG_VECTOR 0x0000000100000000ull
+#define MACH64_SEND_KOBJECT_CALL 0x0000000200000000ull
+#define MACH64_SEND_MQ_CALL 0x0000000400000000ull
+#define MACH64_SEND_ANY 0x0000000800000000ull
+
+typedef struct {
+       /* a mach_msg_header_t* or mach_msg_aux_header_t* */
+       mach_vm_address_t               msgv_data;
+       /* if msgv_rcv_addr is non-zero, use it as rcv address instead */
+       mach_vm_address_t               msgv_rcv_addr;
+       mach_msg_size_t                 msgv_send_size;
+       mach_msg_size_t                 msgv_rcv_size;
+} mach_msg_vector_t;
+
+extern mach_msg_return_t
+mach_msg2(void *data,
+          mach_msg_option64_t options,
+          uint64_t msgh_bits_and_send_size,
+          uint64_t msgh_remote_and_local_port,
+          uint64_t msgh_voucher_and_id,
+          uint64_t desc_count_and_rcv_name,
+          uint64_t rcv_size_and_priority,
+          uint64_t timeout);
+// end of defines
+
+#define LIBMACH_OPTIONS64 (MACH64_SEND_INTERRUPT|MACH64_RCV_INTERRUPT)
+
+extern mach_msg_return_t
+mach_msg2_trap(void *data,
+               mach_msg_option64_t options,
+               uint64_t msgh_bits_and_send_size,
+               uint64_t msgh_remote_and_local_port,
+               uint64_t msgh_voucher_and_id,
+               uint64_t desc_count_and_rcv_name,
+               uint64_t rcv_size_and_priority,
+               uint64_t timeout);
+
+static inline mach_msg_option64_t
+mach_msg_options_after_interruption(mach_msg_option64_t option64)
+{
+       if ((option64 & MACH64_SEND_MSG) && (option64 & MACH64_RCV_MSG)) {
+               /*
+                * If MACH_RCV_SYNC_WAIT was passed for a combined send-receive it must
+                * be cleared for receive-only retries, as the kernel has no way to
+                * discover the destination.
+                */
+               option64 &= ~MACH64_RCV_SYNC_WAIT;
+       }
+       option64 &= ~(LIBMACH_OPTIONS64 | MACH64_SEND_MSG);
+       return option64;
+}
+
+mach_msg_return_t mach_msg2(
+  void *data,
+  mach_msg_option64_t option64,
+  uint64_t msgh_bits_and_send_size,
+  uint64_t msgh_remote_and_local_port,
+  uint64_t msgh_voucher_and_id,
+  uint64_t desc_count_and_rcv_name,
+  uint64_t rcv_size_and_priority,
+  uint64_t timeout
+) {
+  mach_msg_return_t mr;
+
+       mr = mach_msg2_trap(data,
+           option64 & ~LIBMACH_OPTIONS64,
+           msgh_bits_and_send_size,
+           msgh_remote_and_local_port,
+           msgh_voucher_and_id,
+           desc_count_and_rcv_name,
+           rcv_size_and_priority,
+           timeout);
+
+       if (mr == MACH_MSG_SUCCESS) {
+               return MACH_MSG_SUCCESS;
+       }
+
+       if ((option64 & MACH64_SEND_INTERRUPT) == 0) {
+               while (mr == MACH_SEND_INTERRUPTED) {
+                       mr = mach_msg2_trap(data,
+                           option64 & ~LIBMACH_OPTIONS64,
+                           msgh_bits_and_send_size,
+                           msgh_remote_and_local_port,
+                           msgh_voucher_and_id,
+                           desc_count_and_rcv_name,
+                           rcv_size_and_priority,
+                           timeout);
+               }
+       }
+
+       if ((option64 & MACH64_RCV_INTERRUPT) == 0) {
+               while (mr == MACH_RCV_INTERRUPTED) {
+                       mr = mach_msg2_trap(data,
+                           mach_msg_options_after_interruption(option64),
+                           msgh_bits_and_send_size & 0xffffffffull, /* zero send size */
+                           msgh_remote_and_local_port,
+                           msgh_voucher_and_id,
+                           desc_count_and_rcv_name,
+                           rcv_size_and_priority,
+                           timeout);
+               }
+       }
+
+       return mr;
+}
+#endif
+
+
 #define LIBMACH_OPTIONS (MACH_SEND_INTERRUPT|MACH_RCV_INTERRUPT)
 
 extern mach_msg_return_t 
@@ -66,6 +199,34 @@ mach_msg_return_t mach_msg(
   mach_msg_timeout_t timeout,
   mach_port_t notify
 ) {
+
+#if DARWIN_VERS >= DARWIN_13_00
+    mach_msg_base_t *base;
+    if (option & MACH64_MSG_VECTOR) {
+      base = (mach_msg_base_t *)((mach_msg_vector_t *)msg)->msgv_data;
+    } else {
+      base = (mach_msg_base_t *)msg;
+    }
+
+         mach_msg_size_t descriptors = 0;
+    if (option & MACH_SEND_MSG && msg->msgh_bits & MACH_MSGH_BITS_COMPLEX) {
+      descriptors = base->body.msgh_descriptor_count;
+    }
+
+#define MACH_MSG2_SHIFT_ARGS(lo, hi) ((uint64_t)hi << 32 | (uint32_t)lo)
+    return mach_msg2(
+      msg,
+      ((mach_msg_option64_t)option) | MACH64_SEND_KOBJECT_CALL,
+      MACH_MSG2_SHIFT_ARGS(msg->msgh_bits, send_size),
+      MACH_MSG2_SHIFT_ARGS(msg->msgh_remote_port, msg->msgh_local_port),
+      MACH_MSG2_SHIFT_ARGS(msg->msgh_voucher_port, msg->msgh_id),
+      MACH_MSG2_SHIFT_ARGS(descriptors, rcv_name),
+      MACH_MSG2_SHIFT_ARGS(rcv_size, 0),
+      timeout
+    );
+#undef MACH_MSG2_SHIFT_ARGS
+
+#else
     mach_msg_return_t mr;
 
     /*
@@ -101,6 +262,7 @@ mach_msg_return_t mach_msg(
                                timeout, notify);
 
     return mr;
+#endif
 }
 
 #endif // defined(VGO_darwin) 
index ae2d7d1cc99bce651ab942a930aa5e97e50d95c4..2f1524d252d8a9b1d065b538555f4b19274b7f74 100644 (file)
@@ -72,6 +72,18 @@ _mach_msg_trap:
        syscall
        ret
 
+#if DARWIN_VERS >= DARWIN_13_00
+       // mach_msg_return_t mach_msg2_trap(...)
+       .text
+       .align 4
+       .globl _mach_msg2_trap
+_mach_msg2_trap:
+       movq    $__NR_mach_msg2_trap, %rax
+       movq    %rcx, %r10
+       syscall
+       ret
+#endif
+
        // mach_port_t mach_reply_port(...)
        .text
        .align 4
index 1b0200287c819c3a395fea6307c6a73bb0064a08..17069df415774045f11fdacb2f9d92f4f4ac7bd6 100644 (file)
@@ -1693,7 +1693,7 @@ const HChar *VG_(signame)(Int sigNo)
 /* Hit ourselves with a signal using the default handler */
 void VG_(kill_self)(Int sigNo)
 {
-   Int r;
+   Int r __attribute__((unused));
    vki_sigset_t                 mask, origmask;
    vki_sigaction_toK_t   sa, origsa2;
    vki_sigaction_fromK_t origsa;   
index dc21bebeb1af4415f26347371616ac7d4cd10769..1ae3c19495e96b95411b6359dc9560d1f70f27ab 100644 (file)
@@ -676,6 +676,16 @@ DECL_TEMPLATE(darwin, ulock_wait2);       // 544
 // NYI tracker_action         // 546
 // NYI debug_syscall_reject   // 547
 #endif
+#if DARWIN_VERS >= DARWIN_13_00
+// NYI sys_debug_syscall_reject_config  // 548
+// NYI graftdmg                         // 549
+DECL_TEMPLATE(darwin, map_with_linking_np); // 550
+// NYI freadlink                        // 551
+// NYI sys_record_system_event          // 552
+// NYI mkfifoat                         // 553
+// NYI mknodat                          // 554
+// NYI ungraftdmg                       // 555
+#endif
 
 // Mach message helpers
 DECL_TEMPLATE(darwin, mach_port_set_context);
@@ -826,6 +836,10 @@ DECL_TEMPLATE(darwin, kernelrpc_mach_port_type_trap);
 DECL_TEMPLATE(darwin, kernelrpc_mach_port_request_notification_trap);
 #endif /* DARWIN_VERS >= DARWIN_10_15 */
 
+#if DARWIN_VERS >= DARWIN_13_00
+DECL_TEMPLATE(darwin, mach_msg2);
+#endif
+
 // Machine-dependent traps
 DECL_TEMPLATE(darwin, thread_fast_set_cthread_self);
 
index b92ca8d977f75c57eff7e4af86267efb7a5bfcc6..fd97a91369059dcb290fbfccde91ba96321f9f69 100644 (file)
@@ -8884,9 +8884,7 @@ PRE(mach_msg)
 {
    mach_msg_header_t *mh = (mach_msg_header_t *)ARG1;
    mach_msg_option_t option = (mach_msg_option_t)ARG2;
-   // mach_msg_size_t send_size = (mach_msg_size_t)ARG3;
    mach_msg_size_t rcv_size = (mach_msg_size_t)ARG4;
-   // mach_port_t rcv_name = (mach_port_t)ARG5;
    size_t complex_header_size = 0;
 
    PRE_REG_READ7(long, "mach_msg",
@@ -9137,6 +9135,149 @@ POST(mach_msg)
    }
 }
 
+#if DARWIN_VERS >= DARWIN_13_00
+
+#define MACH64_MSG_VECTOR 0x0000000100000000ull
+
+typedef uint64_t mach_msg_option64_t;
+
+typedef struct {
+       /* a mach_msg_header_t* or mach_msg_aux_header_t* */
+       mach_vm_address_t               msgv_data;
+       /* if msgv_rcv_addr is non-zero, use it as rcv address instead */
+       mach_vm_address_t               msgv_rcv_addr;
+       mach_msg_size_t                 msgv_send_size;
+       mach_msg_size_t                 msgv_rcv_size;
+} mach_msg_vector_t;
+
+PRE(mach_msg2)
+{
+#define MACH_MSG2_UNSHIFT_HIGH(x) ((x) >> 32)
+#define MACH_MSG2_UNSHIFT_LOW(x) ((x) & 0xffffffff)
+
+  UWord msgh_bits = MACH_MSG2_UNSHIFT_LOW(ARG3);
+  UWord send_size = MACH_MSG2_UNSHIFT_HIGH(ARG3);
+  Word msgh_remote_port = MACH_MSG2_UNSHIFT_LOW(ARG4);
+  Word msgh_local_port = MACH_MSG2_UNSHIFT_HIGH(ARG4);
+  Word msgh_voucher = MACH_MSG2_UNSHIFT_LOW(ARG5);
+  UWord msgh_id = MACH_MSG2_UNSHIFT_HIGH(ARG5);
+  UWord desc_count = MACH_MSG2_UNSHIFT_LOW(ARG6);
+  Word rcv_name = MACH_MSG2_UNSHIFT_HIGH(ARG6);
+  UWord rcv_size = MACH_MSG2_UNSHIFT_LOW(ARG7);
+  UWord priority = MACH_MSG2_UNSHIFT_HIGH(ARG7);
+
+#undef MACH_MSG2_UNSHIFT_HIGH
+#undef MACH_MSG2_UNSHIFT_LOW
+
+  mach_msg_header_t *mh = (mach_msg_header_t *)ARG1;
+  mach_msg_option64_t options = (mach_msg_option64_t)ARG2;
+
+  PRINT(
+    "mach_msg2(%#lx "
+    "{id: %d, bits: %#x, size: %u, voucher: %s, local: %s, remote: %s}, "
+    "options %#llx, "
+    "%#lx (msgh_bits %#lx | send_size %lu), %#lx (remote %s | local %s), "
+    "%#lx (voucher %s | id %#lx), %#lx (desc_count %lu | rcv_name %s), "
+    "%#lx (rcv_size %lu | priority %lu), timeout %lu) ",
+    ARG1,
+    mh->msgh_id, mh->msgh_bits, mh->msgh_size, name_for_port(mh->msgh_voucher_port), name_for_port(mh->msgh_local_port), name_for_port(mh->msgh_remote_port),
+    options,
+    ARG3, msgh_bits, send_size, ARG4, name_for_port(msgh_remote_port), name_for_port(msgh_local_port),
+    ARG5, name_for_port(msgh_voucher), msgh_id, ARG6, desc_count, name_for_port(rcv_name),
+    ARG7, rcv_size, priority, ARG8
+  );
+  PRE_REG_READ8(kern_return_t, "mach_msg2",
+    void *, data,
+    mach_msg_option64_t, options,
+    uint64_t, msgh_bits_and_send_size,
+    uint64_t, msgh_remote_and_local_port,
+    uint64_t, msgh_voucher_and_id,
+    uint64_t, desc_count_and_rcv_name,
+    uint64_t, rcv_size_and_priority,
+    uint64_t, timeout);
+  SizeT size = sizeof(mach_msg_header_t);
+  SizeT trailer_size = 0;
+  if (options & MACH_SEND_MSG && msgh_bits & MACH_SEND_TRAILER) {
+    trailer_size = REQUESTED_TRAILER_SIZE(options);
+  }
+// FIXME: loads of issues on macOS 13 and no computer to test on
+// disabled for now
+#if DARWIN_VERS != DARWIN_13_00
+  if (options & MACH64_MSG_VECTOR) {
+    mach_msg_vector_t *msgv = (mach_msg_vector_t *)mh;
+    PRE_MEM_READ("mach_msg2(msgv)", (Addr)mh, sizeof(mach_msg_vector_t));
+    if (options & MACH_SEND_MSG) {
+      PRE_MEM_READ("mach_msg2(msgv->data)", (Addr)msgv->msgv_data, msgv->msgv_send_size);
+    }
+    if (options & MACH_RCV_MSG) {
+      if (msgv->msgv_rcv_addr != 0) {
+        PRE_MEM_WRITE("mach_msg2(msgv->rcv_addr)", (Addr)msgv->msgv_rcv_addr, msgv->msgv_rcv_size);
+      } else {
+        PRE_MEM_WRITE("mach_msg2(msgv->data)", (Addr)msgv->msgv_data, msgv->msgv_rcv_size);
+      }
+    }
+  } else {
+    if (send_size > size) {
+      size = send_size;
+    }
+    if (options & MACH_SEND_MSG) {
+      PRE_MEM_READ("mach_msg2(msg)", (Addr)mh, size + trailer_size);
+    }
+    if (rcv_size > size) {
+      size = rcv_size;
+    }
+    if (options & MACH_RCV_MSG) {
+      PRE_MEM_WRITE("mach_msg2(msg)", (Addr)mh, size);
+    }
+  }
+#endif
+
+  // Assume call may block unless specified otherwise
+  *flags |= SfMayBlock;
+
+  AFTER = NULL;
+
+  if (options & MACH_SEND_MSG) {
+    MACH_REMOTE = msgh_remote_port;
+    MACH_MSGH_ID = msgh_id;
+  }
+
+  // Call a PRE handler. The PRE handler may set an AFTER handler.
+  if (!(options & MACH_SEND_MSG)) {
+    // no message sent, receive only
+    CALL_PRE(mach_msg_receive);
+    return;
+  } else if (msgh_local_port == vg_host_port) {
+    // message sent to mach_host_self()
+    CALL_PRE(mach_msg_host);
+    return;
+  } else if (is_task_port(msgh_local_port)) {
+    // message sent to a task
+    CALL_PRE(mach_msg_task);
+    return;
+  } else if (msgh_local_port == vg_bootstrap_port) {
+    // message sent to bootstrap port
+    CALL_PRE(mach_msg_bootstrap);
+    return;
+  } else if (is_thread_port(msgh_local_port)) {
+    // message sent to one of this process's threads
+    CALL_PRE(mach_msg_thread);
+    return;
+  } else {
+    AFTER = POST_FN(mach_msg_unhandled);
+    return;
+  }
+}
+
+POST(mach_msg2)
+{
+  // Call handler chosen by PRE(mach_msg2)
+  if (AFTER) {
+    (*AFTER)(tid, arrghs, status);
+  }
+}
+#endif
+
 
 POST(mach_msg_unhandled)
 {
@@ -11337,6 +11478,53 @@ PRE(objc_bp_assist_cfg_np)
 
 #endif /* DARWIN_VERS >= DARWIN_12_00 */
 
+
+/* ---------------------------------------------------------------------
+ Added for macOS 13.0 (Ventura)
+ ------------------------------------------------------------------ */
+
+#if DARWIN_VERS >= DARWIN_13_00
+
+struct mwl_region {
+       int                  mwlr_fd;
+       vm_prot_t            mwlr_protections;
+       uint64_t             mwlr_file_offset;
+       mach_vm_address_t    mwlr_address;
+       mach_vm_size_t       mwlr_size;
+};
+
+struct mwl_info_hdr {
+       uint32_t        mwli_version;
+       uint16_t        mwli_page_size;
+       uint16_t        mwli_pointer_format;
+       uint32_t        mwli_binds_offset;
+       uint32_t        mwli_binds_count;
+       uint32_t        mwli_chains_offset;
+       uint32_t        mwli_chains_size;
+       uint64_t        mwli_slide;
+       uint64_t        mwli_image_address;
+};
+
+#define MWL_MAX_REGION_COUNT 5  /* data, const, data auth, auth const, objc const */
+
+PRE(map_with_linking_np)
+{
+  PRINT("map_with_linking_np(%#lx, %lu, %#lx, %lu)", ARG1, ARG2, ARG3, ARG4);
+  PRE_REG_READ4(long, "map_with_linking_np",
+    void*, regions, uint32_t, region_count,
+    void*, link_info, uint32_t, link_info_size);
+  if (ARG2 == 0 || ARG2 > MWL_MAX_REGION_COUNT)
+  if (ARG1) {
+    PRE_MEM_READ( "map_with_linking_np(regions)", ARG1, sizeof(struct mwl_region) * ARG2 );
+  }
+  if (ARG3) {
+    PRE_MEM_READ( "map_with_linking_np(link_info)", ARG3, ARG4 );
+  }
+}
+
+#endif /* DARWIN_VERS >= DARWIN_13_00 */
+
+
 /* ---------------------------------------------------------------------
    syscall tables
    ------------------------------------------------------------------ */
@@ -11991,6 +12179,16 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 #if DARWIN_VERS >= DARWIN_12_00
 // _____(__NR_tracker_action),                          // 546
 // _____(__NR_debug_syscall_reject),                    // 547
+#endif
+#if DARWIN_VERS >= DARWIN_13_00
+// _____(__NR_sys_debug_syscall_reject_config),         // 548
+// _____(__NR_graftdmg),                                // 549
+   MACX_(__NR_map_with_linking_np, map_with_linking_np), // 550
+// _____(__NR_freadlink),                               // 551
+// _____(__NR_sys_record_system_event),                 // 552
+// _____(__NR_mkfifoat),                                // 553
+// _____(__NR_mknodat),                                 // 554
+// _____(__NR_ungraftdmg),                              // 555
 #endif
    MACX_(__NR_darwin_fake_sigreturn, fake_sigreturn)
 };
@@ -12111,7 +12309,11 @@ const SyscallTableEntry ML_(mach_trap_table)[] = {
    MACXY(__NR_task_name_for_pid, task_name_for_pid),
    MACXY(__NR_task_for_pid, task_for_pid),
    MACXY(__NR_pid_for_task, pid_for_task),
+#if DARWIN_VERS >= DARWIN_13_00
+   MACXY(__NR_mach_msg2_trap, mach_msg2),
+#else
    _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(47)),
+#endif
 #if defined(VGA_x86)
 // _____(__NR_macx_swapon),
 // _____(__NR_macx_swapoff),
index 9d6506492cbfae2deed21cc5661000472da2f3f5..9d1e91e88941094b98a194f7b848b143c158ef70 100644 (file)
    fun:_ZN5dyld413ProcessConfigC2EPKNS_10KernelArgsERNS_15SyscallDelegateE
 }
 
+{
+   macOS1300:xpc_copy_entitlements_for_self
+   Memcheck:Cond
+   ...
+   fun:xpc_copy_entitlements_for_self
+}
+
+{
+   macOS1300:libSystem_initializer
+   Memcheck:Cond
+   ...
+   fun:libSystem_initializer
+}
+
+{
+   macOS13:DyldSharedCache::*
+   Memcheck:Addr4
+   fun:_ZNK15DyldSharedCache*
+}
+
+{
+   macOS1300:dyld* Value8
+   Memcheck:Value8
+   fun:_ZN*5dyld*
+}
+
+{
+   macOS1300:dyld*
+   Memcheck:Cond
+   fun:_ZN*5dyld*
+}
+
+{
+   macOS1300:dyld*
+   Memcheck:Addr1
+   ...
+   fun:_ZN5dyld*
+}
+
+{
+   macOS1300:dyld*
+   Memcheck:Addr4
+   ...
+   fun:_ZN5dyld*
+}
+
+{
+   macOS1300:dyld*
+   Memcheck:Addr8
+   ...
+   fun:_ZN5dyld*
+}
+
+{
+   macOS1300:dyld3::*
+   Memcheck:Addr16
+   ...
+   fun:_ZN5dyld3*
+}
+
+{
+   macOS1300:DyldSharedCache::*
+   Memcheck:Addr8
+   ...
+   fun:_ZNK15DyldSharedCache*
+}
+
+{
+   macOS1300:DyldSharedCache::*
+   Memcheck:Addr16
+   ...
+   fun:_ZNK15DyldSharedCache*
+}
+
+{
+   macOS1300:libSystem_atfork_child
+   Memcheck:Cond
+   ...
+   fun:libSystem_atfork_child
+}
+
+{
+   macOS1300:libSystem_atfork_child
+   Memcheck:Value8
+   ...
+   fun:libSystem_atfork_child
+}
index ccd48212dcec6c0723b7f6aa0bfbf7b7c8c7c992..07d035b5647fdcd142cb151f9291c87a3a5a69a0 100644 (file)
@@ -106,9 +106,7 @@ s/\(#0  0x........ in do_burn ()\) at sleepers.c:41/\1/
 
 
 #       delete Reading symbols file lines
-#       Note: The 'done.' in "Reading symbols from <exe>...done."
-#         is optional (bugzilla 406357).
-/^Reading symbols from .*\.\.\.\(done\.\)\?/d
+/^Reading symbols from /d
 
 #       delete Loaded symbols file lines
 /^Loaded symbols for .*$/d
index 904bf21238345e708db3f74b73b424938ca0ef73..94d4cec93eca9097ccd4a06d23ef6f7f469c6569 100644 (file)
 #define __NR_task_for_pid                     VG_DARWIN_SYSCALL_CONSTRUCT_MACH(45)
 #define __NR_pid_for_task                     VG_DARWIN_SYSCALL_CONSTRUCT_MACH(46)
 
+#if DARWIN_VERS >= DARWIN_13_00
+#define __NR_mach_msg2_trap                   VG_DARWIN_SYSCALL_CONSTRUCT_MACH(47)
+#endif
+
 #if defined(VGA_x86)
 #define __NR_macx_swapon                      VG_DARWIN_SYSCALL_CONSTRUCT_MACH(48)
 #define __NR_macx_swapoff                     VG_DARWIN_SYSCALL_CONSTRUCT_MACH(49)
 #define __NR_debug_syscall_reject   VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(547)
 #endif
 
+#if DARWIN_VERS >= DARWIN_13_00
+#define __NR_sys_debug_syscall_reject_config  VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(548)
+#define __NR_graftdmg                         VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(549)
+#define __NR_map_with_linking_np              VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(550)
+#define __NR_freadlink                        VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(551)
+#define __NR_sys_record_system_event          VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(552)
+#define __NR_mkfifoat                         VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(553)
+#define __NR_mknodat                          VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(554)
+#define __NR_ungraftdmg                       VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(555)
+#endif
+
 #define __NR_darwin_fake_sigreturn  VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(1000)
 
 #endif
index 09f7295576f5b915f6fdb8a8841d276147affb3b..01c2b6d7f621f9b0e69a74db3048b00f0cc74263 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index f00c768b5a45a8cd14ce648ca8fc0380441fabb5..c1aae79bc902906d642328dbc4bfded230c19d0d 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index fc385817529382cc07144340546d5433a7de9f14..f988e9400ee1cf76f9ade2e440c828f4586ee11a 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 97442dfaec738e6c563f996b1e80261486c7aa1b..87be264ae8400ce64c853ff4af9106a5704c83bf 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 0e9e732186971545cda8ce77d243570242eeb192..1e571b413cdeab555b191db6dadc54bd006e3bac 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index ad5408347e2a2136e377fc9e7d943aa7235b5a4d..9e73ce8f130388e9194e7302924d66e18b88f688 100644 (file)
@@ -12,5 +12,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 859c840a15e4000b3c851e34bcf43ced364131cc..fa053a54e3a0dcc795ffffad98428cd66aacc483 100644 (file)
@@ -45,6 +45,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:32, hp:16, ex:16, st:0)
 Massif:   alloc S.  2 (t:64, hp:32, ex:32, st:0)
index 9682aaadf17eec6a12c19947432691e19fe49b5b..bb99196d547faf20fe42f4ef198b28bb8aacdefc 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 stderr_filter: filter_verbose
 cleanup: rm massif.out
index 5d227a12656d15c5940e0b45729dfe99f8b52503..6e424662ab761784b085562ab5361dbf3acd0253 100644 (file)
@@ -45,6 +45,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:16, hp:0, ex:16, st:0)
 Massif:   alloc S.  2 (t:432, hp:400, ex:32, st:0)
index b9bfe81d162e41ef6fd82882a53008bb4ce67dac..5b0dc0aed9846c240a58431c85e39f2afb7e5dea 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 stderr_filter: filter_verbose
 cleanup: rm massif.out
index 07e5ad18c114ff3ba326b892e13796a5005b43fe..6b49cf0b2235df14b69bd2a1b13ea70af503fca4 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses  | ./filter_ignore_fn
 cleanup: rm massif.out
index 5d90b8a65dc843c2a859bd5fad11400b4e235d06..07c2c5f2dbe2d637ce90cf40660885a0dc16db38 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 56f1339f3c125b09833639f6470e133a7c585958..8729905a80ce54ccc58224edff87c1935100385d 100644 (file)
@@ -52,6 +52,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:408, hp:400, ex:8, st:0)
 Massif:   alloc S.  2 (t:816, hp:800, ex:16, st:0)
index b877a11c6c8051cc13829b0dee4665e27cb7ebd6..7b66a2d32f5dd7cbdf598ffae82156645b5718d7 100644 (file)
@@ -10,5 +10,7 @@ stderr_filter: filter_verbose
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 7402601ea7cf49d70d4031b5962458414e7761dc..91ba98d0c2689f8c2f20d83548ff408e7189638b 100644 (file)
@@ -55,6 +55,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:408, hp:400, ex:8, st:0)
 Massif:   alloc S.  2 (t:816, hp:800, ex:16, st:0)
index ac8263b22c080dda2996deef03b435eee82cf256..62de7685ba42bd17fbc72adb311c36d4cf11edbe 100644 (file)
@@ -9,6 +9,8 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 stderr_filter: filter_verbose
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 59f4ae09baf84a69ed8f7772106d3f3ac423d8b0..a4a34327d4e17488bf12739804899a575ca4a411 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ../../tests/filter_libc | ./filter_ignore_fn
 cleanup: rm massif.out
index 7b9fa41205be239dd3dbf74834a0d45e49b8df1f..335fb6e9d841b2b1c6c3d1bb83633a7b09f9070f 100644 (file)
@@ -10,5 +10,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 9faf24d82faf4fed23cfbeb603f5a03b2256e1c0..55ec5e266426065d714897aadef0e4e987446147 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 8df84d2015a04c01c9b6726754ee3025bcca7631..7c0aa8b48e38e5e0f76d38ebab66b1828cee00db 100644 (file)
@@ -8,5 +8,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 stderr_filter: filter_verbose
 # Darwin ignore functions, for macOS 10.15
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index de1bc0bceb8eeffa8b1bdd7e3c782c41ca55b952..dae8b378b7a4f8525d83cd63402961a001247d7e 100644 (file)
@@ -10,5 +10,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index d05336f1e5cfc1b1ec87fa771993616dad074d5c..755a54916cc837b7338ccf7a188caa1bfacc7ce1 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index cb0215a4659dfef42d25d089728ff8793405f0af..f42178f0235776caa9d64c3a2dc4dff63d834d55 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 19148c705c5bdc244323c460e80ef2daf97860b5..72172ec2d695ec4ff5a6f2ba1416cc66bcc839b0 100644 (file)
@@ -11,5 +11,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index b6396675fe48505fdfa9462e131d523ac2835881..a5cede5a97b12e6a3e3f08beb94711b58e847113 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 29b24d4c3b22cd2786a9e457ac3576c935432ea5..e2b92bd700700a3b029de7f2bcc226548404a59c 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index e99ce8b645e0aa0d8dffaea8654696f7aa1746c3..e648b46b4c6009f710701d01a02be4f63334cc10 100644 (file)
@@ -12,5 +12,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ./filter_new_aligned | ./filter_ignore_fn
 cleanup: rm massif.out
index df2403e10027d94242a6ec4ce0acf2a0c404e704..f00c99b05a16939192bc49d66ef1cd8615a0ed2d 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 8b34572f27fb98f68fcb7608a0890ab7cf85ee96..89f87d60b4c11e64a22eb1591ddf3a663c9ee787 100644 (file)
@@ -45,6 +45,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:1728, hp:1600, ex:128, st:0)
 Massif:   alloc S.  2 (t:1872, hp:1616, ex:256, st:0)
index 2f1999741285e898f09d82b1a98f2ffeb62109b7..23e1b770d68420e62708e10787b5bab2a880e5b7 100644 (file)
@@ -10,5 +10,7 @@ vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::de
 stderr_filter: filter_verbose
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 483c1dbe073f3a0ce08adcf391ef4ae00292ecb1..5e12a8bf4744b155cd068b6541f1880cdb7849db 100644 (file)
@@ -45,6 +45,10 @@ Massif:   21: realizeClassWithoutSwift(objc_class*, objc_class*)
 Massif:   22: schedule_class_load(objc_class*)
 Massif:   23: objc::SafeRanges::add(unsigned long, unsigned long)
 Massif:   24: _xpc_alloc
+Massif:   25: _xpc_strdup
+Massif:   26: _vasprintf
+Massif:   27: _fetchInitializingClassList(bool)
+Massif:   28: cache_t::allocateBuckets(unsigned int)
 Massif: startup S.  0 (t:0, hp:0, ex:0, st:0)
 Massif:   alloc S.  1 (t:800, hp:800, ex:0, st:0)
 Massif: realloc S.  2 (t:800, hp:800, ex:0, st:0)
index 880ba4a872da4e0d9a14d2c7a2e8b9022d7f1b3d..d5d202e22ffbd989dab173162e75f2a353e3bc63 100644 (file)
@@ -11,5 +11,7 @@ vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::de
 stderr_filter: filter_verbose
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 49c4553a1760ba859b476a920cbb92bc6b44e89e..108fdb116a7bde4f5a882b980a7cb1809194d0c9 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index a87b7efe7f39c4d315ba2c38657214b18ad5e3cb..0d13439304801a6f6883d52d96162bc7f005eb69 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index bc1d6fad42aa93b04080f2bf05c41a875d5200f1..9fc37490322a88e22ea336be03c974abfa404cce 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 77e87611e021128fdd597689a9b27bfd0ad3ddf5..e7e5c37be7481d2900b2bfe38750fc590bb51259 100644 (file)
@@ -9,6 +9,8 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn
 
 cleanup: rm massif.out
index 729f84f9985cfe0ae068f7e8c828bbb27d40c9c2..68d1542dc514e17260369f82c7638d78457acd01 100644 (file)
@@ -9,6 +9,8 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn
 
 cleanup: rm massif.out
index 9176d7ccd099230f4f3ad97c3ae007f2bd7dfd5e..7ffdc121ce8513a810b6e0690b627954432835a9 100644 (file)
@@ -9,6 +9,8 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn
 
 cleanup: rm massif.out
index d8ebb2f4871875c372f65d613bfc49b82856c080..0067a4df3b6d0495070f1205c65c14215fd62216 100644 (file)
@@ -9,6 +9,8 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 
 cleanup: rm massif.out
index 27079d64ed00de316692eccecdccd33f8058f014..df886b0f5a6809a51953e6915d003d86716f6f09 100644 (file)
@@ -9,5 +9,7 @@ vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-
 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="objc::DenseMap<char const*, objc::detail::DenseSetEmpty, objc::DenseMapValueInfo<objc::detail::DenseSetEmpty>, objc::DenseMapInfo<char const*>, objc::detail::DenseSetPair<char const*> >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)"
 # Darwin ignore functions, for macOS 12
 vgopts: --ignore-fn=_xpc_alloc
+# Darwin ignore functions, for macOS 13
+vgopts: --ignore-fn=_xpc_strdup --ignore-fn=_vasprintf --ignore-fn="_fetchInitializingClassList(bool)" --ignore-fn="cache_t::allocateBuckets(unsigned int)"
 post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn
 cleanup: rm massif.out
index 6d16d22ebaff951863ad210b9c2cf21915ec96c1..9aa2759605ad93b3ad9d9b2a93205c9296f9a57b 100644 (file)
    fun:_ZN5dyld3L18reuseExistingCacheERKNS_18SharedCacheOptionsEPNS_19SharedCacheLoadInfoE
 }
 
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Cond
+   fun:task_*et_special_port
+}
+
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Cond
+   fun:_fetch_self_token
+}
+
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Cond
+   fun:host_get_clock_service
+}
index f5d6b35a0f3f0fa70b5313b87b77ff3ed3c69741..b28527d567ca8085e4d373f34bf45ac45d9502f0 100644 (file)
@@ -8,7 +8,7 @@
 
 // used for debugging apple pointer issues, see
 // https://bugs.kde.org/show_bug.cgi?id=517304
-//#define DEBUG_ENV
+#define DEBUG_ENV
 
 // On Darwin there's this secret fourth argument, 'apple'.
 // That's kind of like a cut down obfuscated version of auxv.
index 4cf28a670584a6c8d748ab8115fb9a7b31df1d61..df19d931454d730a4c9a5d7989f7edf0cfff59d7 100644 (file)
@@ -526,6 +526,7 @@ static inline void my_exit ( int x )
 # if DARWIN_VERS >= DARWIN_10_9
   STRLEN(VG_Z_LIBSYSTEM_C_SONAME, strlen)
 # endif
+ STRLEN(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_strlen)
 
 #elif defined(VGO_solaris)
  STRLEN(VG_Z_LIBC_SONAME,          strlen)
@@ -1004,6 +1005,10 @@ static inline void my_exit ( int x )
   /* _platform_memchr$VARIANT$Base */
   MEMCHR(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memchr$VARIANT$Base)
 #endif
+// FIXME: unsure of the exact version
+#  if DARWIN_VERS >= DARWIN_13_00
+  MEMCHR(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memchr$VARIANT$NoOverread)
+#  endif
 
 #elif defined(VGO_solaris)
  MEMCHR(VG_Z_LIBC_SONAME, memchr)
@@ -1248,6 +1253,10 @@ static inline void my_exit ( int x )
   // rip-relative jump but the dest address is NULL
   MEMCMP(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memcmp$VARIANT$Base)
 #endif
+// FIXME: unsure of the exact version
+# if DARWIN_VERS >= DARWIN_13_00 && defined(VGA_amd64)
+  MEMCMP(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memcmp$VARIANT$NoOverread)
+#endif
 
 #elif defined(VGO_solaris)
  MEMCMP(VG_Z_LIBC_SONAME, memcmp)
@@ -1398,6 +1407,12 @@ static inline void my_exit ( int x )
  //MEMSET(VG_Z_LIBC_SONAME, memset)
  //MEMSET(VG_Z_DYLD,        memset)
  MEMSET(VG_Z_LIBC_SONAME, memset)
+// FIXME: unsure of the exact version
+#  if DARWIN_VERS >= DARWIN_13_00
+  MEMSET(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memset$VARIANT$Base)
+  MEMSET(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memset$VARIANT$Haswell)
+  MEMSET(VG_Z_LIBSYSTEM_PLATFORM_SONAME, _platform_memset$VARIANT$Ivybridge)
+#  endif
 
 #elif defined(VGO_solaris)
  MEMSET(VG_Z_LIBC_SONAME, memset)