[ECOS] gdb disassemble shift about 52 bytes in arm platform

Frank Lin franklin373@gmail.com
Mon Apr 28 15:34:00 GMT 2008


----- Original Message ----- 
From: "Andrew Lunn" <andrew@lunn.ch>
To: "Frank Lin" <franklin373@gmail.com>
Cc: <ecos-discuss@ecos.sourceware.org>
Sent: Monday, April 28, 2008 4:49 PM
Subject: Re: [ECOS] gdb disassemble shift about 52 bytes in arm platform


> On Mon, Apr 28, 2008 at 03:33:51PM +0800, Frank Lin wrote:
>> My Global compiler flags is: -mcpu=arm7tdmi -mno-short-load-words -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O0 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority
>> My Global linker flags is: -mcpu=arm7tdmi -mno-short-load-words -Wl,--gc-sections -Wl,-static -g -nostdlib
>> 
>> for example:
>> 
>> I disassmble do_mfill function in mfill.c using elf-arm-insight in mixed mode(using elf-arm-gdb is same result, but elf-arm-insight more clearly), it display(please pay attention I mark with '<---------'):
>> 
> 
> I've not had problems before. Are you sure everything is syncronised?

Yes, everything is syncronised.


> What is on your hardware is the same as the object file on your host
> and that the objects are from your current sources?

I use S3C44B0X CPU, the objects is from current souces.

> 
> Try arm-elf-objdump -D myprog.elf | less
> 
> and see if there is the same problem. This removes the target from the
> picture.

I use arm-elf-objdump -D redboot.elf, the result is correct, for example:

00003108 <do_mfill>:
    3108: e1a0c00d  mov ip, sp
    310c: e92dd800  stmdb sp!, {fp, ip, lr, pc}
    3110: e24cb004  sub fp, ip, #4 ; 0x4
    3114: e24dd0cc  sub sp, sp, #204 ; 0xcc
    3118: e50b0010  str r0, [fp, -#16]
    311c: e50b1014  str r1, [fp, -#20]
    3120: e24b20a4  sub r2, fp, #164 ; 0xa4
    3124: e24b30a8  sub r3, fp, #168 ; 0xa8
    3128: e58d3000  str r3, [sp]
    312c: e24b30b4  sub r3, fp, #180 ; 0xb4
    3130: e58d3004  str r3, [sp, #4]
    3134: e59f3244  ldr r3, [pc, #580] ; 3380 <do_mfill+0x278>
    3138: e58d3008  str r3, [sp, #8]
    313c: e1a00002  mov r0, r2
    3140: e3a01062  mov r1, #98 ; 0x62
    3144: e3a02001  mov r2, #1 ; 0x1
    3148: e3a03000  mov r3, #0 ; 0x0
    314c: eb002bf5  bl e128 <init_opts>
    3150: e24b30a4  sub r3, fp, #164 ; 0xa4
    3154: e2832018  add r2, r3, #24 ; 0x18
    3158: e24b30b0  sub r3, fp, #176 ; 0xb0
    315c: e58d3000  str r3, [sp]
    3160: e24b30b8  sub r3, fp, #184 ; 0xb8
    3164: e58d3004  str r3, [sp, #4]
    3168: e59f3214  ldr r3, [pc, #532] ; 3384 <do_mfill+0x27c>
    316c: e58d3008  str r3, [sp, #8]
    3170: e1a00002  mov r0, r2
    3174: e3a0106c  mov r1, #108 ; 0x6c
    3178: e3a02001  mov r2, #1 ; 0x1
    317c: e3a03000  mov r3, #0 ; 0x0
    3180: eb002be8  bl e128 <init_opts>
    3184: e24b30a4  sub r3, fp, #164 ; 0xa4
    3188: e2832030  add r2, r3, #48 ; 0x30
    318c: e24b30ac  sub r3, fp, #172 ; 0xac
    3190: e58d3000  str r3, [sp]
    3194: e24b30bc  sub r3, fp, #188 ; 0xbc
    3198: e58d3004  str r3, [sp, #4]
    319c: e59f31e4  ldr r3, [pc, #484] ; 3388 <do_mfill+0x280>
    31a0: e58d3008  str r3, [sp, #8]
    31a4: e1a00002  mov r0, r2
    31a8: e3a01070  mov r1, #112 ; 0x70
    31ac: e3a02001  mov r2, #1 ; 0x1
    31b0: e3a03000  mov r3, #0 ; 0x0
    31b4: eb002bdb  bl e128 <init_opts>
    31b8: e24b30a4  sub r3, fp, #164 ; 0xa4
    31bc: e2832048  add r2, r3, #72 ; 0x48
    31c0: e24b30c0  sub r3, fp, #192 ; 0xc0
    31c4: e58d3000  str r3, [sp]
    31c8: e3a03000  mov r3, #0 ; 0x0
    31cc: e58d3004  str r3, [sp, #4]
    31d0: e59f31b4  ldr r3, [pc, #436] ; 338c <do_mfill+0x284>
    31d4: e58d3008  str r3, [sp, #8]
    31d8: e1a00002  mov r0, r2
    31dc: e3a01034  mov r1, #52 ; 0x34
    31e0: e3a02000  mov r2, #0 ; 0x0
    31e4: e3a03002  mov r3, #2 ; 0x2
    31e8: eb002bce  bl e128 <init_opts>
    31ec: e24b30a4  sub r3, fp, #164 ; 0xa4
    31f0: e2832060  add r2, r3, #96 ; 0x60
    31f4: e24b30c4  sub r3, fp, #196 ; 0xc4
    31f8: e58d3000  str r3, [sp]
    31fc: e3a03000  mov r3, #0 ; 0x0
    3200: e58d3004  str r3, [sp, #4]
    3204: e59f3184  ldr r3, [pc, #388] ; 3390 <do_mfill+0x288>
    3208: e58d3008  str r3, [sp, #8]
    320c: e1a00002  mov r0, r2
    3210: e3a01032  mov r1, #50 ; 0x32
    3214: e3a02000  mov r2, #0 ; 0x0
    3218: e3a03002  mov r3, #2 ; 0x2
    321c: eb002bc1  bl e128 <init_opts>
    3220: e24b30a4  sub r3, fp, #164 ; 0xa4
    3224: e2832078  add r2, r3, #120 ; 0x78
    3228: e24b30c8  sub r3, fp, #200 ; 0xc8
    322c: e58d3000  str r3, [sp]
    3230: e3a03000  mov r3, #0 ; 0x0
    3234: e58d3004  str r3, [sp, #4]
    3238: e59f3154  ldr r3, [pc, #340] ; 3394 <do_mfill+0x28c>
    323c: e58d3008  str r3, [sp, #8]
    3240: e1a00002  mov r0, r2
    3244: e3a01031  mov r1, #49 ; 0x31
    3248: e3a02000  mov r2, #0 ; 0x0
    324c: e3a03002  mov r3, #2 ; 0x2
    3250: eb002bb4  bl e128 <init_opts>
    3254: e24bc0a4  sub ip, fp, #164 ; 0xa4
    3258: e3a03006  mov r3, #6 ; 0x6
    325c: e58d3000  str r3, [sp]
    3260: e3a03000  mov r3, #0 ; 0x0
    3264: e58d3004  str r3, [sp, #4]
    3268: e3a03000  mov r3, #0 ; 0x0
    326c: e58d3008  str r3, [sp, #8]
    3270: e59f3120  ldr r3, [pc, #288] ; 3398 <do_mfill+0x290>
    3274: e58d300c  str r3, [sp, #12]
    3278: e51b0010  ldr r0, [fp, -#16]
    327c: e51b1014  ldr r1, [fp, -#20]
    3280: e3a02001  mov r2, #1 ; 0x1
    3284: e1a0300c  mov r3, ip
    3288: eb002bc2  bl e198 <scan_opts>
    328c: e1a03000  mov r3, r0
    3290: e3530000  cmp r3, #0 ; 0x0
    3294: 1a000000  bne 329c <do_mfill+0x194>
    3298: ea000037  b 337c <do_mfill+0x274>
    329c: e51b30b4  ldr r3, [fp, -#180]
    32a0: e3530000  cmp r3, #0 ; 0x0
    32a4: 0a000002  beq 32b4 <do_mfill+0x1ac>
    32a8: e51b30b8  ldr r3, [fp, -#184]
    32ac: e3530000  cmp r3, #0 ; 0x0
    32b0: 1a000002  bne 32c0 <do_mfill+0x1b8>
    32b4: e59f00e0  ldr r0, [pc, #224] ; 339c <do_mfill+0x294>
    32b8: eb00203b  bl b3ac <diag_printf>
    32bc: ea00002e  b 337c <do_mfill+0x274>
    32c0: e51b30bc  ldr r3, [fp, -#188]
    32c4: e3530000  cmp r3, #0 ; 0x0
    32c8: 1a000001  bne 32d4 <do_mfill+0x1cc>
    32cc: e3a03000  mov r3, #0 ; 0x0
    32d0: e50b30ac  str r3, [fp, -#172]
    32d4: e51b30c8  ldr r3, [fp, -#200]
    32d8: e3530000  cmp r3, #0 ; 0x0
    32dc: 0a00000b  beq 3310 <do_mfill+0x208>
    32e0: e51b30b0  ldr r3, [fp, -#176]
    32e4: e2433001  sub r3, r3, #1 ; 0x1
    32e8: e50b30b0  str r3, [fp, -#176]
    32ec: e3530000  cmp r3, #0 ; 0x0
    32f0: aa000000  bge 32f8 <do_mfill+0x1f0>
    32f4: ea000020  b 337c <do_mfill+0x274>
    32f8: e51b30a8  ldr r3, [fp, -#168]
    32fc: e2832001  add r2, r3, #1 ; 0x1
    3300: e50b20a8  str r2, [fp, -#168]
    3304: e55b20ac  ldrb r2, [fp, -#172]
    3308: e5c32000  strb r2, [r3]
    330c: eafffff3  b 32e0 <do_mfill+0x1d8>
    3310: e51b30c4  ldr r3, [fp, -#196]
    3314: e3530000  cmp r3, #0 ; 0x0
    3318: 0a00000b  beq 334c <do_mfill+0x244>
    331c: e51b30b0  ldr r3, [fp, -#176]
    3320: e2433002  sub r3, r3, #2 ; 0x2
    3324: e50b30b0  str r3, [fp, -#176]
    3328: e3530000  cmp r3, #0 ; 0x0
    332c: aa000000  bge 3334 <do_mfill+0x22c>
    3330: ea000011  b 337c <do_mfill+0x274>
    3334: e51b30a8  ldr r3, [fp, -#168]
    3338: e2832002  add r2, r3, #2 ; 0x2
    333c: e50b20a8  str r2, [fp, -#168]
    3340: e15b2abc  ldrh r2, [fp, -#172]
    3344: e1c320b0  strh r2, [r3]
    3348: eafffff3  b 331c <do_mfill+0x214>
    334c: e51b30b0  ldr r3, [fp, -#176]
    3350: e2433004  sub r3, r3, #4 ; 0x4
    3354: e50b30b0  str r3, [fp, -#176]
    3358: e3530000  cmp r3, #0 ; 0x0
    335c: aa000000  bge 3364 <do_mfill+0x25c>
    3360: ea000005  b 337c <do_mfill+0x274>
    3364: e51b30a8  ldr r3, [fp, -#168]
    3368: e2832004  add r2, r3, #4 ; 0x4
    336c: e50b20a8  str r2, [fp, -#168]
    3370: e51b20ac  ldr r2, [fp, -#172]
    3374: e5832000  str r2, [r3]
    3378: eafffff3  b 334c <do_mfill+0x244>
    337c: e91ba800  ldmdb fp, {fp, sp, pc}
    3380: 00019f40  andeq r9, r1, r0, asr #30
    3384: 00019f50  andeq r9, r1, r0, asr pc
    3388: 00019f58  andeq r9, r1, r8, asr pc
    338c: 00019f60  andeq r9, r1, r0, ror #30
    3390: 00019f74  andeq r9, r1, r4, ror pc
    3394: 00019f88  andeq r9, r1, r8, lsl #31
    3398: 00019f9c  muleq r1, ip, pc
    339c: 00019fa0  andeq r9, r1, r0, lsr #31


This image have some small diff with the image in my first mail, for now I compile in my home's computer, but two computer has same error.

My GDB work with JLink GDB Server, and I also let gdb work with ecos's buildin gdb feature throught serial port, result is the same.


> 
>        Andrew


More information about the Ecos-discuss mailing list