Я написал службу Windows на C ++, которая должна перезапускаться каждую ночь в полночь, поэтому я вызываю exit (1) для нее, чтобы SCM мог перезапустить ее. Проблема в том, что каждую ночь он запускается частично и зависает. В журнале событий я получаю это:
Всплывающее окно приложения - Ошибка приложения: инструкция на «0x0043c145» ссылается на память на «0x00000035». Память не может быть «прочитана».
Кажется, что происходит сбой прямо перед открытием соединения ODBC с базой данных SQL Server 2008. Я могу подтвердить, что служба действительно завершает работу до ее перезапуска; тем не менее, я получаю эту ошибку время от времени, когда она останавливается и перезапускается сама, но если я снова и снова останавливаю и перезапускаю службу, я никогда не получу ее сбой, и если я буду контролировать процесс через порт терминала и выйду вручную оттуда это никогда не подведет.
Если я пытаюсь подключить отладчик, процесс завершается, поэтому я не могу получить какую-либо полезную информацию таким образом.
Я рву волосы, пытаясь понять, что происходит, но я не знаю, с чего начать. У кого-нибудь есть идеи?