Re: [RFA] sighandler backtrace on x86-64

Elena Zannoni
2002-10-21T12:45:12Z

Michal Ludvig writes:
> Elena Zannoni wrote:
> > Do you need to make the whole structure accessible? would it be enough
> > for your purposes to just add
> > struct context;
> > struct context_reg;
> > to the .h file?
>
> Hmm, I don't think so. I'm afraid I'll have to artifically create the
> content of context_reg for the sighandler caller frame.
>

If you need to access the fields of the structure later on, then it's fine.

> > I don't see any uses of the structures and functions you are
> > exporting.
> > Could you postpone these changes until they are actually used?
>
> Sure I can. Anyway having all structures in .h isn't a bad habit, is it?
>

No, having the whole structure is fine, if it is used. If you just
need it for passing paramters around, w/o accessing the internal
fields, then it's better not exporting the whole struct, to keep the
interface a bit tighter.

> > > +struct context *context_alloc ();
> > > +void context_cpy (struct context *dst, struct context *src);
> > > +struct frame_state *frame_state_alloc ();
> >
> > 'extern' keyword?
>
> It is the default for function declarations, and AFAIK is never used for
> them in gdb's headers.
>

Hmmm, it is customary to use it.

> Can I commit without the struct context movement?
>

Yes, but I have noticed a few non-gnu style problems in x86-64.c:
> + if(fp)
> + fp = read_memory_integer (addr + LINUX_SIGCONTEXT_FP_OFFSET, 8)+8;
> + if(fi->next && fi->next->signal_handler_caller)

Could you fix them before committing?

Thanks
Elena

> Michal Ludvig
> --
> * SuSE CR, s.r.o * mludvig@suse.cz
> * +420 2 9654 5373 * http://www.suse.cz