This is the mail archive of the gdb@sourceware.org mailing list for the GDB 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]

Tracing into area without source


Setup is qemu emulating an ARM7TDMI running on my x86.  The ARM cpu
has a ROM starting at zero which I don't have the source for. I've
made a copy of the ROM and inserted it into qemu.  I can dump and
disassemble it without problem.

RAM is at 0x400000. I can load and run my app there using gdb.
But when the app jumps into the ROM gdb refuses to follow.

(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:120
120             bl _rom_data_init+.-base
(gdb) stepi
0x000108d0 in ?? ()
(gdb) stepi
^C

How do I convince gdb to allow me to trace into the ROM image I made in qemu?


(gdb) mem 0 128000 ro 8
(gdb) mem 0x00400000 0x00500000 rw 8
(gdb) file example-udp-sender.elf
Load new symbol table from
"/home/apps/contiki-mc1322x/examples/udp-sender-ipv6/example-udp-sender.elf"?
(y or n) y
Reading symbols from
/home/apps/contiki-mc1322x/examples/udp-sender-ipv6/example-udp-sender.elf...done.
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
base () at ../../cpu/mc1322x/./startup.S:62
62      _start: b       _begin
Current language:  auto; currently asm
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:97
97              msr     CPSR_c, #(FIQ_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:98
98              ldr     sp, =__fiq_stack_top__  /* set the FIQ stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:101
101             msr     CPSR_c, #(IRQ_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:102
102             ldr     sp, =__irq_stack_top__  /* set the IRQ stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:105
105             msr     CPSR_c, #(SVC_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:106
106             ldr     sp, =__svc_stack_top__  /* set the SVC stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:109
109             msr     CPSR_c, #(UND_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:110
110             ldr     sp, =__und_stack_top__  /* set the UND stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:113
113             msr     CPSR_c, #(ABT_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:114
114             ldr     sp, =__abt_stack_top__  /* set the ABT stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:117
117             msr     CPSR_c, #(SYS_MODE | IRQ_DISABLE | FIQ_DISABLE)
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:118
118             ldr     sp, =__sys_stack_top__  /* set the SYS stack pointer */
(gdb) stepi
_begin () at ../../cpu/mc1322x/./startup.S:120
120             bl _rom_data_init+.-base
(gdb) stepi
0x000108d0 in ?? ()
(gdb) stepi
^C
Program received signal SIGINT, Interrupt.
0x000108d0 in ?? ()
(gdb) disassemble 0x000108d0 0x00010900
Dump of assembler code from 0x108d0 to 0x10900:
0x000108d0:     b       0x10a5c
0x000108d4:     stmdavs r0, {r0, r1, r3, r4, r11, lr}
0x000108d8:     andeq   r4, r0, r0, ror r7
0x000108dc:     strdlt  r11, [r5], r0
0x000108e0:     andeq   r0, sp, r7
0x000108e4:     ldrbcs  r11, [r5, -r0, lsl #9]!
0x000108e8:     blx     0xfeecd8ae
0x000108ec:     adcmi   r11, pc, #32768 ; 0x8000
0x000108f0:     eorseq  sp, r8, r1, lsl #6
0x000108f4:     strcs   lr, [r1], #-34
0x000108f8:     ldclne  11, cr1, [r6], #-952
0x000108fc:     ldmdami r1, {r1, r3, r5, r6, r9, r10, lr}
End of assembler dump.
(gdb) disassemble 0x10a5c 0x10b00
Dump of assembler code from 0x10a5c to 0x10b00:
0x00010a5c:     push    {r0, r4, r5, lr}
0x00010a60:     ldr     r4, [pc, #44]   ; 0x10a94
0x00010a64:     ldr     r5, [pc, #44]   ; 0x10a98
0x00010a68:     cmp     r4, r5
0x00010a6c:     beq     0x10a8c
0x00010a70:     ldm     r4, {r0, r1, r2}
0x00010a74:     ldr     r3, [r4, #12]
0x00010a78:     add     r4, r4, #16     ; 0x10
0x00010a7c:     mov     lr, pc
0x00010a80:     bx      r3
0x00010a84:     cmp     r4, r5
0x00010a88:     bne     0x10a70
0x00010a8c:     pop     {r3, r4, r5, lr}
0x00010a90:     bx      lr
0x00010a94:     andeq   r1, r1, r8, lsl #15
0x00010a98:     andeq   r1, r1, r8, lsr #15
0x00010a9c:     add     r2, r2, r1
0x00010aa0:     cmp     r1, r2
0x00010aa4:     bne     0x10ab4
0x00010aa8:     bx      lr
0x00010aac:     cmp     r1, r2
0x00010ab0:     bxeq    lr
0x00010ab4:     ldrsb   r3, [r1], #1
0x00010ab8:     mov     r12, #0 ; 0x0
0x00010abc:     b       0x10ac4
0x00010ac0:     strb    r12, [r0], #1
0x00010ac4:     cmp     r3, #0  ; 0x0
0x00010ac8:     beq     0x10aac
0x00010acc:     ldrbmi  r12, [r1], #1
0x00010ad0:     addmi   r3, r3, #1      ; 0x1
0x00010ad4:     subpl   r3, r3, #1      ; 0x1
0x00010ad8:     b       0x10ac0
0x00010adc:     undefined
0x00010ae0:     mov     r12, r0
0x00010ae4:     tst     r1, #1  ; 0x1
0x00010ae8:     strbne  r0, [r1], #1
0x00010aec:     lsrne   r0, r0, #8
0x00010af0:     strh    r0, [r1]
0x00010af4:     lsr     r0, r0, #16
0x00010af8:     strbne  r0, [r1, #2]
---Type <return> to continue, or q <return> to quit---

-- 
Jon Smirl
jonsmirl@gmail.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]