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.
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 ===================
10.15 Catalina
11.0 Big Sur (Intel only)
12.0 Monterey (Intel only)
+13.0 Ventura (Intel only, preliminary)
* ==================== TOOL CHANGES ===================
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)])
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])
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);
#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
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;
/*
timeout, notify);
return mr;
+#endif
}
#endif // defined(VGO_darwin)
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
/* 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;
// 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);
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);
{
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",
}
}
+#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)
{
#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
------------------------------------------------------------------ */
#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)
};
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),
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
+}
# 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
#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
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
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
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
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
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
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
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)
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
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)
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
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
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
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)
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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)
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
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
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
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
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
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
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
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
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
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
+}
// 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.
# 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)
/* _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)
// 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)
//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)