The most likely place to look is the module msp430-tdep.c in the gdb distribution. There are apparently two issues. The first is that the code that grovels around in the stack to unwind frames apparently has a bug. I believe it did work in the earlier versions (but I'm not sure). In any case it seems to not correctly identify the call frames. The second problem is that the breakpoint is interpreted as a normal exception. This means that gdb doesn't quite do the right
thing when breakpoints occur.

If you're really going to look at this code, I'd recommend using "target sim" rather than an actual target. This makes it easier to reproduce any odd behavior. I've ported GDB in the past (for the HP/ST LX VLIW processor). GDB is resasonably set up to debug itself. If you start a host gdb session in the directory where the target gdb is built then you can switch back and forth. I've confirmed that the incorrect behavior happens both in the simulation target and the real target (gdb-proxy) so the
problem is not in the proxy.

Geoffrey

Reply via email to