back trace issue

Joel Brobecker brobecker@adacore.com
Wed Apr 29 17:01:00 GMT 2009


> can you please  suggest me where to provide the information  to gdb so  
> that "back trace" works properly.....

Typically, the [...]-tdep file for your architecture will provide
a set of routines that compute the value of a register in the caller's
frame (aka the "previous" frame) given a struct frame_info and and
its associated frame cache. Have a look at some of the -tdep.c files,
and search for "_prev_register", or "_this_id". That should give you
a few leads. I'll also mention that there is a new module in
prologue-value.[hc] that can simplify your job when doing prologue
analysis. I am mentioning it because it's relatively use a still
little used.

Also, if your target supports DWARF, you might also want to see if
the they produce CFI info, in which case a DWARF-based unwinder would
be able to compute your backtrace without requiring the prologue
analyzer. I can't remember the names of the routines but you'll need
to provide a gdbarch routine that converts a dwarf register number
into the associated GDB register number. And then hook in the dwarf
unwinder sniffers: dwarf2_append_unwinders. Again, have a look at
the various -tdep files.

-- 
Joel



More information about the Gdb mailing list