This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Artifical dwarf2 debug info


fde = get_fde_for_addr (context->ra - 1);
> >+
> >+ if (fde == NULL)
> >+ fde = guess_generic_fde (context->ra - 1);
> >
> > if (fde == NULL)
> > return;

Just to be clear. The above is the change that I think is wrong.

Instead of this function `guessing' the source of the FDE, the code needs to be re-structured so that the caller always supplies a pre-created FDE.

That way a dwarf2 cfi frame can call the above function with an FDE built from the object files debug info, while an artifical frame can call it with an artifically created FDE. There is no guessing involved.

--

This is part of a long standing problem - it predates dwarf2cf by many years. Instead of using recursion, people modify debug/target dependent frame code so that it attempts to directly handle all cases. Cf all the PC_IN_CALL_DUMMY(frame->next), PC_IN_SIGTRAMP(frame->next) and other tests scattered through out the -tdep.c code; and the calls to get_next_frame() in dwarf2cfi.c.


Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]