Re: Process memory map
Howard Chu <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
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 <[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. > 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 files. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/