Patchwork Add support for DW_TAG_skeleton_unit

login
register
mail settings
Submitter Doug Evans via gdb-patches
Date Feb. 13, 2020, 5:59 a.m.
Message ID <20200213055921.218338-1-tamur@google.com>
Download mbox | patch
Permalink /patch/38017/
State New
Headers show

Comments

Doug Evans via gdb-patches - Feb. 13, 2020, 5:59 a.m.
Process a die with DW_TAG_skeleton_unit tag similar to
DW_TAG_partial_unit and DW_TAG_compile_unit.

gdb/ChangeLog:

	* dwarf2/read.c (process_die): Add DW_TAG_skeleton_unit.
---
 gdb/dwarf2/read.c | 1 +
 1 file changed, 1 insertion(+)
Luis Machado - Feb. 14, 2020, 10:44 a.m.
Thanks.

On 2/13/20 2:59 AM, Ali Tamur via gdb-patches wrote:
> Process a die with DW_TAG_skeleton_unit tag similar to
> DW_TAG_partial_unit and DW_TAG_compile_unit.
> 
> gdb/ChangeLog:
> 
> 	* dwarf2/read.c (process_die): Add DW_TAG_skeleton_unit.
> ---
>   gdb/dwarf2/read.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
> index 7edbd9d7df..bd19a41eef 100644
> --- a/gdb/dwarf2/read.c
> +++ b/gdb/dwarf2/read.c
> @@ -9784,6 +9784,7 @@ process_die (struct die_info *die, struct dwarf2_cu *cu)
>         break;
>       case DW_TAG_compile_unit:
>       case DW_TAG_partial_unit:
> +    case DW_TAG_skeleton_unit:
>         read_file_scope (die, cu);
>         break;
>       case DW_TAG_type_unit:
> 

Should we at least have some small smoke test to check we do support 
reading DW_TAG_skeleton_unit now? Is there something functionally 
different compared to the partial and compile unit?

I'm wondering if mentioning this in the NEWS would also be nice, maybe 
with a reference of when compilers started generating this. What do you 
think?

Patch

diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 7edbd9d7df..bd19a41eef 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -9784,6 +9784,7 @@  process_die (struct die_info *die, struct dwarf2_cu *cu)
       break;
     case DW_TAG_compile_unit:
     case DW_TAG_partial_unit:
+    case DW_TAG_skeleton_unit:
       read_file_scope (die, cu);
       break;
     case DW_TAG_type_unit: