This is a step-by-step guide to debugging an addin to SSMS from Visual Studio.
Step 1: Set as StartUp Project
You should set your addin project as Visual Studios StartUp project. This means that when you start the Visual Studio debugger start this project by default.
Step 2: Configure project debug start action.
In you addin project's properties find the Debug tab. Set the start action to "Start external program:" and then enter the path to your SSMS exe.
In 2012 this is typically: C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\ssms.exe
In 2008r2 this is typically: C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe
Step 3: Disable PInvokeStackImbalance exceptions
SSMS raises lots of PInvokeStackImbalance exceptions which you want to ignore. Open the Debug Exceptions window with Ctrl+Alt+D and use the Find command to locate PInvokeStackImbalance. Once you have found it, untick the Thrown checkbox.
Step 4: Set a break point
Set a break point on the first line of your OnLoad function in the class that implements ISsmsAddin. Now
Now press F5 to start debugging.