gdb error:Internal error: pc 0x10 in read in psymtab, but no

I am getting errors in my gdb session connected to oocd as follows. Why is this happening ?

arm-elf-gdb

GNU gdb 6.5.0.20060626-cvs

Copyright (C) 2006 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type “show copying” to see the conditions.

There is absolutely no warranty for GDB. Type “show warranty” for details.

This GDB was configured as “–host=i686-pc-linux-gnu --target=arm-elf”.

(gdb) file main.elf

Reading symbols from …/main.elf…done.

(gdb) break main

Breakpoint 1 at 0x240: file main.c, line 69.

(gdb) target remote localhost:3333

Remote debugging using localhost:3333

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

_boot () at crt0.S:44

44 ldr pc,_dabt // data abort - _dabt

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

Current language: auto; currently asm

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

warning: (Internal error: pc 0x10 in read in psymtab, but not in symtab.)

(gdb)

It looks like its a bug with gdb for sections that start at zero, as this post describes.

http://www.cygwin.com/ml/gdb/2006-11/msg00051.html

I am going to post this to the gnu-arm mailing list and see what they have to say.

OK, I fixed the problem.

For those of you that might run into this, here is what I did.

I found this post that explained the problem was gdb throwing out a section that it thought might be bogus.

http://sourceware.org/ml/gdb/2006-06/msg00123.html

Like the author of that post, I commented out the line

if (low == 0 && (bfd_get_file_flags (obfd) & HAS_RELOC) == 0) > return 0;

in file ./gdb/dwarf2read.c (from the Insight directory that I used to build arm-elf-gdb from.

I then did a make clean followed by a make all and make install.

I then ran arm-elf-gdb exactly as before and it works.