Процесс уничтожается сторонним приложением (Sprint Smartview) - PullRequest
8 голосов
/ 31 января 2012

Недавно два пользователя нашего программного обеспечения из одной компании начали испытывать случайные закрытия (никаких сообщений об ошибках, диалоговых окнах сбоя, диалоговых окнах выхода и т. Д.). Мы смогли выделить то, что объединяет две системы, в конкретный программный продукт (диспетчер мобильных широкополосных устройств). Когда это программное обеспечение работает, наше программное обеспечение случайно закрывается в течение ~ 2 минут. Если мы выйдем из диспетчера широкополосной связи, наше программное обеспечение будет работать без проблем.

Я не могу представить себе причину, по которой было бы какое-либо взаимодействие между нашим программным обеспечением и их. Наше программное обеспечение не осуществляет доступ к сети, и в любом случае широкополосный модем даже не подключен.

Мы предоставили клиенту обходное решение (запустите наше программное обеспечение от имени администратора или выйдите из диспетчера мобильной широкополосной связи, прежде чем запускать наше программное обеспечение), но мы хотим решить эту проблему, чтобы им не пришлось беспокоиться о выполнении этих действий.

Я подключил к нашему программному обеспечению удаленный отладчик, но я не был уверен, где искать, чтобы точно выяснить, как умирает наше программное обеспечение. После завершения нашего процесса отладка заканчивается кодом завершения 0.

У меня вопрос, как я могу выяснить, как / почему процесс Win32 убивается и что я могу сделать, чтобы предотвратить его?

Редактировать: я открыл менеджер широкополосного доступа и библиотеки DLL, которые он использует, в шестнадцатеричном редакторе, и там есть ссылки на исполняемый файл с тем же именем, что и у нас. Так что я думаю, что это ссылка. Переименование нашего исполняемого файла решает проблему для наших пользователей, но, к сожалению, не глупость Sprint SmartView.

Редактировать : Чтобы помочь редкому другому разработчику, это прозвучит так: Если ваш исполняемый файл имеет имя phoenix.exe, а ваши конечные пользователи используют Sprint SmartView, вот почему ваша программа случайно умирает. Переименование вашего исполняемого файла решит эту проблему (или потратит несколько месяцев своей жизни, пытаясь выяснить, кого следует уведомить в Sprint, чтобы это действительно было решено). Файл, который упоминает phoenix.exe определенно, является WwanCoreSdk.dll.

Ответы [ 2 ]

3 голосов
/ 31 января 2012

К сожалению,

Процесс не может предотвратить завершение себя.

http://msdn.microsoft.com/en-us/library/ms686714%28VS.85%29.aspx

1 голос
/ 31 января 2012

Если ваше приложение 32-битное, попробуйте проверить WinAPIOverride32 . Он покажет вам все системные вызовы, выполненные программой, поэтому, если вы сможете правильно убить вашу программу в журнале от упомянутого менеджера, это должно упростить объяснение, почему это происходит.

...