osx gdb osx-yosemite

osx - Homebrew GDB no puede abrir el archivo principal en Yosemite 10.10



osx-yosemite (1)

Basado en el largo hilo de discusión de los desarrolladores de GDB sobre este tema , parece que Apple no fusionó sus cambios a la línea principal oficial de GNU, y en su lugar optó por publicar el código fuente modificado en su propio sitio. Como resultado, la instalación de Homebrew GDB (que usa las fuentes de stock GDB) no puede cargar archivos de núcleo de OS X.

En este punto, veo tres opciones:

  1. Ceder y aprender LLDB. Hay una hoja de trucos de GDB a LLDB para ayudar.

  2. Instale el GDB personalizado de Apple desde MacPorts. He abandonado MacPorts por mucho tiempo, así que no puedo probarlo, pero si tiene instalados MacPorts, intente lo siguiente:

    $ 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. Traduzca los parches GDB de MacPorts y construya las especificaciones en una fórmula Homebrew. Es teóricamente posible, pero no tengo tiempo para hacerlo yo mismo.

Personalmente, opté por aprender LLDB. Apple se ha trasladado permanentemente a LLVM, por lo que es probable que solo sea cuestión de tiempo antes de que el viejo GDB parcheado deje de funcionar con las últimas y mejores herramientas de Xcode.

Instalé GDB 7.8.1 y GCC 4.9 a través de Homebrew.

Cuando abro un archivo core generado por un programa compilado por GCC ( gcc-4.9 -g xxx.c -o xxx ), informa:

→ 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

Busqué en Google y encontré que alguien sugirió usar LLDB en lugar de GDB.

¿Es posible usar GDB para depurar el archivo central? ¿Y es porque GDB no admite el formato binario en Yosemite?