This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Nick, Thank you very much for your reply. Well, when --disassemble-zeroes switch is used, problem in text section is solved but if data section is odd sized, It will still gives " Address 0x2 is out of bounds." message. Because disassembler will try to disassemble last byte. ---------------------------------------------------- .text lsl r6, r0, #4 lsl r7, r0, #5 lsl r0, r0, #0 .data .byte 0x05 ; any value .byte 0x06 ; any value .byte 0x00 ---------------------------------------------- without "--disassemble-zeroes" switch new.out: file format elf32-littlearm Disassembly of section .text: 00000000 <.text>: 0: 0106 lsl r6, r0, #4 2: 0147 lsl r7, r0, #5 ... Disassembly of section .data: 00000000 <.data>: 0: 0605 lsl r5, r0, #24 ... ------------------------------------------- with "--disassemble-zeroes" switch new.out: file format elf32-littlearm Disassembly of section .text: 00000000 <.text>: 0: 0106 lsl r6, r0, #4 2: 0147 lsl r7, r0, #5 4: 0000 lsl r0, r0, #0 Disassembly of section .data: 00000000 <.data>: 0: 0605 lsl r5, r0, #24 2: Address 0x2 is out of bounds. ------------------------------------------ Thanks once again. Subhash ----- Original Message ----- From: Nick Clifton <nickc@cambridge.redhat.com> To: Subhash Verma <subhash.verma@wipro.com> Cc: <binutils@sourceware.cygnus.com>; binutils <binutils@sources.redhat.com> Sent: Thursday, November 29, 2001 3:26 PM Subject: Re: Disassembly with odd sized section > Hi Subhash, > > > Disassembly of section .text: > > > > 00000000 <.text>: > > 0: 0106 lsl r6, r0, #4 > > 2: 0185 lsl r5, r0, #6 > > 4: Address 0x4 is out of bounds. > > > > Disassembly of section .data: > > > > 00000000 <.data>: > > 0: 0000 lsl r0, r0, #0 > > ... > > > There is a problem in disassembler in handling the trailing byte for > > an odd sized section. If it is non-zero ( as in text section )it > > gives "Address 0x4 is out of bounds" message. > > This is correct. All Thumb instructions are 2 bytes long. Therefore > the third instruction would be at bytes 0x4 and 0x5 in the .text > section, but byte 0x5 does not exist. Hence the instruction at 0x4, > if it existed, would extend into out of bounds memory. > > > and if it zero (like in data section) it simply replaces it with > > "...", instead of displaying it as '0x00'. > > If you want to see the zeroes, just add the --disassemble-zeroes > command line switch. > > > .text > > lsl r6, r0, #4 ;some instruction > > lsl r7, r0, #5 ;some instruction > > lsl r0, r0, #0 > > > 00000000 <.text>: > > 0: 0601 lsl r6, r0, #4 > > 2: 4701 lsl r7, r0, #5 > > ... > > > Here instead of disassembling the last instruction in text section > > it is replaced with "...", because its opcode is "0x0000". > > I think it is a bug in disassembler (objdump.c) for thumb(arm). > > Well it is more of a feature, since it can be overcome with > --disassemble-zeroes, and no real piece of code is going to end with > lsl r0,r0,#0 as its last instruction. > > Cheers > Nick >
Attachment:
InterScan_Disclaimer.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |