aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-lang.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-03-06 19:47:38 -0700
committerTom Tromey <tom@tromey.com>2022-04-12 09:31:16 -0600
commit696eef26e00a268a2e1346c9d3f1a4db968a6799 (patch)
treec6b6b8dc923e0f7872e690e2c80b919f5b4af061 /gdb/c-lang.c
parent8c83177441405ace08650d9d36f76311009c2ed3 (diff)
downloadgdb-696eef26e00a268a2e1346c9d3f1a4db968a6799.zip
gdb-696eef26e00a268a2e1346c9d3f1a4db968a6799.tar.gz
gdb-696eef26e00a268a2e1346c9d3f1a4db968a6799.tar.bz2
Statically examine abbrev properties
The new DIE scanner works more or less along the lines indicated by the text for the .debug_names section, disregarding the bugs in the specification. While working on this, I noticed that whether a DIE is interesting is a static property of the DIE's abbrev. It also turns out that many abbrevs imply a static size for the DIE data, and additionally that for many abbrevs, the sibling offset is stored at a constant offset from the start of the DIE. This patch changes the abbrev reader to analyze each abbrev and stash the results on the abbrev. These combine to speed up the new indexer. If the "interesting" flag is false, GDB knows to skip the DIE immediately. If the sibling offset is statically known, skipping can be done without reading any attributes; and in some other cases, the DIE can be skipped using simple arithmetic.
Diffstat (limited to 'gdb/c-lang.c')
0 files changed, 0 insertions, 0 deletions