From: Cristiano <cri...@ho...> - 2015-04-22 23:19:55
|
> On 03/31/2015 11:47 PM, Cristiano wrote: > I think I've found the issue. I have a patch that supersedes > 0004-Implement-range-stepping-GDB-7.7.patch > <http://sourceforge.net/p/avarice/patches/29/attachment/0004-Implement-range-stepping-GDB-7.7.patch> > submitted in ticket #29 Range stepping for GDB 7.7+. > > What is the best method to submit my patch? > > Regards, Cristiano Other than a patch amending the one described above I can also submit another patch implementing a new --mask-intr option. These are some comments from my sources: Mask interrupts while (range) stepping, like in AVR Studio. Note that, while running to address, interrupts may be re-enabled, for example by executing a SEI or RETI instruction. In this case the ICE would break in the vectors table so it looks a good idea to always use --ignore-intr in conjunction with this option (or maybe this option should imply --ignore-intr). Even if interrupts are not re-enabled, they can still occur during a GDB step/next command if the ICE breaks due to a normal change of program flow while running to address. When this happens, control temporarily returns to GDB which, in order to complete the step/next command, may for example set a breakpoint and continue. Interrupts will then be serviced, invisible to the user, until the device hits a breakpoint (which might not be the one just set by GDB). The same feature was implemented to single stepping where Avarice knows the instruction that was stepped allowing to "restore" the right value of the global interrupt flag. Regards, Cristiano |