OK. Further poking around with what is going on. It looks very much like either gdb or gdb-proxy is getting confused about where the `next' instruction actually is. It may be that in the case of this particular program that the mistaken location of the next instruction just happens to be the first instruction in a timer interrupt routine or it may be that this will always be the case.
Following is log of a gdb and gdb-proxy-debug session that demonstrates the problem. According to the gdb session what is happening is that the program runs to the set breakpoint at line easyweb2.c:205 (0x00001832). Then when a `next' command is given gdb next halts at tcpip.c:915 (0x00002dec). This is unexpected as the next instruction is easyweb2.c:206 (0x0000183a). According to the gdb-proxy-debug session either gdb or gdb-proxy decided to set a breakpoint at (0x2DEC) after the next command. The trace includes the following two lines: debug: msp430: msp430_add_break(0, 0x1832, 0) ... debug: msp430: msp430_add_break(0, 0x2dec, 0) Is it worthwhile mentioning that re-running the program and choosing to step (rather than next) still has gdb halt at tcpip.c:915? Where to from here? aLUNZ does not know how to read the output of msp430-gdbproxy-debug well enough to even identify the culprit. If no-one else knows the answer to this am willing to poke around a bit in the code for gdb (or gdb-proxy) but would seriously need some pointers on where to start with this. Thanks for any help, aLUNZ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *** In gdb set a breakpoint, confirm that it is the only breakpoint *** and then `continue' the program till the breakpoint is reached. (gdb) b easyweb.c:205 Breakpoint 1 at 0x1832: file easyweb.c, line 205. (gdb) i b Num Type Disp Enb Address What 1 breakpoint keep y 0x00001832 in main at easyweb.c:205 (gdb) c Continuing. Program received signal SIGTRAP, Trace/breakpoint trap. main () at easyweb.c:205 205 Delayx100us(50); (gdb) *** this is what appears in the gdb-proxy-debug session as the result of *** the above debug: msp430: msp430_wait_partial() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430: msp430_wait_partial() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 23 bytes: $T0500:3218;04:2019;#0 1... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: z0,1832,2 debug: msp430: msp430_remove_break(0, 0x1832, 0) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 6 bytes: $OK#9a... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK *** Now in gdb, do a list to confirm that the next instruction should *** be easyweb2.c:206, then send a `next' command. Note that we *** actually stop at tcpip.c:915. (gdb) l 200 // time_out = BUTTON_TIME; 201 // while (time_out != 0) 202 // if ((B2) == 0) time_out--; 203 // else time_out = BUTTON_TIME; 204 205 Delayx100us(50); 206 RELAY1_ON; 207 } 208 else 209 { (gdb) n Program received signal SIGTRAP, Trace/breakpoint trap. TCPClockHandler () at tcpip.c:915 915 if (TAIV == 10) // check for timer over flow, reset int.-flag (gdb) *** this is what appears in the gdb-proxy-debug session as the result of *** the above debug: msp430-gdbproxy.exe: packet received: m1774,4 debug: msp430: msp430_read_mem(0x1774, ptr, 0, ptr) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 12 bytes: $3140000a#b9... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: Hg0 debug: msp430: msp430_set_gen_thread() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 4 bytes: $#00... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: g debug: msp430: msp430_read_registers() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 68 bytes: $3218000a0a0000002019c 7df98c966ee00000000820232004200040001000100#00... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: Hc0 debug: msp430: msp430_set_ctrl_thread() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 4 bytes: $#00... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: s debug: msp430: msp430_resume_from_current(step, 0) debug: msp430: msp430_wait_partial() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 23 bytes: $T0500:ec2d;04:2019;#9 1... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: g debug: msp430: msp430_read_registers() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 68 bytes: $ec2dfc09000000002019c 7df98c966ee00000000820232004200040001003200#a4... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: Z0,1832,2 debug: msp430: msp430_add_break(0, 0x1832, 0) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 6 bytes: $OK#9a... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: Z0,2dec,2 debug: msp430: msp430_add_break(0, 0x2dec, 0) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 6 bytes: $OK#9a... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: Hc0 debug: msp430: msp430_set_ctrl_thread() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 4 bytes: $#00... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: c debug: msp430: msp430_resume_from_current(run, 0) debug: msp430: msp430_wait_partial() debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 23 bytes: $T0500:ec2d;04:2019;#9 1... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: z0,2dec,2 debug: msp430: msp430_remove_break(0, 0x2dec, 0) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 6 bytes: $OK#9a... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK debug: msp430-gdbproxy.exe: packet received: z0,1832,2 debug: msp430: msp430_remove_break(0, 0x1832, 0) debug: msp430-gdbproxy.exe: timeout while reading from GDB debug: msp430-gdbproxy.exe: sending packet: 6 bytes: $OK#9a... debug: msp430-gdbproxy.exe: ACK received debug: msp430-gdbproxy.exe: got ACK