【问题标题】:Develop PostgreSQL on Mavericks (OS X 10.9)在 Mavericks 上开发 PostgreSQL (OS X 10.9)
【发布时间】:2013-12-04 11:11:17
【问题描述】:

我正在尝试在 Mavericks (OS X 10.9) 上的 Eclipse / Netbeans / QtCreator 中调试 PostgreSQL。

我在各种 IDE 中尝试了各种编译器(GCC 4.2、CLang)、不同的调试器(GDB、LLDB),但我还没有找到可行的配置——尤其是在我可以正确调试代码的意义上。

我目前正在尝试使用 GCC 4.2 和 GDB。我已经通过自制软件安装了 GCC,并且还通过了 gdb 认证。我可以编译 PostgreSQL 源代码并运行它。但是,每次我尝试将调试器附加到正在运行的线程时,我总是(独立于 IDE)出现以下错误:

Mach error at "darwin-at.c:726" in function "void darwin_resume_thread(struct inferior *, darwin_thread_t *, int, int)": (os/kern) failure (0x5).

你知道这意味着什么吗?或者您是否知道如何让 PostgreSQL 在 OS X 10.9 上编译、调试和运行?

【问题讨论】:

    标签: c macos postgresql debugging gdb


    【解决方案1】:

    使用 XCode 中的编译器和调试器,而不是从 Macports / Homebrew / 安装的任何一个。使用llvm 构建并使用lldb 进行调试。

    您可能需要安装 XCode 5 才能在您的新 OS X 上工作。

    Apple 在更新操作系统时倾向于相当随意地破坏内核接口等,并且很少为第 3 方记录这些更改。因此,有时第 3 方工具要赶上并在最新的 OS X 上工作需要时间。在这种情况下,他们似乎有理由混淆了gdb 使用的调试接口。

    如果您在使用 XCode 5 工具链时仍然遇到问题,请发布相关细节。目前的问题是一点点,所以很难确定细节。

    鉴于这是一个 Mach 错误(即内核在抱怨),您也可能有一个导致挂钩问题的 3rd 方驱动程序或实用程序。检查您安装了哪些内核扩展。

    【讨论】:

    • 非常感谢,这是一个很好的提示,让我走得更远。但是我仍然在调试方面遇到了一些问题。我使用 QT Creator 因为它是唯一支持 LLVM 和 LLDB 的 IDE(实验性)。当我尝试附加到正在运行的应用程序时,LLDB 给了我一个“错误:无法找到'/Applications/postgres:navige postgres 127.0.0.1(50996) idle”的可执行文件和“异常发现:'NoneType'对象没有属性'GetSelectedThread'”。它似乎找不到 postgres,因为它在 /Applications 中检查它,而我没有在那里找到它。但是如何改变这条路呢?
    • @navige 为什么不使用 XCode?您在 Mac 上,可以使用 Apple 工具,但有时没有太多选择。这是一个IDE。它有一个调试器。无论如何,请针对新问题发布新问题
    猜你喜欢
    • 2013-11-01
    • 2013-11-03
    • 2014-03-05
    • 1970-01-01
    • 2013-11-11
    • 2013-11-17
    • 1970-01-01
    • 2013-06-16
    • 2013-12-08
    相关资源
    最近更新 更多