Hi,
I am trying to perform some
source level JTAG debugging with the Tmote sky, however I have
encountered a few problems. I can set breakpoints in the code, and
when these are hit I can use all the features of gdb, i.e. output stack
traces, print variables, etc. Continuing from a set breakpoint also
works.
The problem I am having is
when I manually break execution (using Ctrl-C). At this point, gdb
seems to loose track of where it is, and a stack trace will be blank.
In addition, continuing from a manual break causes the application to
completely restart.
I get the same behaviour both
with a parallel and USB port FET (both Olimex devices).
Has anyone else come across
this issue or can anyone give me any hints? The code is being compiled
with debugging symbols and compiler optimisations disabled. I have
included the output from a sample GDB session below where I broke the
program execution with Ctrl-C. The fact that gdb outputs a line
containing "in ?? ()" at startup looks a bit wrong to me.
[EMAIL PROTECTED] telosb]$
msp430-gdb main.exe
GNU gdb 5.1.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=msp430"...
0x0000ffff in ?? ()
(gdb) monitor erase
Erasing target flash - all... Erased OK
(gdb) load main.exe
Loading section .text, size 0x62ce lma 0x4800
Loading section .data, size 0x16 lma 0xaace
Loading section .vectors, size 0x20 lma 0xffe0
Start address 0x4800, load size 25348
Transfer rate: 101392 bits/sec, 38 bytes/write.
(gdb) c
Continuing.
Program received signal
SIGINT, Interrupt.
0x00004000 in ?? ()
(gdb) info stack
#0 0x00004000 in ?? ()
#1 0x00004000 in ?? ()
#2 0x00004000 in ?? ()
#3 0x00004000 in ?? ()
#4 0x00004000 in ?? ()
#5 0x00004000 in ?? ()
#6 0x00004000 in ?? ()
#7 0x00004000 in ?? ()
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb)
Thanks,
Andrew