If the service is started with the single argument "debug" eg by setting
the Start parameters of the service in services.msc, we delayed startup
in service_main() until the await_debugger variable is set to false.
Attach to nssm.exe with your debugger of choice, set a breakpoint within
that function and poke the variable when ready.
Beware that the behaviour of the service manager when service_main
doesn't complete operation promptly is undefined.
   nssm_service_t *service = alloc_nssm_service();\r
   if (! service) return;\r
 \r
+  static volatile bool await_debugger = (argc > 1 && str_equiv(argv[1], _T("debug")));\r
+  while (await_debugger) Sleep(1000);\r
+\r
   if (_sntprintf_s(service->name, _countof(service->name), _TRUNCATE, _T("%s"), argv[0]) < 0) {\r
     log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_OUT_OF_MEMORY, _T("service->name"), _T("service_main()"), 0);\r
     return;\r