back trace issue
nagaraju.m
nagaraju.m@redpinesignals.com
Sat May 2 09:21:00 GMT 2009
Hi Joel,
I identified the function init_extraframe_info [..]-tdep.c file. I
made frame_info **prev* to point to previous frame and it is displaying
all the frame.....
but it is working only when we start the program from main (i.e
when we break at main)...
suppose if we break at some function XYZ called by main then it
is not working...
Is there any other file where we should provide this *prev*
information......
Thanks,
Nagaraju
Joel Brobecker wrote:
>> 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.
>
>
More information about the Gdb
mailing list