Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Tracing into area without source
@ 2009-11-15 19:04 Jon Smirl
  2009-11-15 19:13 ` Daniel Jacobowitz
  0 siblings, 1 reply; 2+ messages in thread
From: Jon Smirl @ 2009-11-15 19:04 UTC (permalink / raw)
  To: gdb

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Tracing into area without source
  2009-11-15 19:04 Tracing into area without source Jon Smirl
@ 2009-11-15 19:13 ` Daniel Jacobowitz
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Jacobowitz @ 2009-11-15 19:13 UTC (permalink / raw)
  To: Jon Smirl; +Cc: gdb

On Sun, Nov 15, 2009 at 12:28:58PM -0500, Jon Smirl wrote:
> 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 does not care if there is source or not.

It looks more like you're having some trouble with debugging
interrupts, since you've ended up back at the same address:

> (gdb) stepi
> 0x000108d0 in ?? ()
> (gdb) stepi
> ^C
> Program received signal SIGINT, Interrupt.
> 0x000108d0 in ?? ()

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-11-15 17:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-15 19:04 Tracing into area without source Jon Smirl
2009-11-15 19:13 ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox