If you try to place a breakpoint on an empty line or on a line with only an end tag then the oXygen plugin displays the error "Breakpoints can only be created on a line containing the end of a start tag".
Sorry, I guess I wasn't clear. Take this template
<xsl:variable name="blah" select="foo"/>
Oxygen 9 will happily install a breakpoint on the xsl:variable. However, when running the stylesheet with saxon 8, lazy execution of variables means that the variable line is never the active instruction, so the execution goes straight past the breakpoint without stopping.
I think that you should avoid letting a breakpoint be set here in the first place, since it won't work properly. However, I realise that there are complexities with this because it will vary depending on the processor that is currently selected. Maybe just "grey out" (show as inactive) breakpoints that aren't going to work given the active processor.
What do you mean by the content of the Breakpoints view is changed or lost when the transformation is exited?
Sorry, I definitely wasn't clear here. I did not mean "exit the transformation", I meant "exit the xslt debugger perspective" and/or "exit eclipse". Also I was incorrect about breakpoints not being persistent, it looks like they are.
So, what I had actually noticed was that if I switch out of the xslt debugger and back again, my XWatch expressions have disappeared and I have to enter them again. The same is true for my break conditions when I exit eclipse.
I think that oxygen should maintain both of these things persistently, just like the java debugger does (sorry, you can tell where I spend a lot of my time
As an aside, the java debugger integrates the break conditions with breakpoints, so that you can have either an unconditional breakpoint, or a conditional one. I think that this makes more sense becuase nearly everything you could write in the condition (eg variables, relative node-tests) are meaningless everywhere other than the template in which they're defined or used.