This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.


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

HIWARE Compiler and gdb4.17


Good morning,

I am working on integrating gdb (4.17)  into a simulator project
we have here.  The binaries we want to debug are elf/dwarf2
binaries generated from the HICROSS compiler from HIWAVE 
for the 68HC12.

>From what I see in a binary and comparing what I read in
the Dwarf2 (1.1) spec, they don't implement .debug_line
correctly, it seems they forget to include a directory
table and then put an entry in the filenames table
called HIWARE.  But that's not the problem that's really
bugging me (pun intended).

When I try to set a breakpoint in this binary I get a 
core dump.  Here is the back trace:

core was generated by `./gdb namps4.abs'.
Program terminated with signal 11, Segmentation fault.
find_solib: Can't read pathname for load map: Input/output error

#0  decode_locdesc (blk=0x8ec, objfile=0x815bb90) at dwarf2read.c:5622
#1  0x809383a in read_func_scope (die=0x82128c0, objfile=0x815bb90) at dwarf2read.c:1593
#2  0x8093502 in process_die (die=0x82128c0, objfile=0x815bb90) at dwarf2read.c:1385
#3  0x8093752 in read_file_scope (die=0x8233598, objfile=0x815bb90) at dwarf2read.c:1545
#4  0x80934ef in process_die (die=0x8233598, objfile=0x815bb90) at dwarf2read.c:1381
#5  0x809334f in psymtab_to_symtab_1 (pst=0x819418c) at dwarf2read.c:1326
#6  0x809323d in dwarf2_psymtab_to_symtab (pst=0x819418c) at dwarf2read.c:1267
#7  0x8065647 in psymtab_to_symtab (pst=0x819418c) at symfile.c:309
#8  0x80624f5 in find_pc_sect_symtab (pc=15761744, section=0x815a224) at symtab.c:1182
#9  0x8061d0c in lookup_symbol (name=0xbffff800 "au_Dtmf", block=0x0, namespace=VAR_NAMESPACE, is_a_field_of_this=0x0, symtab=0xbffff848) at symtab.c:693
#10 0x8063982 in decode_line_1 (argptr=0xbffff918, funfirstline=1, default_symtab=0x0, default_line=0, canonical=0xbffff8f8) at symtab.c:2464
#11 0x804ccf0 in break_command_1 (arg=0x8147f45 "", flag=0, from_tty=1) at breakpoint.c:2497
#12 0x804d0d8 in break_command (arg=0x8147f3e "au_Dtmf", from_tty=1) at breakpoint.c:2660
#13 0x80b5c2d in execute_command (p=0x8147f44 "f", from_tty=1) at top.c:1259
#14 0x80b5db6 in command_loop () at top.c:1339
#15 0x80bbac5 in main (argc=2, argv=0xbffffaac) at main.c:554

What seems to be  happening is the decode_locdesc is passed
0x8ec which is the value of the DW_AT_framebuffer in the 
binary.  This is the value of *buf in attrs which is an invalid
memory location.  My question is:

dwarf2_read_abbrevs assigns *blk the value of DW_AT_framebuffer
Shouldn't the blk structure in attrs be populated with the size 
of the entry in the .debug_loc and a char * pointing to it 
-or- am I wrong  and did I read the spec wrong
-or- did the compiler people not implement this correctly
-or- all of the above.


I hope this makes sense and sorry it is so long.

Thanks
Tim
-- 
--------------------------------------------------------
 Simulation Technologies
 Urbana Design Center
 Motorola CSS
 217-384-8549 (Voice)
 217-384-8550 (Fax)
 Tim Combs
 tcombs@urbana.css.mot.com