Re: Index files are not used in the session where they were created

Dmitry Neverov via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAEY59_LRxcYzCQHqz90XmM7ES1g+yPEQr+y-pCwz2EFfUff6Ew@mail.gmail.com>
Tom> To figure this out, we'd probably need a test case.  Maybe comparing
the
Tom> results between the two scenarios with "set debug symtab-create on"
Tom> would indicate something.

I have a reproducer, but it is somewhat tricky to build. It is
also not my program, so I'm not sure if I can simplify it.

The program is KiCad (https://gitlab.com/kicad/code/kicad.git).
Build dependencies for Ubuntu can be obtained from the packaging
files: https://dev-docs.kicad.org/en/build/linux/#_dependencies.

Once KiCad is built I run the following commands in gdb:

(gdb) file /home/nd/w/CLionProjects/kicad/build/debug/pcbnew/pcbnew
(gdb) b /home/nd/w/CLionProjects/kicad/pcbnew/footprint_edit_frame.cpp:114
(gdb) run

When KiCad's window is opened I invoke the menu item "Tools >
Footprint Editor" to hit the created breakpoint, and then run:

(gdb) interpreter-exec mi2 "-var-create var1_this * \"this\""
(gdb) interpreter-exec mi2 "-var-list-children --all-values \"var1_this\"
-1 -1"
(gdb) interpreter-exec mi2 "-var-list-children --all-values
\"var1_this.private\" 0 8"

The last command takes most of the time. The .gdbinit only sets up logging:

set trace-commands on
set logging overwrite on
set logging debugredirect on
set logging enabled on
set debug symtab-create 1

I've captured the logs, they are quite big, the zip (15Mb) is here:
https://drive.google.com/file/d/1Cz-HOOqus6xwf_eIjBqcs727w8aOqco4/view?usp=sharing
.

There are 3 files in archive:

- gdb.txt.index-cache-disabled - the slow run with index-cache
  disabled

- gdb.txt.index-cache-enabled-run1 - the first run with
  index-cache enabled - it is still slow

- gdb.txt.index-cache-enabled-run2 - the second run with
  index-cache enabled - fast
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.