Re[3]: "Мягкое" падение программы
От: Аноним  
Дата: 10.02.07 22:01
Оценка: 8 (2)
за эксплорером (точнее за шелловским процессом) следит winlogon
студия хз но скорее всего через фильтр
BTW в висте сделали прикольную апи (долго ржал) — RegisterApplicationRestart — http://msdn2.microsoft.com/en-us/library/aa373347.aspx
Re[2]: "Мягкое" падение программы
От: Аноним  
Дата: 10.02.07 22:06
Оценка:
Дело в коде завершения а не в функции которой убивать. Если убивать с кодом 1 — не перезапустится.
Re[2]: "Мягкое" падение программы
От: Аноним  
Дата: 11.02.07 08:48
Оценка:
Единственный шанс чтото сделать из юзерспейса при крэше — установка top-level seh фильтра. Но он не будет вызван в случае когда у потока запорот стек. В таком случае процесс будет убит без предупреждения. Хэндлы и тп закрываются ядром при завершении процесса без участия юзер-лендового кода. Стандартное решение — запускать watchdog — второй процесс. Различать добровольное умирание от крэша по exitcode процесса. Все критичные к потере во время работы данные хранить в costistent состоянии во временном файле.
Re: "Мягкое" падение программы
От: Leonid Troyanovsky  
Дата: 11.02.07 09:53
Оценка:
Здравствуйте, Ulfur, Вы писали:

U>Может есть еще какой-нибудь способ?


Можно сделать падение более "мягким" если вынести весь
неблагонадежный код в отдельный процесс(ы), общаться
с которым через излюбленный способ IPC,
а за нежданными падениями следить обычными WaitFor.
--
С уважением, LVT
Re[5]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 07:38
Оценка:
Здравствуйте, gear nuke, Вы писали:

Вся проблема решаеться элементарно путём написания драйвера, который следил бы за процессом, как и было сказано, и некоей user-mode службы, которая бы получала уведомление от этого самого драйвера, и перезапускала программу. imho, лучшее решение.
Re[6]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 08:08
Оценка:
ах..ь.... г. Аноним 100 — а вы хоть раз драйвер писали что так говорите? Про WaitForSingkeObject знаете что она может ждать когда процесс помрет? Так вот скажите нах..я драйвер там где юзермодом все оюходится без проблем?
Re[7]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 08:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>ах..ь.... г. Аноним 100 — а вы хоть раз драйвер писали что так говорите?


Писал. Не материтесь без причины.

А>Про WaitForSingkeObject знаете что она может ждать когда процесс помрет?


Знаю.

А>Так вот скажите нах..я драйвер там где юзермодом все оюходится без проблем?


Да вы правы конечно. Хотя я бы сделал всё же драйвер. Ну нравиться мне так больше. Ну что поделаешь.
Re[8]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 08:22
Оценка:
Сформулируйте чем лучше ZwWaitForSingleObject из драйвера с последующим информированием службы (APC/установкой ивента) о том что процесс умер того что служба сама узнает что процесс умер через WaitForSingleObject?
Re[9]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 08:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Сформулируйте чем лучше ZwWaitForSingleObject из драйвера с последующим информированием службы (APC/установкой ивента) о том что процесс умер того что служба сама узнает что процесс умер через WaitForSingleObject?


ZwWaitForSingleObject — зачем это надо в драйвере, я так и не понял
Re[10]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 08:57
Оценка:
А>ZwWaitForSingleObject — зачем это надо в драйвере, я так и не понял
Предлагаете вешаться PsSetCreateProcessNotifyRoutine которых в системе может быть максимум 8 штук (не знаи? ), или похукать какой нить NtTerminateProcess что не будет работать в висте? + ко всему этому требование админских прав для установки софта, общее усложнение архитуктуры совершенно без каких либо выгод, однозначно означающее увеличение кол-ва возможных проблем.
Re[11]: "Мягкое" падение программы
От: Аноним  
Дата: 12.02.07 09:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>ZwWaitForSingleObject — зачем это надо в драйвере, я так и не понял

А>Предлагаете вешаться PsSetCreateProcessNotifyRoutine которых в системе может быть максимум 8 штук (не знаи? ), или похукать какой нить NtTerminateProcess что не будет работать в висте? + ко всему этому требование админских прав для установки софта, общее усложнение архитуктуры совершенно без каких либо выгод, однозначно означающее увеличение кол-ва возможных проблем.

Да делайте как знаете, оспади!
А вообще-то тут уже советовали писать софт, который не падает. Вот я так и делаю обычно ))
Re[6]: "Мягкое" падение программы
От: gear nuke  
Дата: 12.02.07 15:38
Оценка: 1 (1) :)))
Здравствуйте, <Аноним>, Вы писали:

А>Вся проблема решаеться элементарно путём написания драйвера, который следил бы за процессом


Пока ребята из Виларибо писали драйвер, ребята из Вилобаджо здали юзермодное решение и жуют попкорн

А>и некоей user-mode службы, которая бы получала уведомление от этого самого драйвера, и перезапускала программу.


Кто будет следить за службой?
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: "Мягкое" падение программы
От: FDSC Россия consp11.github.io блог
Дата: 12.02.07 19:41
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, <Аноним>, Вы писали:


А>>Вся проблема решаеться элементарно путём написания драйвера, который следил бы за процессом


GN>Пока ребята из Виларибо писали драйвер, ребята из Вилобаджо здали юзермодное решение и жуют попкорн


А>>и некоей user-mode службы, которая бы получала уведомление от этого самого драйвера, и перезапускала программу.


GN>Кто будет следить за службой?


Главное разведывательное управление? Я угадал???
Re[2]: "Мягкое" падение программы
От: FDSC Россия consp11.github.io блог
Дата: 12.02.07 19:44
Оценка:
Здравствуйте, Ban001, Вы писали:

B>Здравствуйте, Ulfur, Вы писали:


U>>Субж: как реализовать повторный запуск программы при ее падении — например, как это сделано в Microsoft Visual Studio или explorer'е (когда происходит падение, студия перезапускается)?

B>Это прямо из серии: быстро поднявшийся фигурист не считается упавшим...
B>Может быть лучше программы писать так, чтобы они не падали?

Ну вот я пользуюсь FireFox, вот он у меня упал на 3-ий месяц надёжной работы. И что? Уже не имеет он право упасть?
А если я ещё хочу не только отслеживать, что процесс упал, но ещё и посмотреть, какой у него был стек и т.п., короче говоря, собрать информацию о падении и отправить её в центр автоматизированного контроля, который мне баги сам найдёт
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.