This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Wrong source location in symbols
- From: Fabian Cenedese <Cenedese at indel dot ch>
- To: gdb at sourceware dot org
- Date: Mon, 11 Dec 2006 11:14:52 +0100
- Subject: Wrong source location in symbols
Hi
I seem to have a problem with the code loaction of symbols.
gdb 6.5, gcc 4.1.0, compiled for ppc-eabi, running on WinXP
Here's a snippet from the generated map file:
.text 0x0000f6f4 0x41c N:/Indel-PPC/Tests/gccext3/bin41/CTaskTemplateClass.603
0x0000fa28 _TASK_CLASS_NAME_::_TASK_CLASS_NAME_(char*)
...(snip)...
.text 0x00097bfc 0x14 N:/IMD/Lib41/libnosys.a(write.o)
0x00097bfc write
.ctors 0x00097c10 0x98
...(snip)...
.dtors 0x00097ca8 0x10
...(snip)...
.got
0x00097cb8 PROVIDE (__STARTUP_BEGIN, .)
.startup 0x00097cb8 0x12320
*(.startup)
.startup 0x00097cb8 0x6c N:/Indel-PPC/Tests/gccext3/bin41/CTaskTemplateClass.603
0x00097cb8 _INI_1000__TASK_CLASS_NAME_()
But when I dump the symbol tables I get this:
[1001] T 0xeb20 _ZN17_TASK_CLASS_NAME_6ActionEv section .text _TASK_CLASS_NAME_::Action() write.c
[1002] T 0xebdc _ZN17_TASK_CLASS_NAME_D0Ev section .text _TASK_CLASS_NAME_::~_TASK_CLASS_NAME_() write.c
...(snip)...
[3549] B 0x98d44 Reg_INI_0101_INOS_TGT section .bss write.c
[3550] B 0x98d50 Reg_INI_0145_INOS_TGT section .bss write.c
[3551] B 0x98d5c Reg_INI_0205_INOS_TGT section .bss write.c
[3552] B 0x98d68 Reg_INI_0160_INOS_TGT section .bss write.c
...(snip)...
[3567] T 0x99bec _Z27_INI_1000__TASK_CLASS_NAME_v section .startup _INI_1000__TASK_CLASS_NAME_() write.c
[3575] T 0x9a530 _Z18_INI_0002_INCO_NETv section .startup _INI_0002_INCO_NET() write.c
[3576] T 0x9a5fc _Z18_INI_0150_INCO_NETv section .startup _INI_0150_INCO_NET() write.c
[3577] T 0x9a744 _Z27_INI_0002_CSAMDeviceSioLoadv section .startup _INI_0002_CSAMDeviceSioLoad() write.c
No matter where they are defined, the symbols get as location the (wrong)
file write.c, so the last valid file from the .text section. I tried with both
-gstabs or -gdwarf-2, but that didn't change anything. I also tried with
forward and back slashes in the paths of the compiled files, no luck.
Where's the code in gdb that would set these locations?
Thanks
bye Fabi