diff options
author | Tom Tromey <tromey@adacore.com> | 2024-02-14 09:48:34 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-03-19 11:53:21 -0600 |
commit | 1ab9eefe3cea741aba17e11ff28ed48ac3a8293a (patch) | |
tree | 618699fc2561149ed37db02151ad2457c14339cf /gdb/amd64-linux-tdep.c | |
parent | 12d5d5bfd0201711ac3b14d8cd92589919a82b7a (diff) | |
download | gdb-1ab9eefe3cea741aba17e11ff28ed48ac3a8293a.zip gdb-1ab9eefe3cea741aba17e11ff28ed48ac3a8293a.tar.gz gdb-1ab9eefe3cea741aba17e11ff28ed48ac3a8293a.tar.bz2 |
Speed up lookup of "type_specific_data"
I noticed that "info locals" on a certain large Ada program was very
slow. I tracked this down to ada_get_tsd_type expanding nearly every
CU in the program.
This patch fixes the problem by changing this code to use the more
efficient lookup_transparent_type which, unlike the Ada-specific
lookup functions, does not try to find all matching instances.
Note that I first tried fixing this by changing ada_find_any_type, but
this did not work -- I may revisit this approach at some later date.
Also note that the copyright dates on the test files are set that way
because I copied them from another test.
New in v2: the new test failed on the Linaro regression tester.
Looking at the logs, it seems that gdb was picking up a 'value' from
libgnat:
$1 = {<text variable, no debug info>} 0xf7e227a4 <ada.calendar.formatting.value>
This version renames the local variable in an attempt to work around
this.
v3: In v2, while trying to reproduce the problem locally, I
accidentally forgot to commit one of the changes.
Diffstat (limited to 'gdb/amd64-linux-tdep.c')
0 files changed, 0 insertions, 0 deletions