I'm using GDB to debug a program for a Cortex M3. In the functions where the program crashes, when I execute line by line (using n
), I eventually get:
(gdb) n
0x0800f498 in ?? ()
now if I backtrace (using bt
) right after I get:
(gdb) bt
#0 0x0800f498 in ?? ()
#1 0xfffffff8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
What exactly do the addresses 0x0800f498
and 0xfffffff8
refer to? How did I arrive there? Would looking at the linker map
file help?
Edit: When I do info registers
this is what I get:
info registers
r0 0x2001ffe8 537001960
r1 0x0 0
r2 0x0 0
r3 0x7ada53e6 2061128678
r4 0x0 0
r5 0x0 0
r6 0x0 0
r7 0x0 0
r8 0x0 0
r9 0x0 0
r10 0x0 0
r11 0x0 0
r12 0x0 0
sp 0x2001ffb0 0x2001ffb0
lr 0xfffffff9 4294967289
pc 0x800f499 0x800f499
fps 0x0 0
cpsr 0x1000023 16777251