Reset kernel in gdb on OSX (no "gcore" or "generate-core-file")

I use gdb for OSX, which has no gcore and generate-core-file commands:

 $ 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) 

Given this, how can I start generating a core dump or something approaching it through GDB?

(I suspect I can use dump memory , but this requires a range of addresses, and I try my best to find the correct info call to get the correct memory range ...)

+7
source share
2 answers

Run lldb --attach-pid , then use the process save-core command to save the kernel. Please note that the process will be suspended from the moment you join it, so be careful if this is an important process.

 $ 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 ... 
+8
source

See How to generate the main file for a broken application in Xcode + gdb?

Also, perhaps the new gdb has gcore that runs on MacOS. I do not know, but you can search and find out.

0
source

All Articles