forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Messed up symbol tables for IRX files...

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS2 Development
View previous topic :: View next topic  
Author Message
tjd



Joined: 27 May 2004
Posts: 23
Location: Austin, TX

PostPosted: Mon Sep 06, 2004 2:03 am    Post subject: Messed up symbol tables for IRX files... Reply with quote

Venerable Toolchain Gods:

Environment: gcc-3.2.2 + binutils 2.14

Simple program on the IOP. After linking, the addresses in the symbol table for everything in the .data section are wrong (they appear to be off by a factor of two-- double relocations?).

Needless to say, this makes debugging hard[er] and gdb gets way lost (imagine innocently using "p *some_ptr" when its address is wrong).

I've attached the program, output of nm and objdump.

Any ideas?

regards-
tjd

[code][broadq@mcv-1-1-1 netdisk]$ ps2-objdump -h -r -s -x foo

foo: file format elf32-littlemips
foo
architecture: mips:3000, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000

Program Header:
0x70000080 off 0x00000074 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x0000001b memsz 0x0000001b flags r--
LOAD off 0x00000090 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000028 memsz 0x00000028 flags rwx
private flags = 0: [no abi set] [mips1] [not 32bitmode]

Sections:
Idx Name Size VMA LMA File off Algn
0 .iopmod 0000001b 00000000 00000000 00000074 2**2
CONTENTS, READONLY
1 .text 00000024 00000000 00000000 00000090 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .data 00000004 00000024 00000024 000000b4 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000000 00000028 00000028 000000b8 2**0
ALLOC
4 .pdr 00000020 00000030 00000030 000000b8 2**2
CONTENTS, RELOC, READONLY
5 .mdebug.eabi32 00000000 00000050 00000050 000000d8 2**0
CONTENTS, READONLY
6 .debug_info 00000059 00000050 00000050 000000d8 2**0
CONTENTS, RELOC, READONLY, DEBUGGING
7 .debug_line 00000032 000000a9 000000a9 00000131 2**0
CONTENTS, RELOC, READONLY, DEBUGGING
8 .debug_frame 00000038 000000dc 000000dc 00000164 2**2
CONTENTS, RELOC, READONLY, DEBUGGING
9 .debug_pubnames 00000025 00000114 00000114 0000019c 2**0
CONTENTS, RELOC, READONLY, DEBUGGING
10 .debug_aranges 00000020 00000139 00000139 000001c1 2**0
CONTENTS, RELOC, READONLY, DEBUGGING
11 .debug_str 0000004d 00000159 00000159 000001e1 2**0
CONTENTS, READONLY, DEBUGGING
12 .comment 00000012 000001a6 000001a6 0000022e 2**0
CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d .iopmod 00000000
00000000 l d .text 00000000
00000048 l d .data 00000000
00000050 l d .bss 00000000
00000060 l d .pdr 00000000
00000000 l d *ABS* 00000000
000000a0 l d .mdebug.eabi32 00000000
000000a0 l d .debug_info 00000000
00000000 l d *ABS* 00000000
00000152 l d .debug_line 00000000
00000000 l d *ABS* 00000000
000001b8 l d .debug_frame 00000000
00000000 l d *ABS* 00000000
00000228 l d .debug_pubnames 00000000
00000000 l d *ABS* 00000000
00000272 l d .debug_aranges 00000000
00000000 l d *ABS* 00000000
000002b2 l d .debug_str 00000000
0000034c l d .comment 00000000
00000000 l d *ABS* 00000000
00000000 l d *ABS* 00000000
00000000 l d *ABS* 00000000
00000000 l df *ABS* 00000000 foo.c
00000048 g O .data 00000004 tjd
00000028 g *ABS* 00000000 _fdata
00000028 g *ABS* 00000000 _etext
00008030 g *ABS* 00000000 _gp
00000030 g *ABS* 00000000 _bss_start
00000000 g *ABS* 00000000 _ftext
00000000 g F .text 00000024 _start
00000008 g *ABS* 00000000 _data_size
00000000 g *ABS* 00000000 _bss_size
00000030 g *ABS* 00000000 _edata
00000030 g *ABS* 00000000 _end
00000028 g *ABS* 00000000 _text_size
00000030 g *ABS* 00000000 _fbss


RELOCATION RECORDS FOR [.pdr]:
OFFSET TYPE VALUE
00000030 R_MIPS_32 _start


RELOCATION RECORDS FOR [.debug_info]:
OFFSET TYPE VALUE
00000056 R_MIPS_32 *ABS*
0000005c R_MIPS_32 .debug_line
00000060 R_MIPS_32 .text
00000064 R_MIPS_32 .text
00000068 R_MIPS_32 .debug_str
0000006c R_MIPS_32 .debug_str
00000070 R_MIPS_32 .debug_str
00000077 R_MIPS_32 .debug_str
00000081 R_MIPS_32 .text
00000085 R_MIPS_32 .text
00000089 R_MIPS_32 .debug_frame
000000a4 R_MIPS_32 tjd


RELOCATION RECORDS FOR [.debug_line]:
OFFSET TYPE VALUE
000000cf R_MIPS_32 .text


RELOCATION RECORDS FOR [.debug_frame]:
OFFSET TYPE VALUE
000000f0 R_MIPS_32 .debug_frame
000000f4 R_MIPS_32 .text


RELOCATION RECORDS FOR [.debug_pubnames]:
OFFSET TYPE VALUE
0000011a R_MIPS_32 .debug_info


RELOCATION RECORDS FOR [.debug_aranges]:
OFFSET TYPE VALUE
0000013f R_MIPS_32 .debug_info
00000149 R_MIPS_32 .text


Contents of section .iopmod:
0000 ffffffff 00000000 30800000 28000000 ........0...(...
0010 08000000 00000000 000000 ...........
Contents of section .text:
0000 f0ffbd27 0000beaf 21f0a003 21100000 ...'....!...!...
0010 21e8c003 0000be8f 1000bd27 0800e003 !..........'....
0020 00000000 ....
Contents of section .data:
0024 ea000000 ....
Contents of section .pdr:
0030 00000000 00000040 f0ffffff 00000000 .......@........
0040 00000000 10000000 1e000000 1f000000 ................
Contents of section .mdebug.eabi32:
Contents of section .debug_info:
0050 55000000 02000000 00000401 a9000000 U...............
0060 24000000 00000000 59010000 5f010000 $.......Y..._...
0070 90010000 0102019f 01000001 073f0000 .............?..
0080 00000000 00240000 00ec0000 00016e03 .....$........n.
0090 696e7400 04050474 6a640001 033f0000 int....tjd...?..
00a0 00010503 24000000 00 ....$....
Contents of section .debug_line:
00a9 2e000000 02001900 00000101 fb0e0a00 ................
00b9 01010101 00000001 00666f6f 2e630000 .........foo.c..
00c9 00000000 05020000 000015b8 48021400 ............H...
00d9 0101 ..
Contents of section .debug_frame:
00dc 0c000000 ffffffff 01000104 400c1d00 ............@...
00ec 24000000 dc000000 00000000 24000000 $...........$...
00fc 04040000 000e1004 04000000 111e7c04 ..............|.
010c 04000000 0c1e1000 ........
Contents of section .debug_pubnames:
0114 21000000 02005000 00005900 00002500 !.....P...Y...%.
0124 00005f73 74617274 00460000 00746a64 .._start.F...tjd
0134 00000000 00 .....
Contents of section .debug_aranges:
0139 1c000000 02005000 00000400 00000000 ......P.........
0149 00000000 24000000 00000000 00000000 ....$...........
Contents of section .debug_str:
0159 666f6f2e 63002f68 6f6d652f 62726f61 foo.c./home/broa
0169 64712f62 75696c64 732f3038 2d32362d dq/builds/08-26-
0179 32303034 2f707332 2d627569 6c642f6e 2004/ps2-build/n
0189 65746469 736b0047 4e552043 20332e32 etdisk.GNU C 3.2
0199 2e32202d 67005f73 74617274 00 .2 -g._start.
Contents of section .comment:
01a6 00474343 3a202847 4e552920 332e322e .GCC: (GNU) 3.2.
01b6 3200 2.
[broadq@mcv-1-1-1 netdisk]$ ps2-nm foo
00000000 A _bss_size
00000030 A _bss_start
00000008 A _data_size
00000030 A _edata
00000030 A _end
00000028 A _etext
00000030 A _fbss
00000028 A _fdata
00000000 A _ftext
00008030 A _gp
00000000 T _start
00000028 A _text_size
00000048 D tjd
[broadq@mcv-1-1-1 netdisk]$ cat foo.c


int tjd = 234;

int
_start()
{
return 0;
}
[broadq@mcv-1-1-1 netdisk]$[/code]
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PS2 Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group