【问题标题】:cannot run gdb on mac's terminal even after codesign即使在 codesign 之后也无法在 mac 的终端上运行 gdb
【发布时间】:2018-12-24 21:14:16
【问题描述】:

我正在尝试在我的 Mac 上安装 gdb。我用 brew 下载了它,并根据https://sourceware.org/gdb/wiki/BuildingOnDarwin 上的说明对其进行了代码签名 但是,当我在终端运行 gdb 时,它仍然不起作用并输出以下错误消息:

dyld: Library not loaded: /usr/local/opt/mpfr/lib/libmpfr.6.dylib
  Referenced from: /usr/local/bin/gdb
  Reason: image not found
Trace/BPT trap: 5

有人知道是什么意思吗?顺便说一下,我的 Mac 版本是 10.11.5

【问题讨论】:

    标签: macos gdb


    【解决方案1】:

    我在 macOS 10.11.6 上遇到了同样的问题,我猜(这只是猜测;我实际上并不知道 Homebrew 是如何工作的)Homebrew 安装了 gdb 的预编译版本,这取决于在编译它的机器上存在的库上,但在我的机器上不存在。

    无论如何,我可以通过从http://ftp.gnu.org/gnu/gdb/gdb-7.12.tar.gz 下载和解压缩版本7.128.1 在我的机器上编译失败)获得gdb 的工作版本,然后使用(IIRC)编译和安装) 命令:

    • ./configure
    • make
    • sudo make install

    我在博客上写了这个和后续步骤(获取可执行代码签名以便 macOS 允许它调试其他进程等):http://prust.github.io/posts/2018-02-24-interactively-debugging-c-in-sublime-text-3.html

    【讨论】:

    • 感谢您的回答。它几乎对我有用,但是 make 退出 location.c: In function 'event_location* string_to_explicit_location(const char**, const language_defn*, int': location.c:527:19: error: ISO C++ forbids comparison between pointers和整数 [-fpermissive] || *argp == '\0' ^~~~ make[2]: *** [location.o] 错误 1 ​​make[1]: *** [all-gdb] 错误 2 make: *** [all] 错误 2
    • Lee:看起来您可以将此修复程序反向移植到 v7.12,以便使用最近的 gcc 进行编译:sourceware.org/bugzilla/show_bug.cgi?id=20653(我不确定为什么它成功了,也许我有旧版本的 gcc)
    【解决方案2】:

    我也遇到了这个问题。我在https://qiita.com/yoshixj/items/698d94337ca447e9b9de 中找到了解决方案 因为我们没有/usr/local/opt/mpfr/lib/libmpfr.6.dylib 我们可以简单地安装它。使用这个命令:

    brew install gawk
    
    echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.zshrc
    

    【讨论】:

      【解决方案3】:

      在 Mac OS X El Capitan v10.11.6 上从 Homebrew (gdb v8.1) 安装 gdb 后运行 gdb 时出现相同的错误消息。但是,使用其 Python 二进制文件通过 Homebrew 安装它解决了这个问题:

      brew install gdb --with-python
      

      请注意,这可能需要一些时间,因为您将从头开始编译 gdb。完成后,您仍然需要创建证书和 codesign gdb。

      【讨论】:

        猜你喜欢
        • 2016-06-10
        • 2014-01-24
        • 1970-01-01
        • 2018-04-08
        • 2014-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多