【问题标题】:How to install valgrind on macOS Big Sur?如何在 macOS Big Sur 上安装 valgrind?
【发布时间】:2021-04-13 13:28:22
【问题描述】:

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

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

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

  • 已编辑头部,如图所示here
  • 按照列出的所有指示从 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
  • 调查了这个曾经工作的旧fix

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

【问题讨论】:

标签: macos homebrew valgrind


【解决方案1】:

确定的答案。有关详细信息,请参阅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,所以我暂时不支持。

【讨论】:

  • 你的回答很有帮助,所以谢谢你——但是说“确定的答案”有点过于自信了。在我看来,“明确”的答案往往是源项目文档中的直接引用。包含指向项目变更日志和/或其他文档的超链接确实很有帮助。从您的个人资料来看,您似乎为 Valgrind 做出了贡献(谢谢!)。我认为这样说比说它是“确定的”更能提高你的回答的可信度。
  • 我维护了 FreeBSD Valgrind 端口,并尝试密切关注 Solaris 和 macOS。我将添加对相关文件的引用。
猜你喜欢
  • 1970-01-01
  • 2021-06-19
  • 2021-08-04
  • 2021-05-31
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 2021-06-08
相关资源
最近更新 更多