I have this problem too: Windows XP, MPLAB-X 1.70, REAL-ICE, PIC16F1933, MPASM 5.49. It doesn't seem to matter whether I have Software Breakpoints enabled. (File > Project Properties > Conf [default] > REAL Ice > Debug Options > Use Software Breakpoints.)
I can toggle a line breakpoint and it appears as a salmon red bar in the source code. The line number is replaced by a small salmon red box which identifies itself as "Breakpoint" with a mouseover. The problem occurs whether I clean and rebuild or not. It may be resolved if I close and re-open the program. The breakpoint is listed as active (it has a tick) in Window > Debugging > Breakpoints. All looks well until I start the debugger. As soon as the debugger reports "Programming", and after this when it reports "Running", the line (for instance on a btfsc instruction) changes to grey and the little salmon red box has a broken line through the middle. In the Breakpoints window, the same thing happens to the salmon red box. The tick is still in the tick box but the text description now has "- Unrecognized". The breakpoint does not work. When I stop the debugger, everything looks good again.
I have had breakpoints working but right now I can't get any breakpoint to work. It doesn't seem to matter what instruction I place it on.
Based on a message by JMH08 on 2012-03-02 about upper and lower case characters in the source file name ( http://www.microchip.com/forums/m623971.aspx
) , I removed my single .asm file from the project, renamed it to being all lower case (it had several upper case characters) added it to the project, built the project again and then I found I could reliably use a single breakpoint - for half an hour or so, which is as long as I kept using MPLAB-X for. The breakpoint would not work if I had software breakpoints enabled. ("Failed setting software breakpoint. It is recommended that you exit the current debug session") I could have multiple breakpoints but only one enabled at any one time. To enable or disable them I could right click the little box to the left of the line.
I found that with MPLAB-X, there was no way of specifying a Watch for a program variable by name. There appears to be a facility for this, but it did not produce a watch. Instead, I had to look up the listing file: (project-dir\build\default\debug\xxx.lst) to find the hex address, which I could then use to create a Watch.
I installed MPLAB 8.90 instead. This does a single breakpoint OK and does Watches (View > Watch) for program variables by name from a pulldown list.
Despite the advice for REAL-ICE in the "Emulators/In-Circuit Debuggers" section of http://www.microchip.com/...38159#developmentTools
Pgm-memory HW breakpoints:1
Pgm-memory SW breakpoints:Unlimited
I was not able to get software breakpoints going with MPLAB-X or with MPLAB 8.90. In 8.90, the Resources Toolbar (View > Toolbar > Resources) had only "No Support" in the pulldown list for "SW BP".
Debugging with a single hardware breakpoint is tricky - if there is a breakpoint in use, it means there is no Step Over or Run to Cursor option, as a warning message in MPLAB 8.90 pointed out.