是否有任何通过 macports 或 brew 提供的补丁可以让您在 macOS 12 上安装 Valgrind?
这都是资源问题。我认为我是唯一使用 macOS 的活跃 Valgrind 开发人员,但我的重点是 FreeBSD。有点遗憾的是,苹果(撰写本文时市值为 2.4 万亿美元)无法付出相对较小的努力来实现这一目标。有几位 IBM 工程师做出了贡献(直接为 s390 和 PPC,间接通过 RedHat)。
Valgrind 配置脚本所需的更改非常小。
试试这个
AC_DEFINE([XCODE_12_0], 110000, [XCODE_VERS value for Xcode 12.0])
555 行之后
12.*)
AC_DEFINE([XCODE_VERS], XCODE_12_0, [Xcode version])
;;
- 复制内核版本 21.0(第 526 行)的 case 块,类似于
# comes after the 20.0) case
21.*)
AC_MSG_RESULT([Darwin 21.x (${kernel}) / macOS 12 Monterey])
AC_DEFINE([DARWIN_VERS], DARWIN_12_00, [Darwin / Mac OS X version])
DEFAULT_SUPP="darwin20.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
;;
- (暂时忽略抑制版本)
- 运行
./autogen.sh
- 运行
./configure
- 运行
make
- 如果所有工作都运行
./vg-in-place yes
完成上述操作,再加上对 DARWIN_12 的一些更改,我明白了
paulf> ./vg-in-place yes
==12358== Memcheck, a memory error detector
==12358== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12358== Using Valgrind-3.18.0.GIT-lbmacos and LibVEX; rerun with -h for copyright info
==12358== Command: yes
==12358==
valgrind: m_mach/dyld_cache.c:244 (int try_to_init(void)): Assertion 'dyld_cache.header->mappingCount == 3' failed.