From b34767fcc8909619e080c7879631df62138efccf Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Thu, 8 Oct 2020 14:06:35 -0300 Subject: [PATCH] [Morello] Add 'C' augmentation character support Handle the Morello 'C' augmentation character. It is not used yet, but it is acknowledged. gdb/ChangeLog: 2020-10-20 Luis Machado * dwarf2/frame.c (struct dwarf2_cie) : New field. (decode_frame_entry_1): Handle the 'C' augmentation character. --- gdb/ChangeLog | 5 +++++ gdb/dwarf2/frame.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a85c361f820..f15af2c4552 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-10-20 Luis Machado + + * dwarf2/frame.c (struct dwarf2_cie) : New field. + (decode_frame_entry_1): Handle the 'C' augmentation character. + 2020-10-20 Luis Machado * aarch64-tdep.c (aarch64_register_has_tag, aarch64_register_tag): New diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index a8748e4d7d3..0b2b8eeb9be 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -96,6 +96,9 @@ struct dwarf2_cie /* True if an 'S' augmentation existed. */ unsigned char signal_frame; + /* True if a 'C' augmentation was specified. */ + unsigned char pure_cap; + /* The version recorded in the CIE. */ unsigned char version; @@ -1943,6 +1946,15 @@ decode_frame_entry_1 (struct gdbarch *gdbarch, augmentation++; } + /* "C" indicates that the default unwind rules for this CIE should be + initialized in accordance with the pure capability procedure call + standard. */ + else if (*augmentation == 'C') + { + cie->pure_cap = 1; + augmentation++; + } + /* Otherwise we have an unknown augmentation. Assume that either there is no augmentation data, or we saw a 'z' prefix. */ else -- 2.47.3