Here's a bit of code that you can use to attach a debugger. I have found it difficult to attach a debugger at the start of the process in the past. When I found this fantastic snip on CodeProject I believe.
Anyway, add this into OnStart, build, install and start your service. Once you have started it will look like it has hung. Attach to the service process (making sure you have the correct Attach to code base selected and presto you can even debug start up.
protected override void OnStart(string[] args)
{
#if DEBUG
while (!Debugger.IsAttached) // Waiting until debugger is attached
{
RequestAdditionalTime(1000); // Prevents the service from timeout
Thread.Sleep(1000); // Gives you time to attach the debugger
}
RequestAdditionalTime(20000); // for Debugging the OnStart method,
// increase as needed to prevent timeouts
#endif
// here is your startup code with breakpoints
}
HTH