Process memory map

Howard Chu
Wed Nov 3 16:07:17 GMT 2021

John Baldwin wrote:
> On 11/3/21 12:20 AM, Chris Packham via Gdb wrote:
>> On Wed, Nov 3, 2021 at 1:33 PM Howard Chu <> wrote:
>>> Is the complete map of process address space saved in a core file? When debugging
>>> with a core file, is there a gdb command to mmap the files that were mapped at the
>>> time the core was taken, so that references to addresses in those regions will be
>>> valid?
>> I recently had a similar need. I found `info proc all` (technically
>> `info proc mappings`) contained the mapping info I needed. For a
>> regular core file the shared libraries were automatically loaded (in
>> my case I needed to `set auto-load safe-path` and `set sysroot` for my
>> cross-build environment). The one slight problem I had was with a very
>> specific core file where the crash was in in that specific case
>> it wasn't automatically loaded and I had to muck around with `add
>> symbol-file` and manually working out some offsets to get it loaded
>> into the right place.
>> I'd be interested in hearing tips from anyone else.
> Note that manually loading symbols is much easier in recent versions of
> GDB.  You can find the base address that a given file is loaded at
> via 'info proc mappings' and then just use
> 'add-symbol-file -o <base address> /path/to/library' to load all of the
> symbols without having to calculate the address of individual sections.
Thanks, `info proc mappings` is helpful but I'm talking about referencing
the contents of arbitrary mmap'd files, not shared libraries. gdb doesn't
currently map them, and by default their contents are not included in core

  -- Howard Chu
  CTO, Symas Corp. 
  Director, Highland Sun
  Chief Architect, OpenLDAP

More information about the Gdb mailing list