This is the mail archive of the gdb@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: dwarf2 unwinding for i386


On Mon, Jun 24, 2002 at 03:39:30PM +0200, Michal Ludvig wrote:

Hi all,
what do you think about adding dwarf2 unwinding (dwarf2cfi.c) to i386 target? On x86-64 we are already using it for some time now and it seems to be quite stable. GCC folks are about to switch omit-frame-pointer on by default for i386 in a near future, but are waiting (as I understand it) for GDB to implement dwarf2 unwinding, so that the resulting code could be debugged. Can we make at least a testing branch with this support? Opinions? MarkK?

If we do this, IMHO, we should support it for all architectures and not
for just x86-64 and i386.  Everyone wins.
The theory is that it should be added here:

/* Using the PC, select a mechanism for unwinding a frame returning
the previous frame. The register unwind function should, on
demand, initialize the ->context object. */

static void
set_unwind_by_pc (CORE_ADDR pc, CORE_ADDR fp,
frame_register_unwind_ftype **unwind)
{
if (!USE_GENERIC_DUMMY_FRAMES)
/* Still need to set this to something. The ``info frame'' code
calls this function to find out where the saved registers are.
Hopefully this is robust enough to stop any core dumps and
return vaguely correct values.. */
*unwind = frame_saved_regs_register_unwind;
else if (PC_IN_CALL_DUMMY (pc, fp, fp))
*unwind = generic_call_dummy_register_unwind;
else
*unwind = frame_saved_regs_register_unwind;
}

The i386 doesn't use generic dummy frames and targets need switch to generic_unwind_get_saved_register though :-(

Andrew




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