Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Menedżer debugowania sesji (SDM) zarządza dowolną liczbą aparatów debugowania (DE), które debugują dowolną liczbę programów w wielu procesach na dowolnej liczbie maszyn. Oprócz bycia multiplekserem silnika debugowania SDM zapewnia ujednolicony widok sesji debugowania w środowisku IDE.
Operacja menedżera debugowania sesji
Menedżer debugowania sesji (SDM) zarządza jednostką wykonawczą (DE). Na maszynie może działać więcej niż jeden aparat debugowania. Aby multipleksować DE, SDM opakowuje wiele interfejsów z DEs i udostępnia je w IDE jako jednolity interfejs.
Aby zwiększyć wydajność, niektóre interfejsy nie są multipleksowane. Zamiast tego są one używane bezpośrednio z DE, a wywołania do tych interfejsów nie przechodzą przez SDM. Na przykład interfejsy używane z kontekstami pamięci, kodu i dokumentu nie są multipleksowane, ponieważ odwołują się do konkretnej instrukcji, pamięci lub dokumentu w konkretnym programie debugowanym przez określony DE. Żaden inny DE nie musi być zaangażowany w ten poziom komunikacji.
Nie dotyczy to wszystkich kontekstów. Wywołania do interfejsu kontekstu oceny wyrażeń przechodzą przez SDM. Podczas oceny wyrażeń SDM opakowuje interfejs IDebugExpression2, który daje środowisku IDE, ponieważ gdy to wyrażenie jest oceniane, może obejmować wiele DE debugujących programy w tym samym procesie, który może być uruchomiony w tym samym wątku.
SdM zazwyczaj działa jako mechanizm delegowania, ale może działać jako mechanizm emisji. Na przykład podczas obliczania wyrażenia SDM działa jako mechanizm rozgłaszania w celu powiadomienia wszystkich DEs, że mogą wykonywać kod w określonym wątku. Podobnie, gdy SDM odbiera zdarzenie zatrzymania, przekazuje programom, aby przestały działać. Po wywołaniu kroku SDM emituje sygnał do programów, aby mogły kontynuować działanie. Punkty przerwania są również emitowane do każdej DE.
SdM nie śledzi bieżącego programu, wątku ani ramki stosu. Informacje o procesie, programie i wątku są wysyłane do SDM w połączeniu z określonymi zdarzeniami debugowania.