The Simulator now has the ability to load custom libraries and single step through the code. Please note that pointers are not supported and this is the typical reason for a library not to run.
To use a custom library, there are two methods. The first is to copy the header file and cpp file to the same directory as the sketch, and then the Simulator will find these and load them in separate tabs.
The second method which is the preferred method is to use the library directory (.\Libraries) and then the Simulator will automatically find the library header and source file and load them in separate tabs in the Program Window. This method is better since the Simulator will find the files in the same place as the Arduino IDE, and will save the effort of copying the files. The Library Directory can be setup by pressing F6 to load the Edit Sketch page and at the right hand side is an Edit Box which allows the Library directory to be Set or Reset.