【问题标题】:Homebrew GDB can't open core file on Yosemite 10.10Homebrew GDB 无法在 Yosemite 10.10 上打开核心文件
【发布时间】:2014-12-28 21:24:41
【问题描述】:

我通过 Homebrew 安装了 GDB 7.8.1 和 GCC 4.9。

当我打开一个由 GCC 编译的 (gcc-4.9 -g xxx.c -o xxx) 程序生成的核心文件时,它会报告:

→  gdb ./list_test /cores/core.1176
GNU gdb (GDB) 7.8.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin14.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./list_test...
warning: `/var/folders/r1/3sx4x5k1557g_v5by83k4hg00000gn/T//cchuMtAU.o': can't open to read symbols: No such file or directory.
(no debugging symbols found)...done.
"/cores/core.1176": no core file handler recognizes format

我搜索了一下,发现有人建议使用 LLDB 而不是 GDB。

是否可以使用 GDB 调试核心文件?是不是因为 GDB 不支持 Yosemite 上的二进制格式?

【问题讨论】:

    标签: macos gdb osx-yosemite


    【解决方案1】:

    基于the long GDB developers' discussion thread on this issue,Apple 似乎没有将他们的更改合并回官方 GNU 主线,而是选择在他们自己的网站上发布修改后的源代码。因此,Homebrew GDB 安装(使用库存 GDB 源)无法加载 OS X 核心文件。

    此时,我看到了三个选择:

    1. 学习 LLDB。GDB to LLDB cheat sheet 可以提供帮助。

    2. 从 MacPorts 安装 Apple 的自定义 GDB。 我早就放弃了 MacPorts,所以无法测试它,但如果您安装了 MacPorts,请尝试以下操作:

      $ sudo port install gdb-apple
      $ codesign -s <your_GDB_cert_id> /opt/local/bin/gdb-apple
      $ /opt/local/bin/gdb-apple ./list_test /cores/core.1176
      
    3. 翻译 MacPorts 的 GDB 补丁并将规范构建为 Homebrew 公式。理论上可行,但我没有时间自己做。

    就个人而言,我选择只学习 LLDB。 Apple 已永久迁移到 LLVM,因此旧的修补 GDB 停止使用最新最好的 Xcode 工具可能只是时间问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      相关资源
      最近更新 更多