From: Christian Biesinger via Gdb <gdb@sourceware.org>
To: Mike Gulick <mgulick@mathworks.com>
Cc: Reuben Thomas via Gdb <gdb@sourceware.org>
Subject: Re: GDB memory usage with compressed debug info
Date: Mon, 22 Mar 2021 19:09:26 +0100 [thread overview]
Message-ID: <CAPTJ0XEohR74_BDD7Av8AZkyXFBQrfv_GXYMMAbmCnwxY+KOrw@mail.gmail.com> (raw)
In-Reply-To: <acf17b88-a914-4f17-7a49-07b82c01812e@mathworks.com>
On Thu, Mar 18, 2021 at 7:38 PM Mike Gulick via Gdb <gdb@sourceware.org> wrote:
>
> On 3/16/21 2:40 PM, Mike Gulick wrote:
> > Hi,
> >
> > I'm observing that GDB memory usage is much higher when I have debug
> > info compressed with 'objcopy --compress-debug-sections'. In a large
> > C++ application, I see the instance with uncompressed debug info use
> > 46GB VIRTUAL memory and 11GB RSS, and the instance with compressed debug
> > info is using 46GB VIRTUAL memory and 42GB RSS. In case it matters, the
> > debug info is separated from the original binary into its own file.
> >
> > It seems like GDB must load the full uncompressed debug info into memory
> > when the underlying files are compressed?
> >
> > I'm currently using GDB 9.2. I checked the 10.1 NEWS and didn't see
> > anything that looked like it would have changed this result, but I'm
> > happy to give it a try if you think it might help.
> >
> > Is there any chance this could be improved with a patch to GDB, or is
> > this just the nature of compressed debug data?
> >
> > Also, FYI, the NEWS link for the GDB 10.1 release on the GDB home page
> > points to the NEWS file for the 9.1 release.
> >
> > Thanks!
> >
> > -Mike
>
> I should add that this high memory usage only occurs when there is a
> FILE:LINENUM breakpoint set (or pending). I can run the application
> being debugged, observe that GDB's memory usage is around 11 or 12 GB,
> then run 'b foobar.cpp:123', and the GDB memory usage will climb up to
> 42 GB. Interesting that symbolic breakpoints don't trigger this high
> memory usage, but line-based breakpoints do. Does this seem expected?
I'm guessing that this is due to parsing full debug info ("expanding
psymtabs") which is not necessary for symbolic breakpoints, which can
rely on minsyms or maybe psymtabs. Have you tried using a heap
profiler to see where the memory usage comes from?
Christian
next prev parent reply other threads:[~2021-03-22 18:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-16 18:40 Mike Gulick via Gdb
2021-03-18 18:38 ` Mike Gulick via Gdb
2021-03-22 18:09 ` Christian Biesinger via Gdb [this message]
2021-03-24 19:59 ` Matt Rice via Gdb
2021-03-24 22:52 ` Mike Gulick via Gdb
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=CAPTJ0XEohR74_BDD7Av8AZkyXFBQrfv_GXYMMAbmCnwxY+KOrw@mail.gmail.com \
--to=gdb@sourceware.org \
--cc=cbiesinger@google.com \
--cc=mgulick@mathworks.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