2012-04-30 17 views
7

estoy usando GDB en OSX, que parece no tener ni los gcore ni generate-core-file comandos:núcleo de dumping en el BGF en OSX (sin "gcore" o "generar núcleos-archivo")

$ gdb 
GNU gdb 6.3.50-20050815 (Apple version gdb-1705) (Fri Jul 1 10:50:06 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin". 
(gdb) gcore 
Undefined command: "gcore". Try "help". 
(gdb) generate-core-file 
Undefined command: "generate-core-file". Try "help". 
(gdb) 

Dadas esto, ¿cómo podría generar un volcado de núcleo, o algo parecido a uno, a través de GDB?

(sospecho que puedo utilizar dump memory, pero que requiere un rango de direcciones, y yo estoy luchando para encontrar la derecha info invocación para obtener el rango correcto de memoria ...)

Respuesta

8

Ejecute lldb --attach-pid, luego use el comando process save-core para guardar el núcleo. Tenga en cuenta que el proceso se detendrá desde el momento en que se conecte a él, así que tenga cuidado si se trata de un proceso importante.

$ lldb --attach-pid <pid> 
(lldb) process attach --pid 76669 
Process 76669 stopped 
Executable module set to "/bin/bash". 
Architecture set to: x86_64h-apple-macosx. 
(lldb) process save-core "core" 
mach_header: 0xfeedfacf 0x01000007 0x00000008 0x00000004 0x00000030 0x00000e08 0x00000000 0x00000000 
... 
Saving data for segment at 0x7fd455200000 
... 
+0

¿Puedo hacer eso para obtener un volcado de memoria de un proceso? ¿Cómo? Esto no funciona. '-bash: lldb: comando no encontrado' –

+0

@NicolasBarbulesco Pruebe' xcode-select --install' para instalar las herramientas de desarrollador – andrewdotn

+0

'-bash: xcode-select: comando no encontrado' –

Cuestiones relacionadas