dwarf2 error(microblaze)
Michael Eager
eager@eagercon.com
Fri Jun 3 17:31:00 GMT 2011
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
More information about the Gcc-help
mailing list