Re: Process memory map
John Baldwin <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 11/3/21 12:20 AM, Chris Packham via Gdb wrote: > On Wed, Nov 3, 2021 at 1:33 PM Howard Chu <[email protected]> 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 ld.so 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. -- John Baldwin