|
From: Paul F. <pa...@so...> - 2026-03-13 11:48:37
|
https://sourceware.org/cgit/valgrind/commit/?id=862feba46b5b1983ff7c26fd19295de0215ded84 commit 862feba46b5b1983ff7c26fd19295de0215ded84 Author: Paul Floyd <pj...@wa...> Date: Thu Mar 12 21:27:07 2026 +0100 Bug 513844 - Support macOS 13.0 (Ventura) 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. Diff: --- NEWS | 3 +- configure.ac | 12 +- coregrind/m_libcfile.c | 7 +- coregrind/m_mach/mach_msg.c | 162 +++++++++++++++++++++++ coregrind/m_mach/mach_traps-amd64-darwin.S | 12 ++ coregrind/m_signals.c | 2 +- coregrind/m_syswrap/priv_syswrap-darwin.h | 14 ++ coregrind/m_syswrap/syswrap-darwin.c | 206 ++++++++++++++++++++++++++++- darwin.supp | 87 ++++++++++++ gdbserver_tests/filter_gdb.in | 4 +- include/vki/vki-scnums-darwin.h | 15 +++ massif/tests/alloc-fns-A.vgtest | 2 + massif/tests/alloc-fns-B.vgtest | 2 + massif/tests/basic.vgtest | 2 + massif/tests/basic2.vgtest | 2 + massif/tests/big-alloc.vgtest | 2 + massif/tests/bug469146.vgtest | 2 + massif/tests/culling1.stderr.exp | 4 + massif/tests/culling1.vgtest | 2 + massif/tests/culling2.stderr.exp | 4 + massif/tests/culling2.vgtest | 2 + massif/tests/custom_alloc.vgtest | 2 + massif/tests/deep-A.vgtest | 2 + massif/tests/deep-B.stderr.exp | 4 + massif/tests/deep-B.vgtest | 2 + massif/tests/deep-C.stderr.exp | 4 + massif/tests/deep-C.vgtest | 2 + massif/tests/deep-D.vgtest | 2 + massif/tests/ignored.vgtest | 2 + massif/tests/ignoring.vgtest | 2 + massif/tests/inlinfomalloc.vgtest | 2 + massif/tests/insig.vgtest | 2 + massif/tests/long-names.vgtest | 2 + massif/tests/long-time.vgtest | 2 + massif/tests/new-cpp.vgtest | 2 + massif/tests/null.vgtest | 2 + massif/tests/one.vgtest | 2 + massif/tests/overloaded-new.vgtest | 2 + massif/tests/peak.vgtest | 2 + massif/tests/peak2.stderr.exp | 4 + massif/tests/peak2.vgtest | 2 + massif/tests/realloc.stderr.exp | 4 + massif/tests/realloc.vgtest | 2 + massif/tests/thresholds_0_0.vgtest | 2 + massif/tests/thresholds_0_10.vgtest | 2 + massif/tests/thresholds_10_0.vgtest | 2 + massif/tests/thresholds_10_10.vgtest | 2 + massif/tests/thresholds_5_0.vgtest | 2 + massif/tests/thresholds_5_10.vgtest | 2 + massif/tests/zero1.vgtest | 2 + massif/tests/zero2.vgtest | 2 + memcheck/tests/darwin.supp | 17 +++ none/tests/darwin/apple-main-arg.c | 2 +- shared/vg_replace_strmem.c | 15 +++ 54 files changed, 635 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 35c0b8a474..1e5df7fc37 100644 --- 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 =================== diff --git a/configure.ac b/configure.ac index ea50189abc..8ed66042c7 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/coregrind/m_libcfile.c b/coregrind/m_libcfile.c index ca3ecdc9a4..ef8bd9d7b7 100644 --- a/coregrind/m_libcfile.c +++ b/coregrind/m_libcfile.c @@ -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); diff --git a/coregrind/m_mach/mach_msg.c b/coregrind/m_mach/mach_msg.c index adf95c1cf4..0a99e79816 100644 --- a/coregrind/m_mach/mach_msg.c +++ b/coregrind/m_mach/mach_msg.c @@ -46,6 +46,139 @@ #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) diff --git a/coregrind/m_mach/mach_traps-amd64-darwin.S b/coregrind/m_mach/mach_traps-amd64-darwin.S index ae2d7d1cc9..2f1524d252 100644 --- a/coregrind/m_mach/mach_traps-amd64-darwin.S +++ b/coregrind/m_mach/mach_traps-amd64-darwin.S @@ -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 diff --git a/coregrind/m_signals.c b/coregrind/m_signals.c index 1b0200287c..17069df415 100644 --- a/coregrind/m_signals.c +++ b/coregrind/m_signals.c @@ -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; diff --git a/coregrind/m_syswrap/priv_syswrap-darwin.h b/coregrind/m_syswrap/priv_syswrap-darwin.h index dc21bebeb1..1ae3c19495 100644 --- a/coregrind/m_syswrap/priv_syswrap-darwin.h +++ b/coregrind/m_syswrap/priv_syswrap-darwin.h @@ -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); diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c index b92ca8d977..fd97a91369 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -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), diff --git a/darwin.supp b/darwin.supp index 9d6506492c..9d1e91e889 100644 --- a/darwin.supp +++ b/darwin.supp @@ -848,3 +848,90 @@ 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 +} diff --git a/gdbserver_tests/filter_gdb.in b/gdbserver_tests/filter_gdb.in index ccd48212dc..07d035b564 100644 --- a/gdbserver_tests/filter_gdb.in +++ b/gdbserver_tests/filter_gdb.in @@ -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 diff --git a/include/vki/vki-scnums-darwin.h b/include/vki/vki-scnums-darwin.h index 904bf21238..94d4cec93e 100644 --- a/include/vki/vki-scnums-darwin.h +++ b/include/vki/vki-scnums-darwin.h @@ -193,6 +193,10 @@ #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) @@ -889,6 +893,17 @@ #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 diff --git a/massif/tests/alloc-fns-A.vgtest b/massif/tests/alloc-fns-A.vgtest index 09f7295576..01c2b6d7f6 100644 --- a/massif/tests/alloc-fns-A.vgtest +++ b/massif/tests/alloc-fns-A.vgtest @@ -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 diff --git a/massif/tests/alloc-fns-B.vgtest b/massif/tests/alloc-fns-B.vgtest index f00c768b5a..c1aae79bc9 100644 --- a/massif/tests/alloc-fns-B.vgtest +++ b/massif/tests/alloc-fns-B.vgtest @@ -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 diff --git a/massif/tests/basic.vgtest b/massif/tests/basic.vgtest index fc38581752..f988e9400e 100644 --- a/massif/tests/basic.vgtest +++ b/massif/tests/basic.vgtest @@ -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 diff --git a/massif/tests/basic2.vgtest b/massif/tests/basic2.vgtest index 97442dfaec..87be264ae8 100644 --- a/massif/tests/basic2.vgtest +++ b/massif/tests/basic2.vgtest @@ -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 diff --git a/massif/tests/big-alloc.vgtest b/massif/tests/big-alloc.vgtest index 0e9e732186..1e571b413c 100644 --- a/massif/tests/big-alloc.vgtest +++ b/massif/tests/big-alloc.vgtest @@ -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 diff --git a/massif/tests/bug469146.vgtest b/massif/tests/bug469146.vgtest index ad5408347e..9e73ce8f13 100644 --- a/massif/tests/bug469146.vgtest +++ b/massif/tests/bug469146.vgtest @@ -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 diff --git a/massif/tests/culling1.stderr.exp b/massif/tests/culling1.stderr.exp index 859c840a15..fa053a54e3 100644 --- a/massif/tests/culling1.stderr.exp +++ b/massif/tests/culling1.stderr.exp @@ -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) diff --git a/massif/tests/culling1.vgtest b/massif/tests/culling1.vgtest index 9682aaadf1..bb99196d54 100644 --- a/massif/tests/culling1.vgtest +++ b/massif/tests/culling1.vgtest @@ -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 diff --git a/massif/tests/culling2.stderr.exp b/massif/tests/culling2.stderr.exp index 5d227a1265..6e424662ab 100644 --- a/massif/tests/culling2.stderr.exp +++ b/massif/tests/culling2.stderr.exp @@ -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) diff --git a/massif/tests/culling2.vgtest b/massif/tests/culling2.vgtest index b9bfe81d16..5b0dc0aed9 100644 --- a/massif/tests/culling2.vgtest +++ b/massif/tests/culling2.vgtest @@ -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 diff --git a/massif/tests/custom_alloc.vgtest b/massif/tests/custom_alloc.vgtest index 07e5ad18c1..6b49cf0b22 100644 --- a/massif/tests/custom_alloc.vgtest +++ b/massif/tests/custom_alloc.vgtest @@ -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 diff --git a/massif/tests/deep-A.vgtest b/massif/tests/deep-A.vgtest index 5d90b8a65d..07c2c5f2db 100644 --- a/massif/tests/deep-A.vgtest +++ b/massif/tests/deep-A.vgtest @@ -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 diff --git a/massif/tests/deep-B.stderr.exp b/massif/tests/deep-B.stderr.exp index 56f1339f3c..8729905a80 100644 --- a/massif/tests/deep-B.stderr.exp +++ b/massif/tests/deep-B.stderr.exp @@ -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) diff --git a/massif/tests/deep-B.vgtest b/massif/tests/deep-B.vgtest index b877a11c6c..7b66a2d32f 100644 --- a/massif/tests/deep-B.vgtest +++ b/massif/tests/deep-B.vgtest @@ -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 diff --git a/massif/tests/deep-C.stderr.exp b/massif/tests/deep-C.stderr.exp index 7402601ea7..91ba98d0c2 100644 --- a/massif/tests/deep-C.stderr.exp +++ b/massif/tests/deep-C.stderr.exp @@ -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) diff --git a/massif/tests/deep-C.vgtest b/massif/tests/deep-C.vgtest index ac8263b22c..62de7685ba 100644 --- a/massif/tests/deep-C.vgtest +++ b/massif/tests/deep-C.vgtest @@ -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 diff --git a/massif/tests/deep-D.vgtest b/massif/tests/deep-D.vgtest index 59f4ae09ba..a4a34327d4 100644 --- a/massif/tests/deep-D.vgtest +++ b/massif/tests/deep-D.vgtest @@ -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 diff --git a/massif/tests/ignored.vgtest b/massif/tests/ignored.vgtest index 7b9fa41205..335fb6e9d8 100644 --- a/massif/tests/ignored.vgtest +++ b/massif/tests/ignored.vgtest @@ -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 diff --git a/massif/tests/ignoring.vgtest b/massif/tests/ignoring.vgtest index 9faf24d82f..55ec5e2664 100644 --- a/massif/tests/ignoring.vgtest +++ b/massif/tests/ignoring.vgtest @@ -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 diff --git a/massif/tests/inlinfomalloc.vgtest b/massif/tests/inlinfomalloc.vgtest index 8df84d2015..7c0aa8b48e 100644 --- a/massif/tests/inlinfomalloc.vgtest +++ b/massif/tests/inlinfomalloc.vgtest @@ -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 diff --git a/massif/tests/insig.vgtest b/massif/tests/insig.vgtest index de1bc0bceb..dae8b378b7 100644 --- a/massif/tests/insig.vgtest +++ b/massif/tests/insig.vgtest @@ -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 diff --git a/massif/tests/long-names.vgtest b/massif/tests/long-names.vgtest index d05336f1e5..755a54916c 100644 --- a/massif/tests/long-names.vgtest +++ b/massif/tests/long-names.vgtest @@ -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 diff --git a/massif/tests/long-time.vgtest b/massif/tests/long-time.vgtest index cb0215a465..f42178f023 100644 --- a/massif/tests/long-time.vgtest +++ b/massif/tests/long-time.vgtest @@ -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 diff --git a/massif/tests/new-cpp.vgtest b/massif/tests/new-cpp.vgtest index 19148c705c..72172ec2d6 100644 --- a/massif/tests/new-cpp.vgtest +++ b/massif/tests/new-cpp.vgtest @@ -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 diff --git a/massif/tests/null.vgtest b/massif/tests/null.vgtest index b6396675fe..a5cede5a97 100644 --- a/massif/tests/null.vgtest +++ b/massif/tests/null.vgtest @@ -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 diff --git a/massif/tests/one.vgtest b/massif/tests/one.vgtest index 29b24d4c3b..e2b92bd700 100644 --- a/massif/tests/one.vgtest +++ b/massif/tests/one.vgtest @@ -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 diff --git a/massif/tests/overloaded-new.vgtest b/massif/tests/overloaded-new.vgtest index e99ce8b645..e648b46b4c 100644 --- a/massif/tests/overloaded-new.vgtest +++ b/massif/tests/overloaded-new.vgtest @@ -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 diff --git a/massif/tests/peak.vgtest b/massif/tests/peak.vgtest index df2403e100..f00c99b05a 100644 --- a/massif/tests/peak.vgtest +++ b/massif/tests/peak.vgtest @@ -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,... [truncated message content] |