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