> Бывает у меня такая фигня — после восстановления из > hibernate иногда подвисает аудио, и тогда, если какая-то > прога попыталась вывести звук, то виснет, прибиваешь её, > окна этой проги пропадают, но процесс висит и ничего с ним > нельзя сделать. Никак. Потом сама XP при выключении при Это нормальное поведение проги, если она залочена в дривере. Например вызвала DeviceIoControl, а дривер возьми и повисни на двойном CriticalRegion-е например, или мутекса какого ожидает. В общем дривер не завершает и не кэнселит IRP, а прога висит. Это свидетельствует о кривом дривере аудио. По крайней мере о кривой обработке IRP_MJ_POWER.
> выключении грязно ругается на этот процесс, говоришь ей, > что прибить, и всё — помогает только Reset. Наверное, это и > есть «зомби»? Или это хуже? ;-) А зомби это нормальное состояние процесса. Каждый процесс на краткий миг становится зомбей и проходит через это. Но в моем случае он зомбей и остается. Из win32 зомбей не видно вообще. Можно увидеть только из дривера при проходе по списку EPROCESS-ов (ну или из сайса, который именно этим и занимается). У зомби нет ничего, кроме этого самого EPROCESS-а. А вот он удалиться не может.
Это не те, у которых родитель умер. В терминологии от MS, зомби - это процесс, который уже не работает, но еще имеет описатель процесса. То бишь в SoftICE он отображается как Deleting.
Так вот и в XP Rus и в XP SP1 Rus со стандартным девелоперским софтом, SoftICE Driver Suite 2.6, MSDN, VC6 и т.д. процессы вообще никогда до конца не прибиваются.
Это бы ничего, но по команде proc сайс находит первый попавшийся процесс с нужным именем. Точно также адресного пространства у зомби нет, а addr тоже пытается подключиться к адресному пространству первого попавшегося процесса. Вот и получается, что если при отладке процесс запускался больше раза, то приходится листать proc-ем все процессы и переключаться в addr по адресу. Это конечно работает, но сильно напрягает.
Кто нибудь знает, как избавиться от зомбей. Ну или чего они ждут, в том смысле, что не дает им удалиться полностью?
[NT] Может, кто-то владеет дескриптором и не освободил его? Они же Reference-counted...07.07.03 13:59 Автор: HandleX <Александр М.> Статус: The Elderman
Хреново только, что дрова тоже могут это делать, а у меня их довольно много. Если б кто на чистой XP-хе поглянул. Тогда б я точно знал, что это появилось уже в результате моей деятельности.
[NT] Честно говоря, я ни одного живого «зомби» не видел ;-) Хотя…07.07.03 14:39 Автор: HandleX <Александр М.> Статус: The Elderman
Бывает у меня такая фигня — после восстановления из hibernate иногда подвисает аудио, и тогда, если какая-то прога попыталась вывести звук, то виснет, прибиваешь её, окна этой проги пропадают, но процесс висит и ничего с ним нельзя сделать. Никак. Потом сама XP при выключении при выключении грязно ругается на этот процесс, говоришь ей, что прибить, и всё — помогает только Reset. Наверное, это и есть «зомби»? Или это хуже? ;-)
[NT] Хуже :-)07.07.03 15:00 Автор: amirul <Serge> Статус: The Elderman
> Бывает у меня такая фигня — после восстановления из > hibernate иногда подвисает аудио, и тогда, если какая-то > прога попыталась вывести звук, то виснет, прибиваешь её, > окна этой проги пропадают, но процесс висит и ничего с ним > нельзя сделать. Никак. Потом сама XP при выключении при Это нормальное поведение проги, если она залочена в дривере. Например вызвала DeviceIoControl, а дривер возьми и повисни на двойном CriticalRegion-е например, или мутекса какого ожидает. В общем дривер не завершает и не кэнселит IRP, а прога висит. Это свидетельствует о кривом дривере аудио. По крайней мере о кривой обработке IRP_MJ_POWER.
> выключении грязно ругается на этот процесс, говоришь ей, > что прибить, и всё — помогает только Reset. Наверное, это и > есть «зомби»? Или это хуже? ;-) А зомби это нормальное состояние процесса. Каждый процесс на краткий миг становится зомбей и проходит через это. Но в моем случае он зомбей и остается. Из win32 зомбей не видно вообще. Можно увидеть только из дривера при проходе по списку EPROCESS-ов (ну или из сайса, который именно этим и занимается). У зомби нет ничего, кроме этого самого EPROCESS-а. А вот он удалиться не может.