как убить процесс?

Тема в разделе "WASM.BEGINNERS", создана пользователем ffLash33, 18 май 2011.

  1. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12
    поставил для ознакомления виндовс сервер 2008 р2, и поставил для экспериментов старенькую 6-ю студию, дак вот при отладке любой прилаги процесс отлаживаемого приложения висит в таскменеджере и никак его не вынесешь, повторно перекомпилить само собой не дает, типа файл используется и все такое, помогает лишь закрытие студии, в чем здесь подвох помогите плиз
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    возможно проблема в том что вы запускаете студию не с правами администратора( отдельный пункт меню) в итоге происходят проблемы с отладочными правами от чего 6 студии плохеет
     
  3. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12
    я уже всяко пробывал, никак не выходит, права ситуацию не меняют
     
  4. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    а студия при этом жива или виснит за компанию? если жива как регирует на shift+f5 (завершение отладки)?
     
  5. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    а вообще возможно придется ставить студию по новее)
     
  6. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12
    студия жива а процнсс так и висит, на новой студии такого нету все норм, просто у меня такая бажина только на 2008 в 7 ке и хп все норм
     
  7. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Дедлок там при наличии отладочного порта. Точно не помню что за ресурс.
     
  8. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12
    ссылочку бы на решение проблемы, непойму что мне сделать
     
  9. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Это повидимому изза дедлока при синхронном завершении тредов. Поток, вызвавший NtTerminateProcess захватывает блокировку, другой поток будет ждать на ней(нельзя же завершать завершаемое :)):
    Код (Text):
    1.     // Acquire rundown protection just so we can give the right errors
    2.     //
    3.  
    4.     if (!ExAcquireRundownProtection (&Process->RundownProtect)) {
    5.         ObDereferenceObject (Process);
    6.         return STATUS_PROCESS_IS_TERMINATING;
    7.     }
    8.  
    9.     //
    10.     // Mark process as deleting except for the obscure delete self case.
    11.     //
    12.     if (ProcessHandleSpecified) {
    13.         PS_SET_BITS (&Process->Flags, PS_PROCESS_FLAGS_PROCESS_DELETE);
    14.     }
    15.  
    16.     st = STATUS_NOTHING_TO_TERMINATE;
    17.  
    18.     for (Thread = PsGetNextProcessThread (Process, NULL);
    19.          Thread != NULL;
    20.          Thread = PsGetNextProcessThread (Process, Thread)) {
    21.  
    22.         st = STATUS_SUCCESS;
    23.         if (Thread != Self) {
    24.             PspTerminateThreadByPointer (Thread, ExitStatus, FALSE);
    25.         }
    26.     }
    27.  
    28.     ExReleaseRundownProtection (&Process->RundownProtect);
    При завершении треда на отладочный порт доставляется сообщение:
    Код (Text):
    1.     // If we need to send debug messages then do so.
    2.     //
    3.  
    4.     if (Process->DebugPort != NULL) {
    5.         //
    6.         // Don't report system thread exit to the debugger as we don't report them.
    7.         //
    8.         if (!IS_SYSTEM_THREAD (Thread)) {
    9.             if (LastThread) {
    10.                 DbgkExitProcess (Process->ExitStatus);
    11.             } else {
    12.                 DbgkExitThread (ExitStatus);
    13.             }
    14.         }
    15.     }
    А далее все действия с процессом и потоками происходят синхронно, на отладочный порт доставляются сообщения например. Если мониторящий тред заблокировать, то по видимому возникнет деадлок. При завершении отладчика, завершается отлаживаемый процесс.
    Так например бывает браузеры виснут при отладке, хром например вообще ничем не завершался(рку).
     
  10. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12
    я просто не пойму дело в настройке системы либо может как то студию можно перенастроить, у меня при отладке в 10-й студии все норм завершается, а в 6-й пишет что завершен а на самом деле висит и это так со всеми отлаживаемыми приложениями, даже тестовый майн глохнет, то есть если прилагу просто заставить саму завершится то все норм,, если же по шифт ф5 то висяк.может есть какие то ключи в самой студии по отладчику?
     
  11. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ну какие ключи? 6-я Студия сделана в 1998, когда даже 2000-го еще не было. Ну есть в ней косяки, т.к. она не знает про добавки в API отладчика. Можно конечно найти решение, но проще ТЕРПЕТЬ...
     
  12. ffLash33

    ffLash33 New Member

    Публикаций:
    0
    Регистрация:
    11 май 2011
    Сообщения:
    12