Re: Fwd: Backtrace stopped: frame did not save the PC

sravan megan <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAESop7U3jKLDqZVE=2YoUjL2r+di-RA-0pgHVUmN1AM4Ld+uEw@mail.gmail.com>
Hello Mike,

  Thanks for the reply.

On Tue, Aug 20, 2013 at 5:03 AM, Michael Eager <[email protected]> wrote:
> On 08/19/13 00:15, sravan megan wrote:
>>
>> Hi All,
>>
>> I am working on Microblaze GDB (7.4.50) version.
>>
>> GDB is throwing "frame did not save the PC" error if the program is not
>> compiled with "-g"
>> (debugging info)
>
>
>
>> I know that without debugging information GDB will not give complete trace
>> information but with
>> out debugging info GDB should atleast give the function names.
>
>
> As far as I can see from your example, gdb did print the function
> names.
>
> You don't indicate what options were used when you compile.
> When you compile without optimization, MicroBlaze stores
> the previous frame pointer in the stack frame.  With -O1,
> MicroBlaze does not save the frame pointer in the stack frame.

    I have used the XSDK to build my application. Below are the compiler flags

Building file: ../src/helloworld.c
Invoking: MicroBlaze gcc compiler
mb-gcc -Wall -O0 -c -fmessage-length=0
-I../../hello_bsp/microblaze_1/include -mlittle-endian
-mxl-pattern-compare -mno-xl-soft-div -mcpu=v8.00.b -mno-xl-soft-mul
-Wl,--no-relax -ffunction-sections -fdata-sections -MMD -MP
-MF"src/helloworld.d" -MT"src/helloworld.d" -o "src/helloworld.o"
"../src/helloworld.c"
Finished building: ../src/helloworld.c

Building file: ../src/platform.c
Invoking: MicroBlaze gcc compiler
mb-gcc -Wall -O0 -c -fmessage-length=0
-I../../hello_bsp/microblaze_1/include -mlittle-endian
-mxl-pattern-compare -mno-xl-soft-div -mcpu=v8.00.b -mno-xl-soft-mul
-Wl,--no-relax -ffunction-sections -fdata-sections -MMD -MP
-MF"src/platform.d" -MT"src/platform.d" -o "src/platform.o"
"../src/platform.c"
Finished building: ../src/platform.c

Building target: hello.elf
Invoking: MicroBlaze gcc linker
mb-gcc -Wl,-T -Wl,../src/lscript.ld -L../../hello_bsp/microblaze_1/lib
-mlittle-endian -mxl-pattern-compare -mno-xl-soft-div -mcpu=v8.00.b
-mno-xl-soft-mul -Wl,--no-relax -Wl,--gc-sections -o "hello.elf"
./src/helloworld.o ./src/platform.o
-Wl,--start-group,-lxil,-lgcc,-lc,--end-group
Finished building target: hello.elf

I have set the debugging level to none in xsdk i.e no "-g" option in
compilation.
>
>
>> Can anyone please let me know where to look in to GDB code so that GDBcan
>> store information of
>> main frame details and execute backtrace correctly.
>
>
> You can take a look at microblaze_analyze_prologue() in
> gdb/microblaze-tdep.c.
>
> The error is issued in get_prev_frame_1() in frame.c.
>

I looked at them they seem to be good but I have doubt on
"microblaze_frame_prev_register" function.
This function seems to always return r15/r1 registers as regnum for
"trad_frame_get_prev_register" function for any frame in my case. Is
this behaviour correct??

> --
> Michael Eager    [email protected]
> 1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

Regards,
Sravan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.