public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Howard Chu <hyc@symas.com>
To: John Baldwin <jhb@FreeBSD.org>, Chris Packham <judge.packham@gmail.com>
Cc: "gdb@sourceware.org" <gdb@sourceware.org>
Subject: Re: Process memory map
Date: Wed, 3 Nov 2021 16:07:17 +0000	[thread overview]
Message-ID: <2ccb34d7-c59e-e1f7-8772-8199e33c23cb@symas.com> (raw)
In-Reply-To: <95ecace6-76fd-781c-381d-385692373b0e@FreeBSD.org>

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 <hyc@symas.com> 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/

      reply	other threads:[~2021-11-03 16:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-03  0:32 Howard Chu
2021-11-03  7:20 ` Chris Packham
2021-11-03 15:59   ` John Baldwin
2021-11-03 16:07     ` Howard Chu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2ccb34d7-c59e-e1f7-8772-8199e33c23cb@symas.com \
    --to=hyc@symas.com \
    --cc=gdb@sourceware.org \
    --cc=jhb@FreeBSD.org \
    --cc=judge.packham@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).