Re: [RFA] Add parse_dwarf2_calling_convention functionality

Corinna Vinschen
2004-12-14T15:53:30Z

Hi,

On Oct 25 19:02, Andrew Cagney wrote:
> Elena Zannoni wrote:
> >Corinna Vinschen writes:
> > > * gdbarch.sh (parse_dwarf2_calling_convention): New method.
> > > * gdbarch.h, gdbarch.c: Re-generate.
> > > * arch-utils.c (default_parse_dwarf2_calling_convention): New
> > function.
> > > * arch-utils.h (default_parse_dwarf2_calling_convention): New extern
> > > declaration.
> > > * dwarf2read.c (read_subroutine_type): Evaluate
> > > DW_AT_calling_convention attribute and call
> > > gdbarch_parse_dwarf2_calling_convention appropriately.
> >
> >
> >The dwarf2read.c part is approved if the rest gets approved.
>
> One mod, rather than adding this:
>
> >+# Evaluate DW_AT_calling_convention value and convert in a
> >calling_convention
> >+# value in the functions main type.
> >+m::void:parse_dwarf2_calling_convention:int has_attr, unsigned long
> >attr_val, unsigned char gcc_compiled, struct type *func_type:has_attr,
> >attr_val, gcc_compiled,
> >func_type:0:default_parse_dwarf2_calling_convention::0
>
> to the architecture vector, take a look at:
>
> 13.2 Per-architecture module data
> http://sources.redhat.com/gdb/current/onlinedocs/gdbint_13.html#SEC114
>
> it lets dwarf2 locally manage that method while still being
> per-architecture.

I'm scratching my head how that's supposed to work. There's no
architecture specific data, just an architecture specific function
which has to be called for each function in the object file. Are
you suggesting that the architecture (SH for now) stores a function
pointer in per-arch module data created by _initialize_dwarf2_read?
Then read_subroutine_type() would have to retrieve the function pointer
from the per-arch module data to be able to call it for the function
currently evaluated. That sounds like overkill. Or I missed something
essential. I'd be happy about some more information.

Thanks,
Corinna