An alternative to using the 'real' hardware would be the use of an emulator, that is a program running on what maybe radically different hardware that 'pretends' or emulates the target hardware at whatever level the writer deems appropriate. As the emulator is a software implementation additional facilities maybe included so that in effect a virtual processor is created.

As it is a software solution some of the functions that would be provided by a Logic Analyser or oscilloscope would be included in the emulator program. Or in this case an addition program.

There are now a number of PIC emulators available on the internet, including Microchip's own, each has its good and not so good points. This emulator has, I think, two maybe four good facilities not commonly available.

Possibly not so good is the lack of 'virtual devices' and there is no correlation between emulator speed and target speed. More modern advanced emulators, such as the one above, allow virtual async terminals or 'scoped pin outputs.

In this program the later is achieved using a seperate program to analyse a trace file.