Udostępnij za pośrednictwem


Dołączanie do uruchomionego procesu za pomocą debugera programu Visual Studio

W tym temacie pokazuje, jak dołączyć do uruchomionego procesu, Dołącz do procesu na komputerze docelowym i rozwiązywanie problemów z dołączyć błędy.

Dlaczego debugować procesy załączone?

Debuger programu Visual Studio może dołączyć do procesu, który jest uruchomiony poza programem Visual Studio.Za pomocą tego dołączyć możliwości wykonać następujące czynności:

  • Debugowanie aplikacji, która nie została utworzona w programie Visual Studio.

  • Debugowanie jednocześnie wiele procesów.Można również debugowania wielu procesów, uruchamiając wiele projektów w obrębie jednego rozwiązania.

  • Debugowania procesów uruchomionych na komputerze zdalnym.

  • Debugowanie DLL, które jest uruchamiane w osobnym procesie, którego nie można łatwo można uruchomić z programu Visual Studio, na przykład, usługi lub ISAPI DLL uruchomiony z internetowych usług informacyjnych.

  • Automatyczne uruchamianie debuger po awarii procesu podczas pracy poza programem Visual Studio.Jest to tylko w czasie debugowania.

Po dołączeniu do programu, użyj poleceń wykonania debugera, sprawdzić stan programu i tak dalej.Aby uzyskać więcej informacji, zobacz Debugowanie jednego lub więcej procesów za pomocą programu Visual Studio, Rozpoczynanie, przerywanie, wykonywanie krokowe, przechodzenie przez kod i zatrzymywanie debugowania w programie Visual Studio i Wyświetlanie danych w debugerze.Możliwość sprawdzić program może być ograniczona, w zależności od tego, czy program został skompilowany z informacje debugowania i czy masz dostęp do kodu źródłowego programu i czy kompilator JIT środowiska wykonawczego języka wspólnego śledzi informacje debugowania.

Uwaga dotycząca języka C++Uwaga dotycząca języka C++

Dla debugera do dołączenia do kod napisany w języku C++, kod musi emitować DebuggableAttribute.Możesz dodać to do kodu automatycznie przez połączenie z /ASSEMBLYDEBUG łączenie opcji.

Informacje dotyczące przestrogiPrzestroga

Aby dołączyć do aplikacji ze Sklepu Windows napisany w języku JavaScript, należy najpierw włączyć debugowanie aplikacji.Zobacz Dołącz debugera w Centrum deweloperów systemu Windows.

Dołącz do uruchomionego procesu

  1. Na Debugowanie menu, wybierz opcję dołączyć do procesu.

  2. W dołączyć do procesu okna dialogowego pole, Znajdź program, który ma zostać dołączony do z Dostępne procesy listy.

    1. Jeśli program, który chcesz debugować jest uruchomiona na innym komputerze, użyj Kwalifikator pola listy, aby wybrać lub określenia komputera zdalnego.Aby uzyskać więcej informacji, zobacz Zdalne debugowanie i diagnostyka.

    2. Jeśli proces jest uruchomiony w ramach innego konta użytkownika, wybierz Pokaż procesy wszystkich użytkowników pole wyboru.

    3. Jeśli komputer jest połączony za pośrednictwem połączenia pulpitu zdalnego, wybierz opcję Pokaż procesy we wszystkich sesjach pole wyboru.

  3. W dołączyć do pole, należy upewnić się, wymieniony typ będzie debugowanie kodu.Wartość domyślna automatyczne ustawienie podejmie próbę określenia kodu typ do debugowania.Jeśli ustawienia automatyczne jest niewłaściwe:

    1. Kliknij przycisk Wybierz.

    2. W Wybierz typ kodu okno dialogowe, kliknij przycisk Debugowanie te typy kodu i wybierane do debugowania.

    3. Kliknij przycisk OK.

  4. Kliknij przycisk dołączyć.

    Dostępne procesy zostanie wyświetlona lista automatycznie podczas otwierania Procesy okno dialogowe.Procesy można uruchamianie i zatrzymywanie w tle, gdy jest otwarte okno dialogowe.Jednak zawartość nie są zawsze aktualne.Lista można odświeżyć w dowolnym momencie, aby wyświetlić listę bieżącego procesów klikając Odśwież.

    Możesz można dołączyć do kilku programów podczas debugowania, ale tylko jeden program jest aktywny debugera w dowolnym momencie.Active program można ustawić w Debugowanie lokalizacji narzędzi lub Procesy okna.

    [!UWAGA]

    Dla debugera do dołączenia do zarządzany kod napisany w języku C + +/ CLI, kod musi wysyłać DebuggableAttribute.Możesz dodać to do kodu automatycznie przez połączenie z /ASSEMBLYDEBUG łączenie opcji.

    Jeśli użytkownik próbuje dołączyć do procesu należący do konta użytkownika w niezaufanej, pojawi się zabezpieczenia ostrzeżenie okno dialogowe potwierdzenia.Aby uzyskać więcej informacji, zobacz Ostrzeżenie o zabezpieczeniach: Dołączanie do procesu niezaufanego użytkownika może być niebezpieczne. Jeżeli następujące informacje wydają się podejrzane lub niepewne, nie należy podłączać się do procesu..

    W niektórych przypadkach podczas debugowania w sesji pulpitu zdalnego (Terminal Services) Dostępne procesy listy nie są wyświetlane wszystkie dostępne procesy.Na Windows Server 2003 lub nowszy, jeśli używasz programu Visual Studio jako użytkownik ma konto użytkownika z ograniczonymi uprawnieniami, Dostępne procesy listy nie wyświetla procesów uruchomionych w sesji 0, który służy do usługi i inne procesy serwera, w tym w3wp.exe.Można rozwiązać ten problem, należy uruchomić program Visual Studio przy użyciu konta administratora lub uruchamiając program Visual Studio z konsoli serwera zamiast sesji usług terminalowych.Jeśli żadna z tych rozwiązań umożliwiających ich obejście nie jest możliwe, trzecia opcja ma dołączyć do procesu, należy uruchomić vsjitdebugger.exe -p Identyfikator procesu z wiersza polecenia systemu Windows. Identyfikator procesu przy użyciu tlist.exe, można określić.Uzyskanie tlist.exe, należy pobrać i zainstalować narzędzi debugowania dla systemu Windows, dostępny pod adresem https://go.microsoft.com/fwlink/?LinkId=168279.

Aby zatrzymać debugowanie załączone procesu, kliknij przycisk Debugowanie / Zatrzymaj debugowanie, lub przestanie działać załączone procesu.

Dołącz do procesu na komputerze zdalnym

Przy użyciu dołączyć do procesu okno dialogowe, można wybrać inny komputer, który został skonfigurowany na potrzeby zdalnego debugowania.Aby uzyskać więcej informacji, zobacz Ustawianie narzędzi zdalnych na urządzeniu.Po wybraniu na komputerze zdalnym, można wyświetlić listę dostępnych procesów uruchomionych na komputerze i dołączyć do co najmniej jednego z procesów wykonywanych na potrzeby debugowania.

Aby wybrać komputera zdalnego:

  1. W dołączyć do procesu okno dialogowe, wybierz opcję wpisz odpowiednie połączenie z transportu listy.Domyślne jest prawidłowe ustawienie w większości przypadków.

  2. Użyj Kwalifikator pola listy, aby wybrać nazwy komputera zdalnego, wykonując jedną z następujących czynności:

    1. Wpisz nazwę w Kwalifikator pola listy.

    2. Kliknij strzałkę listy rozwijanej dołączony do Kwalifikator pole listy i wybierz nazwę komputera z listy rozwijanej.

    3. Kliknij przycisk znaleźć przycisk Dalej, aby Kwalifikator listy, aby otworzyć Wybierz połączenia debugera zdalnego okno dialogowe.Wybierz połączenia debugera zdalnego okno dialogowe zawiera wszystkie urządzenia, które znajdują się w sieci lokalnej net podrzędnych i dowolnego urządzenia, które jest podłączone bezpośrednio do tego komputera za pomocą kabla Ethernet.Kliknij przycisk komputera lub urządzenia, a następnie kliknij przycisk Wybierz.

    Transportu ustawienie będzie nadal występować między sesjami debugowania.Kwalifikator ustawienie będzie nadal występować między sesjami debugowania tylko w przypadku debugowania połączenia z tym kwalifikator.

Rozwiązywanie problemów z dołączyć błędy

Gdy debuger dołączenie do uruchomionego procesu, ten proces może zawierać co najmniej jeden typ kodu.Typy kodu debuger można dołączyć do wyświetlania i wybranych w Wybierz typ kodu okno dialogowe.

[!UWAGA]

Dla debugera do dołączenia do zarządzany kod napisany w języku C++, kod musi wysyłać DebuggableAttribute.Możesz dodać to do kodu automatycznie przez połączenie z /ASSEMBLYDEBUG łączenie opcji.

Informacje dotyczące przestrogiPrzestroga

Aby dołączyć do aplikacji ze Sklepu Windows napisany w języku JavaScript, należy najpierw włączyć debugowanie aplikacji.Zobacz Dołącz debugera w Centrum deweloperów systemu Windows.

Czasami debuger pomyślnie można dołączyć do typu jeden kod, ale nie na inny typ kodu.To może wystąpić, jeśli chcesz dołączyć do procesu, który jest uruchomiona na komputerze zdalnym.Komputer zdalny może zainstalować zdalnego debugowania components dla niektórych typów kodu, ale nie dla innych osób.Można ją również wtedy, gdy użytkownik próbuje dołączyć do co najmniej dwa procesy na potrzeby debugowania bezpośrednie bazy danych.Debugowanie SQL obsługuje dołączania do tylko jeden proces.

Jeśli debuger może dołączyć do niektórych, ale nie wszystkie typy kodu, zostanie wyświetlony komunikat identyfikujący typów, które nie udało się dołączyć.

Jeśli debuger pomyślnie dołączenie do typu co najmniej jeden kod, możesz przejść do debugowania proces.Można tylko typy kodu, które zostały dołączone do debugowania.Komunikat poprzednim przykładzie pokazuje, że typ kod skryptu nie udało się dołączyć.W związku z tym nie będą mogli debugowanie kodu skryptu w ramach procesu.Kod skryptu w procesie będzie nadal uruchomiona, ale nie będzie można jej Ustawianie punktów przerwania, wyświetlać dane lub wykonywać inne operacje debugowania w skrypcie.

Jeśli chcesz bardziej szczegółowych informacji dotyczących powodu niepowodzenia debugera do dołączenia do typu kodu, możesz spróbować ponownie dołączyć do tego typu kodu.

Aby uzyskać szczegółowe informacje na temat Dlaczego nie udało się dołączyć typ kodu

  1. Odłączanie od procesu.Na Debugowanie menu, kliknij przycisk Odłączanie wszystkich.

  2. Ponownie dołączyć do procesu wybranie tylko jeden kod typu.

    1. W dołączyć do procesu okna dialogowego Wybierz proces w Dostępne procesy listy.

    2. Kliknij przycisk Wybierz.

    3. W Wybierz typ kodu okno dialogowe, wybierz opcję Debugowanie te typy kodu i nie można dołączyć typ kodu.Wyczyść wszystkie inne kodu.

    4. Kliknij przycisk OK.Wybierz typ kodu zamyka okno dialogowe.

    5. W dołączyć do procesu okno dialogowe, kliknij przycisk Attach.

    Tym razem attach nie powiedzie się całkowicie, a uzyskasz określony komunikat o błędzie.

Zobacz też

Koncepcje

Debugowanie jednego lub więcej procesów za pomocą programu Visual Studio

Debugowanie just in time w programie Visual Studio

Inne zasoby

Zdalne debugowanie i diagnostyka