Matthew Flatt <mfl...@cs.utah.edu> writes:

> Since the build log says "illegal instruction", what instruction is it
> trying to execute? Since there's so much variation in supported ARM
> instructions, maybe Racket's JIT is trying to use one not supported by
> the machine. Or maybe execution has just jumped to a bad place, such as
> the middle of an instruction.
>
> In gdb, you should be able to use `disassemble` in the vicinity of the
> address where Racket crashes (like 0xb6ea3254), but you may need to use
>

I tried both modes, at least to my inexpert eye they look the same.

The hardware claims to be arm v7 (Freescale i.MX53). 

(gdb)  set arm fallback-mode arm
(gdb) disassemble
Dump of assembler code for function malloc_stats:
   0xb6ea324c <+0>:     ldr     r1, [pc, #328]  ; (0xb6ea3398 
<malloc_stats+332>)
   0xb6ea324e <+2>:     ldr     r2, [pc, #332]  ; (0xb6ea339c 
<malloc_stats+336>)
   0xb6ea3250 <+4>:     add     r1, pc
   0xb6ea3252 <+6>:     ldr     r3, [pc, #332]  ; (0xb6ea33a0 
<malloc_stats+340>)
=> 0xb6ea3254 <+8>:     stmdb   sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
   0xb6ea3258 <+12>:    add     r3, pc
   0xb6ea325a <+14>:    ldr     r2, [r1, r2]
   0xb6ea325c <+16>:    sub     sp, #60 ; 0x3c
   0xb6ea325e <+18>:    ldr     r5, [pc, #324]  ; (0xb6ea33a4 
<malloc_stats+344>)
   0xb6ea3260 <+20>:    ldr     r2, [r2, #0]
   0xb6ea3262 <+22>:    str     r2, [sp, #52]   ; 0x34
   0xb6ea3264 <+24>:    mov.w   r2, #0
   0xb6ea3268 <+28>:    ldr     r2, [r3, #64]   ; 0x40
   0xb6ea326a <+30>:    add     r5, pc
   0xb6ea326c <+32>:    ldr     r7, [r3, #36]   ; 0x24
   0xb6ea326e <+34>:    cmp     r2, #0
   0xb6ea3270 <+36>:    blt.w   0xb6ea338c <malloc_stats+320>
   0xb6ea3274 <+40>:    ldr     r3, [pc, #304]  ; (0xb6ea33a8 
<malloc_stats+348>)
   0xb6ea3276 <+42>:    add.w   r9, sp, #12
   0xb6ea327a <+46>:    ldr     r4, [pc, #304]  ; (0xb6ea33ac 
<malloc_stats+352>)
   0xb6ea327c <+48>:    movs    r6, #0
   0xb6ea327e <+50>:    Cannot access memory at address 0xb6ea327e
(gdb)  set arm fallback-mode thumb
(gdb) disassemble
Dump of assembler code for function malloc_stats:
   0xb6ea324c <+0>:     ldr     r1, [pc, #328]  ; (0xb6ea3398 
<malloc_stats+332>)
   0xb6ea324e <+2>:     ldr     r2, [pc, #332]  ; (0xb6ea339c 
<malloc_stats+336>)
   0xb6ea3250 <+4>:     add     r1, pc
   0xb6ea3252 <+6>:     ldr     r3, [pc, #332]  ; (0xb6ea33a0 
<malloc_stats+340>)
=> 0xb6ea3254 <+8>:     stmdb   sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
   0xb6ea3258 <+12>:    add     r3, pc
   0xb6ea325a <+14>:    ldr     r2, [r1, r2]
   0xb6ea325c <+16>:    sub     sp, #60 ; 0x3c
   0xb6ea325e <+18>:    ldr     r5, [pc, #324]  ; (0xb6ea33a4 
<malloc_stats+344>)
   0xb6ea3260 <+20>:    ldr     r2, [r2, #0]
   0xb6ea3262 <+22>:    str     r2, [sp, #52]   ; 0x34
   0xb6ea3264 <+24>:    mov.w   r2, #0
   0xb6ea3268 <+28>:    ldr     r2, [r3, #64]   ; 0x40
   0xb6ea326a <+30>:    add     r5, pc
   0xb6ea326c <+32>:    ldr     r7, [r3, #36]   ; 0x24
   0xb6ea326e <+34>:    cmp     r2, #0
   0xb6ea3270 <+36>:    blt.w   0xb6ea338c <malloc_stats+320>
   0xb6ea3274 <+40>:    ldr     r3, [pc, #304]  ; (0xb6ea33a8 
<malloc_stats+348>)
   0xb6ea3276 <+42>:    add.w   r9, sp, #12
   0xb6ea327a <+46>:    ldr     r4, [pc, #304]  ; (0xb6ea33ac 
<malloc_stats+352>)
   0xb6ea327c <+48>:    movs    r6, #0
   0xb6ea327e <+50>:    Cannot access memory at address 0xb6ea327e
(gdb) 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/87r1zyxo11.fsf%40tethera.net.

Reply via email to