Two fixes in dwarf-mode.el
authorTom Tromey <tromey@adacore.com>
Wed, 12 Aug 2020 14:41:03 +0000 (08:41 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 12 Aug 2020 14:41:06 +0000 (08:41 -0600)
commitd3511b24ea82409d1769a3b62d0996fe813635d4
tree5a943957b933c562d8792430f962d28ffde7ae9c
parent404ec93359eaaf6a4284613e9c3ac014eea9383b
Two fixes in dwarf-mode.el

This fixes a couple of small problems in dwarf-mode.el.

First, I noticed that for an attribute like:

 <2><136c>: Abbrev Number: 11 (DW_TAG_member)
    <136d>   DW_AT_name        : t

... the "t" would not be font-locked using the function name face.
The problem here is that the regexp assumed the indirect string
format, like:

    <12ac>   DW_AT_name        : (indirect string, offset: 0x1b40): whatever

Here the fix is to adjust the regexp to match both formats.

Second, when following a DIE reference, point could end up on an
attribute instead.  This happens when there is a zero-length attribute
with the same "offset" as the following DIE, like:

    <12c5>   DW_AT_GNU_all_call_sites: 1
 <2><12c5>: Abbrev Number: 5 (DW_TAG_formal_parameter)

Here the fix is to search for the DIE by looking for the depth ("<2>"
in the example) as well.

I've bumped the internal version number to make it simpler to install
this using the Emacs package facility.

binutils/ChangeLog
2020-08-12  Tom Tromey  <tromey@adacore.com>

* dwarf-mode.el (Version): Now 1.6.
(dwarf-die-button-action): Tighten DIE reference regexp.
(dwarf-font-lock-keywords): Update name regexp.
binutils/ChangeLog
binutils/dwarf-mode.el