Re: Greatly increased GDB memory and CPU usage with newest embedded ARM toolchain

David Blaikie via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAENS6EsorosiyktZrkJLXEsUFGsHSVSPfWzxxTvDw=wc_Fdo7A@mail.gmail.com>
4My high water mark reported my massif for the non-lto build was 197MB -
most of that seems to come from decoding the macro information
(dwarf_decode_macros). You could try dropping down from -g3 to -g2 to see
if that helps. (I realize the linux kernel uses a bunch of macros and
benefits from debug info for macros, but it'd at least help isolate the
problem - might help clarify whether the lto case is related or. not)

On Sun, Apr 18, 2021 at 10:02 AM R. Diez <[email protected]>
wrote:

>
>  > [...]
> > & yeah, that does seem like quite a bit of RAM usage for a relatively
> > small amount of debug info. Though I'm not a regular/frequent gdb
> > developer, so I don't have any particular insight there - if no one
> > else chimes in, might be worth running valgrind --tool=massif to get a
> > memory profile, might point to what part of gdb is using all the RAM.
>
> I am worried that I may not be building the toolchain and/or GDB correctly.
>
> Could you do the following test for me, just to confirm that you are
> indeed seeing such a high memory consumption?
>
> Could you build GDB 10.1 for ARM? This is how I am configuring it for
> cross-debugging (somewhat simplified):
>
> configure \
>    CFLAGS="-g0 -O3 -flto=9 -march=native" \
>    CXXFLAGS="-g0 -O3 -flto=9 -march=native" \
>    --target=arm-none-eabi
>
> Maybe you want to build it without -O3 and LTO, just using the defaults. I
> have been using those flags for years with previous versions without any
> issues.
>
> Then load one of the .elf files in the attachment like this. There is no
> need to have any ARM CPU available:
>
> ./arm-none-eabi-gdb firmware-debug-non-lto.elf
>
> At this point, GDB should be using less than 15 MiB of RAM.
>
> Now issue this GDB command:
>
> print StartOfUserCode
>
> You should see an output like this:
>
> $1 = {void (void)} 0x866d8 <StartOfUserCode()>
>
> Did that take more than 1 second? How much RAM is your GDB using now?
>
> If you repeat that with firmware-release-lto.elf , how much memory is your
> GDB using? Be prepared to kill it before it breaks your system though. I
> normally kill it after a few seconds when it reaches 2 GiB of RAM.
>
> Thanks in advance,
>    rdiez
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.