[llvm-dev] Slow debugger starts of LLVM tools

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 15 16:45:55 PST 2019


Ah, yeah, I haven't observed particularly long program startup time. Could
you time it & specify exxactly which commands (both the command you used to
start gdb, and the commands you executed in gdb) you executed/which ones
took a long time/roughly how long they took, etc?

On Wed, Jan 16, 2019 at 3:53 AM David Greene <dag at cray.com> wrote:

> I was under the impression that a generated gdb-index only helps when
> loading the file ('file foo' in gdb).  Does it help execution startup
> time as well?
>
> I'll give it a try and see if it helps.  Thanks all!
>
>                          -David
>
> David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> writes:
>
> > Yep, as others have mentioned - using a linker-generated gdb-index is
> > super helpful (10s for my machine to start debugging an unoptimized
> > clang, set a breakpoint at llvm::StringRef::StringRef and run until
> > that breakpoint is hit, as opposed to 1m26s without an index)
> >
> > That's also with/without split DWARF too, but I suspect most of the
> > benefit is in the index there. Split DWARF might save you some linking
> > time and /maybe/ some debugger performance.
> >
> > On Thu, Jan 10, 2019 at 1:16 PM Petr Penzin via llvm-dev
> > <llvm-dev at lists.llvm.org> wrote:
> >
> >         I've ran into the same issue before. I tend to see it as a
> >     price we pay for static linking, since it brings all the symbols
> >     debugger has to read at the start time. Quick check on launching a
> >     tool (fort) in GDB (I usually use it) and LLDB shows that LLDB
> >     starts much faster, but takes time to set breakpoints and launch
> >     the application, so I think they are roughly on the same page in
> >     terms of delays.
> >
> >         -Petr
> >
> >
> >     On 1/9/19 6:17 PM, Zachary Turner via llvm-dev wrote:
> >
> >     This is admittedly a longshot, but Can you check whether you
> >         experience unusually long run times with LLDB? If there’s
> >         something strange about tge binaries we generate, maybe lldb
> >         will exhibit some strangeness too and we can more easily
> >         profile it.
> >
> >
> >         On Wed, Jan 9, 2019 at 2:48 PM Shoaib Meenai via llvm-dev
> >         <llvm-dev at lists.llvm.org> wrote:
> >
> >         I don't know about the issues with running being slow, but
> >             using a GDB index greatly speeds up initial symbol
> >             loading. Compile with `-ggnu-pubnames` and link with
> >             `-Xlinker --gdb-index` and you should get significantly
> >             faster symbol load times. (I'd be curious to see if it
> >             helps with the issues with run being slow as well.)
> >
> >             On 1/9/19, 2:07 PM, "llvm-dev on behalf of David Greene
> >             via llvm-dev" <llvm-dev-bounces at lists.llvm.org on behalf
> >             of llvm-dev at lists.llvm.org> wrote:
> >
> >
> >             David Jones via llvm-dev <llvm-dev at lists.llvm.org> writes:
> >
> >             > GDB likes to load all symbols from shared libraries up
> >             front. And on
> >             > x86_64 your main executable is really just another
> >             shared library.
> >
> >             Yes, but does gdb reload everything on each execution?
> >             Every time I
> >             execute "run" I see the same slow behavior. Loading the
> >             symbols for
> >             small tools like llvm-rc takes hardly any time at all
> >             (i.e. "file
> >             llvm-rc" is almost instantaneous). But executing it causes
> >             gdb to chew
> >             up CPU cycles for a while. Every time.
> >
> >             -David
> >             _______________________________________________
> >             LLVM Developers mailing list
> >             llvm-dev at lists.llvm.org
> >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.
> >
>  org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=dqw6dQj2Nwimdo2WZ3P_
> >
>  n0WRZBWrrtNACdQfXzCB0Xc&s=psETNIS-WHrFqc7U8d3tg6i1UGx4-CHNUo0FO-
> >             FNQJg&e=
> >
> >
> >             _______________________________________________
> >             LLVM Developers mailing list
> >             llvm-dev at lists.llvm.org
> >             http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> >
> >         _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> >     _______________________________________________
> >     LLVM Developers mailing list
> >     llvm-dev at lists.llvm.org
> >     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190116/fde7c294/attachment.html>


More information about the llvm-dev mailing list