如何在 macOS Big Sur 上安装 valgrind?

Mic*_*Rep 3 macos homebrew valgrind

我最近购买了 M1 MacBook Pro,但在 macOS Big Sur 上安装 valgrind 时遇到问题。到目前为止我尝试过的是:

  • brew install valgrind 会弹出错误(brew 已更新)

Error: invalid attribute for formula 'valgrind': version (nil)

  • 编辑后的头部如下所示
  • 按照列出的所有指示从GitHub手动下载,但我得到
Last 15 lines from /Users/homeuser/Library/Logs/Homebrew/valgrind/03.make:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_status.h:254:9: error: unknown type name '_STRUCT_X86_DEBUG_STATE64'
typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t;
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_status.h:260:9: error: unknown type name '_STRUCT_X86_PAGEIN_STATE'
typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t;
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/mach/i386/thread_status.h:266:9: error: unknown type name '_STRUCT_X86_INSTRUCTION_STATE'
typedef _STRUCT_X86_INSTRUCTION_STATE x86_instruction_state_t;
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [fixup_macho_loadcmds] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)
  • 研究了这个曾经有效的旧修复

不幸的是,这些方法都不起作用,所以我真的很感谢解决这个问题,因为我每天都需要使用 valgrind 来做大学作业。

Pau*_*oyd 7

明确的答案。configure.ac有关确切的详细信息,请参阅autoconf 文件。从第 5021 行开始(显然,在未来的版本中可能会发生变化)内核版本有一个切换。

Valgrind 官方支持的最新 macOS 版本是 Intel 上的 10.13。macOS 11/12(任何架构)和 ARM 均不受支持。

让 Valgrind 在 macOS 11/12 ARM 硬件上工作需要

  • 填补 10.13 至 11/12 的所有空白
  • 用于系统调用等低级函数的 ARM 汇编代码

有Linux ARM支持,所以第二点可能不会那么困难。我没有基于 ARM 的 mac,所以我暂时不做志愿者。

  • 我维护 FreeBSD Valgrind 端口,并尝试关注 Solaris 和 macOS。我将添加对相关文件的引用。 (2认同)