2014-12-28 6 views
6

Ich habe GDB 7.8.1 und GCC 4.9 durch Homebrew installiert.Homebrew GDB kann Core-Datei auf Yosemite 10.10 nicht öffnen

Wenn ich eine Core-Datei von einem GCC kompiliert (gcc-4.9 -g xxx.c -o xxx) Programm generiert öffnen, berichtet:

→ 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 

ich gegoogelt und fand jemand vorgeschlagen LLDB statt GDB zu verwenden.

Ist es möglich, GDB zu verwenden, um die Kerndatei zu debuggen? Und ist es, weil GDB das binäre Format auf Yosemite nicht unterstützt?

Antwort

12

Basierend auf the long GDB developers' discussion thread on this issue scheint es, dass Apple ihre Änderungen nicht wieder in die offizielle GNU-Mainline einfügt und stattdessen den modifizierten Quellcode auf ihrer eigenen Site veröffentlicht. Daher kann die Homebrew GDB-Installation (die die GDB-Quellquellen verwendet) OS X-Kerndateien nicht laden.

An diesem Punkt sehe ich drei Möglichkeiten:

  1. in Geben und LLDB lernen. Es gibt eine GDB to LLDB cheat sheet zu helfen.

  2. Installieren Sie Apples benutzerdefinierte GDB von MacPorts. Ich habe lange MacPorts verlassen, so kann ich es nicht testen, aber wenn Sie MacPorts installiert haben, versuchen Sie Folgendes:

    $ 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 Patches Übersetzen und spec in eine Homebrew Formel bauen. Es ist theoretisch möglich, aber ich habe nicht die Zeit, es selbst zu tun.

Persönlich habe ich beschlossen, nur LLDB zu lernen. Apple ist permanent auf LLVM umgestiegen, daher ist es wahrscheinlich nur eine Frage der Zeit, bis die alte gepatchte GDB nicht mehr mit den neuesten Xcode-Tools arbeitet.

Verwandte Themen