Udostępnij za pośrednictwem


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ń:

A solution with multiple solution configurations

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:

The parts of the debug toolbar

  1. 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:

    A sample popup with solution configurations

  2. Element docelowy kompilacji — identyfikuje element docelowy kompilacji dla projektów. Nie zmienia się to z poprzednich wersji Visual Studio dla komputerów Mac.

  3. 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.

    Popup showing the devices for a project

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:

Output Pad for a solution configuration

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:

Thread pad for a solution configuration

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:

Visual Studio for Mac debugging two projects

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:

Pause or resume in the Thread pad

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:

Debug toolbar

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:

Start Debugging Item

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:

  1. Otwórz okno dialogowe Opcje rozwiązania w Visual Studio dla komputerów Mac i wybierz pozycję Uruchom > konfiguracje:

    Solution Configuration in the Solution Options dialog

  2. 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 :

    Naming a new solution configuration

  3. 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:

    Selecting the project to start

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ń.