Debugowanie kodu języka C# zdefiniowanego przez użytkownika dla nieudanych zadań U-SQL

Ważne

Usługa Azure Data Lake Analytics została wycofana 29 lutego 2024 r. Dowiedz się więcej z tym ogłoszeniem.

W przypadku analizy danych organizacja może używać Azure Synapse Analytics lub Microsoft Fabric.

Język U-SQL udostępnia model rozszerzalności przy użyciu języka C#. W skryptach U-SQL można łatwo wywoływać funkcje języka C# i wykonywać funkcje analityczne, które nie obsługują języka deklaratywnego SQL. Aby dowiedzieć się więcej na temat rozszerzalności języka U-SQL, zobacz U-SQL programmability guide (Przewodnik po programowości języka U-SQL).

W praktyce każdy kod może wymagać debugowania, ale trudno jest debugować zadanie rozproszone z kodem niestandardowym w chmurze z ograniczonymi plikami dziennika. Azure Data Lake Tools for Visual Studio udostępnia funkcję o nazwie Failed Vertex Debug (Niepowodzenie debugowania wierzchołka), która ułatwia łatwiejsze debugowanie błędów występujących w kodzie niestandardowym. Gdy zadanie U-SQL zakończy się niepowodzeniem, usługa zachowuje stan awarii, a narzędzie pomaga pobrać środowisko awarii chmury do komputera lokalnego na potrzeby debugowania. Pobieranie lokalne przechwytuje całe środowisko chmury, w tym wszelkie dane wejściowe i kod użytkownika.

W poniższym filmie wideo przedstawiono debugowanie wierzchołków niepowodzenie w Azure Data Lake Tools for Visual Studio.

Ważne

Program Visual Studio wymaga następujących dwóch aktualizacji do korzystania z tej funkcji: Microsoft Visual C++ 2015 Redistributable Update 3 i Universal C Runtime dla systemu Windows.

Pobieranie wierzchołka nie powiodło się na komputerze lokalnym

Po otwarciu zadania, które zakończyło się niepowodzeniem w Azure Data Lake Tools for Visual Studio, na karcie błędu zostanie wyświetlony żółty pasek alertów ze szczegółowymi komunikatami o błędach.

  1. Wybierz pozycję Pobierz, aby pobrać wszystkie wymagane zasoby i strumienie wejściowe. Jeśli pobieranie nie zostanie ukończone, wybierz pozycję Ponów próbę.

  2. Wybierz pozycję Otwórz po zakończeniu pobierania, aby wygenerować lokalne środowisko debugowania. Zostanie otwarte nowe rozwiązanie debugowania, a jeśli istniejące rozwiązanie zostało otwarte w programie Visual Studio, pamiętaj o zapisaniu i zamknięciu go przed debugowaniem.

Zrzut ekranu przedstawiający zadanie Data Lake Analytics w usłudze USQL z wyróżnionym przyciskiem Pobierz.

Konfigurowanie środowiska debugowania

Uwaga

Przed debugowaniem sprawdź wyjątki środowiska uruchomieniowego języka wspólnego w oknie Ustawienia wyjątków (Ctrl + Alt + E).

Zrzut ekranu przedstawiający kod źródłowy języka C# zdefiniowany przez użytkownika przedstawiający ustawienia wyjątków z ustawionym ustawieniem wyjątków środowiska uruchomieniowego języka wspólnego.

W nowym uruchomionym wystąpieniu programu Visual Studio możesz lub nie można odnaleźć kodu źródłowego języka C#zdefiniowanego przez użytkownika:

  1. Mogę znaleźć kod źródłowy w rozwiązaniu

  2. Nie mogę znaleźć kodu źródłowego w rozwiązaniu

Kod źródłowy jest uwzględniony w rozwiązaniu do debugowania

Istnieją dwa przypadki przechwycenia kodu źródłowego języka C#:

  1. Kod użytkownika jest definiowany w pliku za pomocą kodu (zazwyczaj nazwany Script.usql.cs w projekcie U-SQL).

  2. Kod użytkownika jest zdefiniowany w projekcie biblioteki klas języka C# dla aplikacji U-SQL i zarejestrowany jako zestaw z informacjami o debugowaniu.

Jeśli kod źródłowy jest importowany do rozwiązania, możesz użyć narzędzi debugowania programu Visual Studio (watch, zmiennych itp.), aby rozwiązać ten problem:

  1. Naciśnij klawisz F5, aby uruchomić debugowanie. Kod jest uruchamiany, dopóki nie zostanie zatrzymany przez wyjątek.

  2. Otwórz plik kodu źródłowego i ustaw punkty przerwania, a następnie naciśnij klawisz F5 , aby debugować kod krok po kroku.

    Zrzut ekranu przedstawiający kod zdefiniowany przez użytkownika z zestawem punktów przerwania przedstawiający wyjątek w wyróżnionym wierszu.

Kod źródłowy nie jest uwzględniony w rozwiązaniu do debugowania

Jeśli kod użytkownika nie jest uwzględniony w pliku za kodem lub nie zarejestrowano zestawu przy użyciu informacji debugowania, kod źródłowy nie jest uwzględniany automatycznie w rozwiązaniu do debugowania. W takim przypadku potrzebujesz dodatkowych kroków, aby dodać kod źródłowy:

  1. Kliknij prawym przyciskiem myszy pozycję Rozwiązanie "VertexDebug" > Dodaj > istniejący projekt... w celu znalezienia kodu źródłowego zestawu i dodania projektu do rozwiązania debugowania.

    Zrzut ekranu eksploratora rozwiązań w programie Visual Studio przedstawiający rozwiązanie VertexDebug.

  2. Pobierz ścieżkę folderu projektu dla projektu FailedVertexDebugHost .

  3. Right-Click dodany projekt > kodu źródłowego zestawu Właściwości, wybierz kartę Kompilacja po lewej stronie i wklej skopiowaną ścieżkę kończącą się ścieżką \bin\debug jako ścieżka danych wyjściowych>. Ostateczna ścieżka wyjściowa jest podobna do <DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\.

    Zrzut ekranu przedstawiający kartę kompilacji w Visual Studio Code z wyróżnioną ścieżką ruchu wychodzącego w obszarze Dane wyjściowe.

Po tych ustawieniach rozpocznij debugowanie przy użyciu klawisza F5 i punktów przerwania. Aby rozwiązać ten problem, możesz również użyć narzędzi debugowania programu Visual Studio (watch, zmiennych itp.).

Uwaga

Ponownie skompiluj projekt kodu źródłowego zestawu za każdym razem, gdy zmodyfikujesz kod w celu wygenerowania zaktualizowanych plików pdb.

Prześlij ponownie zadanie

Jeśli po debugowaniu projekt zakończy się pomyślnie, w oknie danych wyjściowych zostanie wyświetlony następujący komunikat:

The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).

Zrzut ekranu przedstawiający okno danych wyjściowych z wyróżnionym wierszem ukończenia.

Aby ponownie przesłać zadanie, które zakończyło się niepowodzeniem:

  1. W przypadku zadań z rozwiązaniami opartymi na kodzie skopiuj kod C# do pliku źródłowego za kodem (zazwyczaj Script.usql.cs).

  2. W przypadku zadań z zestawami kliknij prawym przyciskiem myszy projekt kodu źródłowego zestawu w rozwiązaniu debugowania i zarejestruj zaktualizowane zestawy .dll w katalogu usługi Azure Data Lake.

  3. Prześlij ponownie zadanie U-SQL.

Następne kroki