I've noticed that when I run a program with AVRStudio and JTAG step by step, it sometimes makes mistakes, such as reads a value incorrectly or skips an instruction. Often you don't notice the mistake at the time it happens, only afterwards. But sometimes you notice it so clearly that it is obvious, such as when the RET command of a function is skipped and processor continues to execute the next function like nothing... unless you notice it soon enough to set the Program Counter to a value that will get it back on track.
Do you have any hints as to how to minimize the number of unnecessary JTAG mistakes? I've tried by minimizing the communications speeds between JTAG and the computer (50kHz and 9600 bps seem to be the minimums), but I'm not sure if it makes any real difference.
Nowadays I'm using an Olimex JTAG. Earlier I had a genuine Atmel JTAG but I think it made mistakes, too. I understand that the circuit board could also be a source of instability in some cases.
Thanks for any advice you can give.