OS X v10.9 (Mavericks) 中缺少 GDB

Posted

技术标签:

【中文标题】OS X v10.9 (Mavericks) 中缺少 GDB【英文标题】:GDB missing in OS X v10.9 (Mavericks) 【发布时间】:2013-10-23 23:51:56 【问题描述】:

我在 OS X v10.9 (Mavericks) 中使用了 GDB,但它不存在。去哪儿了?

# /usr/lib/gdb
-bash: /usr/bin/gdb: No such file or directory
# gdb
-bash: gdb: command not found

我还推出了 Xcode 5.0.1:

首选项 > 下载

..并且不再有可用的命令行工具 - ffs!

【问题讨论】:

命令行工具可用,developer.apple.com/downloads/… 要到达那里,从 XCode 转到 XCode > Open Developer Tool > More Developer Tools... 编辑:没关系,因为命令行工具中也没有 GDB... 自从我问了这个问题后,很多人都问我用什么 ./configure 选项来实现这个功能:./configure --prefix=/usr/local --enable-targets=x86_64-apple-darwin13.0.0 --enable-64-bit-bfd --disable-werror --build=x86_64-apple-darwin13.0.0 --host=x86_64-apple-darwin13.0.0 --target=x86_64-apple-darwin13.0.0 【参考方案1】:

gdb 已替换为 lldb,不再受支持。 gccllvm-gcc也不见了,取而代之的是clang

【讨论】:

还有办法使用 gdb 吗? 我不知道。您可以自己构建它(例如,通过自制软件),但我不知道它的效果如何。 嗨,鲶鱼先生,我让它工作了。它只需要使用正确的 ./configure 命令从源代码编译它:) thx! 我也对 ./configure 很好奇。我使用默认设置构建,除了附加到实时进程外,一切正常。符号错误,当我按 ctrl-C 时它会崩溃。 我通过 brew 安装,并在尝试加载可执行文件时不断收到“_____:不是可执行格式:文件格式无法识别”。谁能评论他们是如何成功安装的?【参考方案2】:

您可以使用 Homebrew 在 Mavericks 上安装它。

brew install homebrew/dupes/gdb

【讨论】:

brew install dupx 一直告诉我checking for gdb... no 这在 Maveric 上对我不起作用。 Homebrew 给了我一个错误,安装似乎有很多未解决的问题。 这几乎对我有用,然后抱怨 GDB 没有正确签名(当我实际上试图用它调试某些东西时)。 仅供参考:这对我有用。我想不同的人对此有不同程度的困难。如果您能够安装它,请确保查看here 以获取签名说明。 我也遇到了签名错误,但是当我运行 sudo gdb target 时它得到了解决。【参考方案3】:

这个 Homebrew 命令用于在 Mavericks 上安装 GDB 工具:

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb

【讨论】:

@Sławosz brew install gdb 现在似乎正在工作(在小牛队)。【参考方案4】:

谢谢我。我使用了您的 ./configure 选项,并且工作起来非常有魅力。下一步是告诉 OS X 我们允许 GDB 进行调试。这是通过通过钥匙串创建证书,将其导出,然后sudo codesing -s gdb-cert /route/to/gdb,提供凭据来完成的。

见GDB wiki detailed instructions

【讨论】:

【参考方案5】:

我从 Maveics 中的源代码编译 GDB。

我更改了 makefile(在 ./configure 之后)以抑制一些应该是警告的错误...(添加了 -Wno-string-plus-int)

Line 385:
CFLAGS = -g -O2 -Wno-string-plus-int

Line 388:
CXXFLAGS = -g -O2 -Wno-string-plus-int

不知道两者是否都需要。

但是

事实证明,标准版本不支持从 .app 文件进行调试 (根据使用 Carbon 界面的 Lazarus 应用程序的需要)

如果您想自己动手,请点击此链接:https://sourceware.org/gdb/wiki/BuildingOnDarwin

【讨论】:

这可能行不通。我过去尝试过,生成的 gdb 无法调试应用程序。 在设置 CFLAGS="-I /usr/local/include" 之后,我也能够在 Mavericks 上从源代码编译,因此它选择了 libintl.h。不过不要忘记对代码进行签名,否则 gdb 将无法工作。有关这方面的信息,请参阅 ntraft.com/installing-gdb-on-os-x-mavericks。这一切的最终结果是在 NetBeans 中成功调试(我获得 GDB 的主要原因)。【参考方案6】:

按照此处给出的步骤,它工作正常:http://wiki.lazarus.freepascal.org/GDB_on_OS_X_Mavericks_and_Xcode_5

【讨论】:

【参考方案7】:

就我而言,我通过以下步骤使其在 OS X 上运行:

    设置 GDB Homebrew 与此处描述的完全一样 http://wiki.lazarus.freepascal.org/GDB_on_OS_X_Mavericks_and_Xcode_5

    然后将调试设置为Dwarf2: 项目 -> 项目选项..

如果运行/构建挂起然后重新启动计算机(任务门控或其他一些进程证书很可能没有经过身份验证),调试设置回到“自动(- g)" 编译并运行(出现验证对话框并登​​录),然后将调试设置更改为“Dwarf2”,它应该再次编译

尝试在运行操作后崩溃时始终停止 GDB,以防止此身份验证失败。

【讨论】:

【参考方案8】:

您可以安装 www.macports.org 并安装 GDB。但是,您必须等待 Mavericks 的 MacPorts 安装程序,因为在撰写本文时它尚未发布。

【讨论】:

【参考方案9】:

当我看到 MacPorts 还没有适用于 Mavericks 时,但现在可以了!

芬克仍然没有。

但是标准的 GDB 仍然不支持调试 .app 文件。

【讨论】:

【参考方案10】:

运行这个来安装命令行工具:

xcode-select --install

【讨论】:

适用于 OS X 10.9 Mavericks 的 CLT 没有 GDB,这是 OP 试图解决的问题。【参考方案11】:

命令行实用程序不包含在新的 Xcode 中,但您可以按照这些说明获取它。 (上面的 Xcode 选择注释对我不起作用。)

打开 Xcode

在应用程序菜单项“Xcode”中,选择Open Developer ToolMore Developer Tools...

这会将您带到一个包含大量软件的站点。继续下载并安装“Xcode 的命令行工具 (OS X Mavericks) - 2013 年 10 月下旬”。

(感谢 Jore https://discussions.apple.com/message/23513040#23513040)

【讨论】:

CLT 没有 10.9 的 GDB【参考方案12】:

在虚拟机中安装带有 Xcode 4.6 的 Mac OS X v10.8 (Mountain Lion) 并获得乐趣 )))

我使用 VMware Fusion,但您可以免费试用 VirtualBox。您可以从 AppStore 获取旧版 MacOS,从 Apple 开发者网站获取旧版 Xcode。

【讨论】:

以上是关于OS X v10.9 (Mavericks) 中缺少 GDB的主要内容,如果未能解决你的问题,请参考以下文章

为啥 apt-get 功能在 Mac OS X v10.9 (Mavericks) 的终端中不起作用?

Aspell 不会在 OS X 10.9 (Mavericks) 上构建

OS X 10.9 Mavericks - 使用虚拟主机设置本地主机

在 migratePersistentStore: 到 OS X 10.9 Mavericks 上的另一个 URL 后访问 NSManagedObject 属性时崩溃

在 OS X Mavericks 10.9 上安装 apache 2.4

如何在 OS X 10.9 (Mavericks) 上使用 GDB 而不是 LLDB 调试 ELF 文件?