Debugowanie wielu procesów
Bardzo często zdarza się, że nowoczesne rozwiązania opracowane w Visual Studio dla komputerów Mac mają wiele projektów przeznaczonych dla różnych platform. Na przykład rozwiązanie może mieć projekt aplikacji mobilnej, który opiera się na danych dostarczonych przez projekt usługi internetowej. Podczas opracowywania tego rozwiązania deweloper może wymagać jednoczesnego uruchamiania obu projektów w celu rozwiązywania problemów z błędami. Począwszy od wersji Cycle 9 platformy Xamarin, można teraz Visual Studio dla komputerów Mac debugować wiele procesów uruchomionych w tym samym czasie. Dzięki temu można ustawić punkty przerwania, sprawdzić zmienne i wyświetlić wątki w więcej niż jednym uruchomionym projekcie. Jest to nazywane debugowaniem wielu procesów.
W tym przewodniku omówiono niektóre zmiany wprowadzone w Visual Studio dla komputerów Mac w celu obsługi debugowania wielu procesów, sposobu konfigurowania rozwiązań do debugowania wielu procesów oraz sposobu dołączania do istniejących procesów za pomocą Visual Studio dla komputerów Mac.
Wymagania
Debugowanie wielu procesów wymaga Visual Studio dla komputerów Mac.
Zmiany w środowisku IDE
Aby ułatwić deweloperom debugowanie wieloprocesowe, Visual Studio dla komputerów Mac przeszedł pewne zmiany w interfejsie użytkownika. Visual Studio dla komputerów Mac został zaktualizowany Pasek narzędzi debugowania i nowa sekcja Konfiguracja rozwiązań w folderze Opcje rozwiązania. Ponadto okienko wątków będzie teraz wyświetlać uruchomione procesy i wątki dla każdego procesu. Visual Studio dla komputerów Mac będzie również wyświetlać wiele okienk debugowania, po jednym dla każdego procesu, dla niektórych rzeczy, takich jak Dane wyjściowe aplikacji.
Konfiguracje rozwiązań
Domyślnie Visual Studio dla komputerów Mac wyświetli pojedynczy projekt w obszarze Konfiguracja rozwiązania na pasku narzędzi debugowania. Po zainicjowaniu sesji debugowania jest to projekt, do którego Visual Studio dla komputerów Mac zostanie uruchomiony i dołączony debuger.
Aby uruchomić i debugować wiele procesów w Visual Studio dla komputerów Mac, należy utworzyć konfigurację rozwiązania. W konfiguracji rozwiązania opisano, jakie projekty w rozwiązaniu powinny być uwzględniane podczas inicjowania sesji debugowania za pomocą kliknięcia przycisku Uruchom lub naciśnięcia klawisza ⌘ ↩ (Cmd-Enter). Poniższy zrzut ekranu to przykład rozwiązania w Visual Studio dla komputerów Mac z wieloma konfiguracjami rozwiązań:
Części paska narzędzi debugowania
Pasek narzędzi debugowania został zmieniony, aby umożliwić wybranie konfiguracji rozwiązania za pomocą menu podręcznego. Ten zrzut ekranu przedstawia części paska narzędzi Debugowanie:
Konfiguracja rozwiązania — można ustawić konfigurację rozwiązania, klikając konfigurację rozwiązania na pasku narzędzi debugowania i wybierając konfigurację z menu podręcznego:
Element docelowy kompilacji — identyfikuje element docelowy kompilacji dla projektów. Nie zmienia się to z poprzednich wersji Visual Studio dla komputerów Mac.
Cele urządzeń — wybiera urządzenia, na których będzie uruchamiane rozwiązanie. Istnieje możliwość zidentyfikowania oddzielnego urządzenia lub emulatora dla każdego projektu.
Wiele okienk debugowania
Po uruchomieniu konfiguracji z wieloma rozwiązaniami niektóre okienka Visual Studio dla komputerów Mac będą wyświetlane wiele razy, po jednym dla każdego procesu. Na przykład poniższy zrzut ekranu przedstawia dwa okienka danych wyjściowych aplikacji dla rozwiązania, które uruchamia dwa projekty:
Wiele procesów i aktywnego wątku
Po napotkaniu punktu przerwania w jednym procesie ten proces wstrzyma wykonywanie, podczas gdy inne procesy będą nadal działać. W jednym scenariuszu procesu Visual Studio dla komputerów Mac można łatwo wyświetlać informacje, takie jak wątki, zmienne lokalne, dane wyjściowe aplikacji w jednym zestawie konsoli. Jeśli jednak istnieje wiele procesów z wieloma punktami przerwania i potencjalnie wiele wątków, może okazać się przytłaczające dla dewelopera, aby poradzić sobie z informacjami z sesji debugowania, która próbuje wyświetlić wszystkie informacje ze wszystkich wątków (i procesów) jednocześnie.
Aby rozwiązać ten problem, Visual Studio dla komputerów Mac wyświetli tylko informacje z jednego wątku naraz, jest to znane jako aktywny wątek. Pierwszy wątek, który wstrzymuje się w punkcie przerwania, jest traktowany jako aktywny wątek. Aktywny wątek to wątek, który koncentruje się na uwagi dewelopera. Polecenia debugowania, takie jak Step Over ⇧★O (Shift-Cmd-O), zostaną wydane dla aktywnego wątku.
Konsola wątków wyświetli informacje dotyczące wszystkich procesów i wątków, które są objęte inspekcją w konfiguracji rozwiązania i udostępnia wizualne wskazówki dotyczące aktywnego wątku:
Wątki są pogrupowane według procesu, który je hostuje. Nazwa projektu i identyfikator aktywnego wątku będą wyświetlane w tekście pogrubionym, a strzałka wskazująca prawą stronę pojawi się w rynnie obok aktywnego wątku. Na poprzednim zrzucie ekranu wątek #1 w procesie o identyfikatorze 48703 (FirstProject) jest aktywnym wątkiem.
Podczas debugowania wielu procesów można przełączyć aktywny wątek, aby wyświetlić informacje debugowania dla tego procesu (lub wątku) przy użyciu okienka wątku. Aby przełączyć aktywny wątek, wybierz żądany wątek w okienku wątku, a następnie kliknij go dwukrotnie.
Przechodzenie przez kod po zatrzymaniu wielu projektów
Gdy dwa (lub więcej) projektów ma punkty przerwania, Visual Studio dla komputerów Mac wstrzyma oba procesy. W aktywnym wątku można wykonać tylko kod krok po kroku. Drugi proces zostanie wstrzymany, dopóki zmiana zakresu nie umożliwi debugerowi przełączenia fokusu z aktywnego wątku. Rozważmy na przykład następujący zrzut ekranu przedstawiający Visual Studio dla komputerów Mac debugowania dwóch projektów:
Na tym zrzucie ekranu każde rozwiązanie ma własny punkt przerwania. Podczas debugowania rozpoczyna się pierwszy punkt przerwania, który ma zostać napotkany, znajduje się w wierszu 10MainClass
w module SecondProject. Ponieważ oba projekty mają punkty przerwania, każdy proces jest zatrzymywany. Po napotkaniu punktu przerwania każde wywołanie kroku spowoduje, że Visual Studio dla komputerów Mac przejść przez kod w aktywnym wątku.
Przechodzenie przez kod jest ograniczone do aktywnego wątku, dlatego Visual Studio dla komputerów Mac przejdzie krok po kroku, wiersz kodu naraz, podczas gdy drugi proces jest nadal wstrzymany.
Korzystając z poprzedniego zrzutu ekranu jako przykładu, po zakończeniu for
pętli Visual Studio dla komputerów Mac zezwolić na uruchomienie pierwszego projektu do momentu napotkania punktu przerwania w wierszu 11 wMainClass
. Dla każdego polecenia Krok do tyłu debuger przejdzie wiersz według wiersza w obszarze FirstProject, dopóki wewnętrzne algorytmy heurystyczne Visual Studio dla komputerów Mac przełączą aktywny wątek z powrotem na SecondProject.
Jeśli tylko jeden z projektów miał zestaw punktów przerwania, tylko ten proces zostanie wstrzymany. Drugi projekt będzie nadal działać do momentu wstrzymania przez dewelopera lub dodania punktu przerwania.
Wstrzymanie i wznawianie procesów
Istnieje możliwość wstrzymania lub wznowienia procesu przez kliknięcie prawym przyciskiem myszy procesu i wybranie pozycji Wstrzymywanie lub wznawianie z menu kontekstowego:
Wygląd paska narzędzi debugowania zmieni się w zależności od stanu projektów, które są debugowane. Po uruchomieniu wielu projektów pasek narzędzi debugowania wyświetli zarówno przycisk Wstrzymaj , jak i Wznów , w którym jest uruchomiony co najmniej jeden projekt, a jeden projekt został wstrzymany:
Kliknięcie przycisku Wstrzymaj na pasku narzędzi Debugowanie spowoduje wstrzymanie wszystkich procesów, które są debugowane, a kliknięcie przycisków Wznów spowoduje wznowienie wszystkich wstrzymanych procesów.
Debugowanie drugiego projektu
Istnieje również możliwość debugowania drugiego projektu po uruchomieniu pierwszego projektu przez Visual Studio dla komputerów Mac. Po uruchomieniu pierwszego projektu *Kliknij prawym przyciskiem myszy projekt w okienku rozwiązania i wybierz pozycję Rozpocznij debugowanie elementu:
Tworzenie konfiguracji rozwiązania
Konfiguracja rozwiązania informuje Visual Studio dla komputerów Mac, jaki projekt ma zostać uruchomiony po zainicjowaniu sesji debugowania za pomocą przycisku Uruchom. Może istnieć więcej niż jedna konfiguracja rozwiązania na rozwiązanie. Dzięki temu można określić, jakie projekty są uruchamiane podczas debugowania projektu.
Aby utworzyć nową konfigurację rozwiązania w programie Xamaring Studio:
Otwórz okno dialogowe Opcje rozwiązania w Visual Studio dla komputerów Mac i wybierz pozycję Uruchom > konfiguracje:
Kliknij przycisk Nowy i wprowadź nazwę nowej konfiguracji rozwiązania, a następnie kliknij przycisk Utwórz. Nowa konfiguracja rozwiązania zostanie wyświetlona w oknie Konfiguracje :
Wybierz nową konfigurację przebiegu na liście konfiguracji. W oknie dialogowym Opcje rozwiązania zostanie wyświetlony każdy projekt w rozwiązaniu. Sprawdź każdy projekt, który powinien zostać uruchomiony po zainicjowaniu sesji debugowania:
Konfiguracja rozwiązania MultipleProjects zostanie teraz wyświetlona na pasku narzędzi Debugowanie, co umożliwi deweloperowi jednoczesne debugowanie dwóch projektów.
Podsumowanie
W tym przewodniku omówiono debugowanie wielu procesów w Visual Studio dla komputerów Mac. Niektóre zmiany w środowisku IDE zostały omówione w celu obsługi debugowania wielu procesów i opisano niektóre ze skojarzonych zachowań.