delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
From: | "AndreA <andrea.galbusera"<Ihatespammers AT delorie DOT com>@teamware.it |
Subject: | DJGPP linux cross-compiler + GDB problem |
Newsgroups: | comp.os.msdos.djgpp |
Lines: | 64 |
Organization: | TW |
User-Agent: | KNode/0.7.2 |
MIME-Version: | 1.0 |
Message-ID: | <A5dAc.342543$hc5.14767707@news3.tin.it> |
Date: | Thu, 17 Jun 2004 09:01:20 GMT |
NNTP-Posting-Host: | 80.183.241.188 |
X-Complaints-To: | newsmaster AT tin DOT it |
X-Trace: | news3.tin.it 1087462880 80.183.241.188 (Thu, 17 Jun 2004 11:01:20 MET DST) |
NNTP-Posting-Date: | Thu, 17 Jun 2004 11:01:20 MET DST |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Hi all, I have a problem debugging a DJGPP project with GDB. This seems to be related to differences between native and Linux cross toolchain. If I cross-build I get this error when loading the executable in GDB, while everything runs fine if I use the native toolchain. The code is about 1Mb > (gdb) file snmpd.exe > Reading symbols from snmpd.exe...Dwarf Error: bad offset (0x69cb0 in compilation unit header (offset 0x0 + 6) It seems that gdb expect .debug_* sections VMA and LMA addresses to be both 0 to load the executable. ld on Windows seems to set them to 0 while ld on linux sets them to different values making GDB complain. I tryed to solve with a .ld script like the following: > SECTIONS > { > /* DWARF 1 */ > .debug 0 : { *(.debug) } > .line 0 : { *(.line) } > /* GNU DWARF 1 extensions */ > .debug_srcinfo 0 : { *(.debug_srcinfo) } > .debug_sfnames 0 : { *(.debug_sfnames) } > /* DWARF 1.1 and DWARF 2 */ > .debug_aranges 0 : { *(.debug_aranges) } > .debug_pubnames 0 : { *(.debug_pubnames) } > /* DWARF 2 */ > .debug_info 0 : { *(.debug_info) } > .debug_abbrev 0 : { *(.debug_abbrev) } > .debug_line 0 : { *(.debug_line) } > .debug_frame 0 : { *(.debug_frame) } > .debug_str 0 : { *(.debug_str) } > .debug_loc 0 : { *(.debug_loc) } > .debug_macinfo 0 : { *(.debug_macinfo) } > /* SGI/MIPS DWARF 2 extensions */ > .debug_weaknames 0 : { *(.debug_weaknames) } > .debug_funcnames 0 : { *(.debug_funcnames) } > .debug_typenames 0 : { *(.debug_typenames) } > .debug_varnames 0 : { *(.debug_varnames) } > } It appear to work, but I donĀ“t know why there is such a difference between the environments and if I have to worry about it with respect to debug features. Follow details on toolchains versions used. - On the cross-devel platform I use: gcc 3.4 binutils 2.15 - On the Windows XP environment (MSDOS Prompt) gcc 3.3.4 binutils 2.15 gdb 5.3 Has anybody out there an answer to this? I did not find docs on this topic online. T.I.A Andrea
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |