Мое приложение представляет собой службу Win32, которая зарегистрирована для событий питания ОС. Когда приложение получает обратный вызов события, операции выполняются в зависимости от типа события питания. Во время события приостановки / сна наше приложение пытается выполнить определенные сетевые задания в течение 10 секунд, прежде чем подтвердить, что ОС продолжает работу с приостановкой.
В обычных условиях мое приложение успешно работает в течение 10 секунд. Но иногда операции выполняются слишком долго и не завершаются за 10 секунд. Приложение использует различные функции Win32 API, и я хочу проверить, какая именно операция вызывает задержку. Есть ли способ захватить дамп процесса, зависший при завершении заданий, когда система собирается приостановить работу?
Я пробовал ProcMon, ProcExplorer, ProcDump, но это не помогло. Любые идеи по устранению неполадок, кроме добавления журналов в коде. Благодарю.
Windbg Preview Инструмент, доступный в магазине Microsoft, очень полезен для захвата следов любого запущенного процесса. Мой вариант использования — захватить след моего процесса, когда ОС находится в спящем режиме. Трассировку можно использовать для отладки путешествий во времени моего приложения, когда ОС фактически находилась в спящем режиме. Очень полезный инструмент от Microsoft. Учебники по 9 канал о том, как использовать инструмент. Счастливого обучения 🙂
Других решений пока нет …