This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC 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 error(microblaze)


On 06/03/2011 12:18 AM, naga raj wrote:

Mike,

Please keep discussion which start on gcc-help on the mailing list. This allows other people to take a look and offer suggestions.

How are you compiling it?

I have copied the steps from my console which are used in executing memory_test project.
Invoking: MicroBlaze gcc compiler
mb-gcc -Wall -O0 -g3 -gdwarf-3 -c -fmessage-length=0
-I../../memory_tests_bsp_0/microblaze_0/include -mxl-barrel-shift
-mxl-pattern-compare -mcpu=v8.20.a -mno-xl-soft-mul -MMD -MP
-MF"src/memorytest.d" -MT"src/memorytest.d" -o"src/memorytest.o"
"../src/memorytest.c"

What is the command line when you have errors? This is a compile which generates Dwarf3, which you say works OK.

The same application is working fine with Dwarf3. I have used
-gdwarf-3 in compilation and now GDN is displaying local variables
correctly.

What are the differences in the Dwarf output between compiling with -g and -gdwarf-3?

dwarf2 debugging information: <1><47a>: Abbrev Number: 13 (DW_TAG_subprogram) <47b> DW_AT_external : 1 <47c> DW_AT_name : (indirect string, offset: 0xf4): main <480> DW_AT_decl_file : 1 <481> DW_AT_decl_line : 59 <482> DW_AT_type :<0x390> <486> DW_AT_low_pc : 0x3dc <48a> DW_AT_high_pc : 0x490 <48e> DW_AT_frame_base : 0x2c (location list) <492> DW_AT_sibling :<0x4a3> <2><496>: Abbrev Number: 14 (DW_TAG_variable) <497> DW_AT_name : i <499> DW_AT_decl_file : 1 <49a> DW_AT_decl_line : 61 <49b> DW_AT_type :<0x390> <49f> DW_AT_location : 2 byte block: 91 78 (DW_OP_fbreg: -8)

This appears to be different from the Dwarf dump from your email of 06/02/2011.

What is the location list at offset 0x2c in the .debug_loc section:

dwarf3 debugging information:
  <1><468>: Abbrev Number: 13 (DW_TAG_subprogram)
     <469>    DW_AT_external    : 1
     <46a>    DW_AT_name        : (indirect string, offset: 0xf4): main
     <46e>    DW_AT_decl_file   : 1
     <46f>    DW_AT_decl_line   : 59
     <470>    DW_AT_type        :<0x388>
     <474>    DW_AT_low_pc      : 0x3dc
     <478>    DW_AT_high_pc     : 0x490
     <47c>    DW_AT_frame_base  : 1 byte block: 9c        (DW_OP_call_frame_cfa)
     <47e>    DW_AT_sibling     :<0x48f>
  <2><482>: Abbrev Number: 14 (DW_TAG_variable)
     <483>    DW_AT_name        : i
     <485>    DW_AT_decl_file   : 1
     <486>    DW_AT_decl_line   : 61
     <487>    DW_AT_type        :<0x388>
     <48b>    DW_AT_location    : 2 byte block: 91 78     (DW_OP_fbreg: -8)


Please go through the gdb dump:

Like long ELF or DWARF dumps, please don't send long debug logs where you single step through dozens of statements displaying a variety of variables.

   Breakpoint 1, main () at ../src/memorytest.c:62
62          i =20;
(gdb) n
63          init_platform();
(gdb) p i

Breakpoint 1, find_location_expression (baton=0x8c5f1ec,
locexpr_length=0xbff405ac, pc=1012)
     at /build/lin/bld_gdb/gdb/gdb/dwarf2loc.c:62

What is the location expression that gdb is trying to parse?


--
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


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