Debug linux from windows

Отладка .NET Core в Linux с помощью SSH путем присоединения к процессу Debug .NET Core on Linux using SSH by attaching to a process

Начиная с Visual Studio 2017 можно присоединяться к процессам .NET Core, запущенным в локальном или удаленном развертывании Linux, по протоколу SSH. Starting in Visual Studio 2017, you can attach to .NET Core processes running on a local or remote Linux deployment over SSH. В этой статье описывается настройка и выполнение процесса отладки. This article describes how to set up debugging and how to debug. Сценарии отладки с использованием контейнеров Docker см. в статьях Присоединение к процессу, выполняющемуся в контейнере Docker и об инструментах для работы с контейнерами. For debugging scenarios using Docker containers, see Attach to a process running on a Docker container and the container tools articles instead. Сведения об отладке Linux в WSL 2 из Visual Studio (без присоединения к процессу) см. в этой статье. To debug Linux on WSL 2 from Visual Studio (no attach to process), see Debug .NET Core Apps in WSL 2 with Visual Studio.

Предварительные требования Prerequisites

На компьютере Visual Studio необходимо установить рабочую нагрузку ASP.NET и разработка веб-приложений или Кроссплатформенная разработка .NET Core. On the Visual Studio computer, you need to install either the ASP.NET and web development workload or the .NET Core cross-platform development workload.

На сервере Linux необходимо установить SSH-сервер (распакуйте и установите его с помощью curl или wget). On the Linux server, you need to install SSH server, unzip and install with either curl or wget. Например, в Ubuntu это можно сделать, запустив: For example, on Ubuntu you can do that by running:

На сервере Linux установите среду выполнения .NET для Linux и найдите страницу, соответствующую вашему дистрибутиву Linux (например, Ubuntu). On the Linux server, install the .NET runtime on Linux, and find the page matching your Linux distribution (such as Ubuntu). Пакет SDK для .NET не требуется. The .NET SDK is not required.

Подготовка приложения к отладке Prepare your application for debugging

Подготовка приложения для отладки To prepare your application for debugging:

При сборке приложения рассмотрите возможность использования конфигурации «Отладка». Consider using a Debug configuration when you build the application. Отладка кода, скомпилированного для розничного выпуска (конфигурация «Выпуск»), намного сложнее, чем отладка кода, скомпилированного для отладочного выпуска. It is much harder to debug retail-compiled code (a Release configuration) than debug-compiled code. Если необходимо использовать конфигурацию «Выпуск», сначала отключите режим «Только мой код». If you need to use a Release configuration, first disable Just My Code. Чтобы отключить этот параметр, последовательно выберите Сервис > Параметры > Отладка, а затем снимите флажок Включить только мой код. To disable this setting, choose Tools > Options > Debugging, and then deselect Enable Just My Code.

Читайте также:  Asus efi bios utility установка windows

Убедитесь, что проект настроен на создание переносимых PDB-файлов (параметр по умолчанию) и что PDB-файлы находятся в том же расположении, что и библиотека DLL. Make sure your project is configured to produce portable PDBs (which is the default setting), and make sure the PDBs are in the same location as the DLL. Чтобы выполнить эту настройку в Visual Studio, щелкните проект правой кнопкой мыши, затем выберите Свойства > Сборка > Дополнительно > Отладочная информация. To configure this in Visual Studio, right-click the project, then choose Properties > Build > Advanced > Debugging Information.

Создание и развертывание приложения. Build and deploy the application

Для развертывания приложения перед отладкой можно использовать несколько методов. You can use several methods to deploy the app prior to debugging. Например, с их помощью можно выполнять следующее. For example, you can:

Скопируйте источники на целевой компьютер и выполните сборку с помощью dotnet build на компьютере Linux. Copy sources to the target computer and build with dotnet build on the Linux machine.

Выполните сборку приложения в Windows, а затем перенесите артефакты сборки на компьютер Linux. Build the app on Windows, and then transfer the build artifacts to the Linux machine. (Артефакты сборки включают само приложение, переносимые PDB-файлы, любые библиотеки среды выполнения, от которых может зависеть приложение, и файл .deps.json.) (The build artifacts consist of the application itself, the portable PDBs, any runtime libraries it might depend on, and the .deps.json file.)

При развертывании приложения запустите приложение. When the app is deployed, start the application.

Подключение отладчика Attach the debugger

После запуска приложения на компьютере с Linux можно подключить отладчик. When the application is running on the Linux machine, you are ready to attach the debugger.

В Visual Studio последовательно выберите пункты Отладка > Присоединиться к процессу. . In Visual Studio, choose Debug > Attach to Process….

В списке Тип подключения выберите SSH. In the Connection Type list, select SSH.

В поле Цель подключения укажите IP-адрес или имя узла целевого компьютера. Change the Connection Target to the IP address or host name of the target computer.

Если вы еще не указали учетные данные, вам будет предложено ввести пароль и (или) указать файл закрытого ключа. If you haven’t already provided credentials, you will be prompted to enter a password and/or private key file.

Настраивать порты не требуется, за исключением порта, на котором выполняется сервер SSH. There are no port requirements to configure, except the port that the SSH server is running on.

Найдите процесс, который нужно отладить. Find the process that you would like to debug.

Код выполняется в процессе с уникальным именем или в процессе с именем dotnet. Your code runs either in a unique process name or a process named dotnet. Чтобы найти требуемый процесс, просмотрите столбец Заголовок, в котором отображаются аргументы командной строки для процесса. To find the process that you’re interested in, check the Title column, which shows the command line arguments for the process.

В следующем примере показан список процессов на удаленном компьютере Linux, подключенных по протоколу SSH, отображаемых в диалоговом окне Присоединение к процессу. In the following example, you see a list of processes from a remote Linux machine over an SSH transport displayed in the Attach to Process dialog box.

Читайте также:  Яндекс cloud сервер linux

Выберите Присоединиться. Choose Attach.

В появившемся диалоговом окне выберите тип кода для отладки. In the dialog that appears, select the type of code you would like to debug. Выберите Управляемый (.NET Core для Unix) . Choose Managed (.NET Core for Unix).

Используйте функции отладки Visual Studio для отладки приложения. Use Visual Studio debugging features to debug the app.

В следующем примере отладчик Visual Studio остановлен в точке останова в коде, выполняющемся на удаленном компьютере Linux. In the following example, you see the Visual Studio debugger stopped at a breakpoint in code running on a remote Linux machine.

Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.

Содержание

WSL — официальная подсистема Linux внутри Windows

В Windows 10 существует крайне полезная вещь под названием Windows Subsystem for Linux (WSL). Она позволяет использовать GNU/Linux-среду прямо в Windows и запускать не только команды, но и, например, Bash-скрипты. Для использования WSL необходимо следовать инструкции ниже.

Шаг 1. Проверьте, подходит ли текущая версия Windows требованиям. Для этого нажмите сочетание клавиш Win+R, затем введите winver. Найдите строку «Сборка ОС» — она должна быть свежее версии 14316.

Шаг 2. Запустите стандартную утилиту PowerShell от имени администратора и введите в ней команду для включения WSL:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Шаг 3. Если версия Windows, определённая в первом пункте, свежее 18362, вы можете установить WSL 2, который в разы быстрее первой версии и обладает доработанным ядром. Введите команду ниже, если нужно установить WSL 2:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

После этого скачайте и установите пакет обновления с официального сайта.

Шаг 4. Перезагрузите компьютер. Если была произведена установка WSL 2, введите в PowerShell от имени администратора следующую команду:

Шаг 5. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите подходящий GNU/Linux-дистрибутив. Самым популярным является Ubuntu — вы можете установить любую версию из представленных в Microsoft Store.

Шаг 6. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.

Шаг 7. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.

Шаг 8. Теперь различные GNU/Linux-команды можно выполнять, запустив дистрибутив, либо введя в командной строке wsl . Например, для просмотра всех файлов в текущей директории достаточно в командной строке выполнить wsl ls -a.

Обращу внимание на то, что путь к дискам в WSL отличается от такового в Windows. Вместо привычного C:/ используйте /mnt/c/. Также не забывайте про экранирование пробелов с помощью символа \ — это также пригодится при вводе путей к файлам.

Помимо выполнения базовых команд, с помощью WSL можно даже запускать приложения с графическим интерфейсом. Правда, рассчитывать на большое количество поддерживаемых подобных программ не стоит.

Читайте также:  Windows hal dll не найден

Шаг 1. Загрузите X-сервер и установите его.

Шаг 2. Запустите его с помощью ярлыка на рабочем столе. В открывшемся окне выберите вариант Multiple windows, затем Start no client. Завершите настройку кнопкой Finish.

Шаг 3. Откройте дистрибутив через меню Пуск и выполните команду export DISPLAY=:0

Шаг 4. Запустив приложение с графическим интерфейсом в WSL, вы увидите новое окно прямо в Windows.

CoreUtils — лёгкий инструмент для запуска базовых команд

Плюс данной утилиты — возможность запуска не только на Windows 10, но и на более старых версиях ОС. Кроме того, она легка и не занимает много места. Не обошлось без недостатков — программа скудна на функционал и не обновлялась очень давно. Она не только не умеет запускать скрипты и приложения с GUI, но и поддерживает лишь самые базовые GNU/Linux-команды. Установка CoreUtils весьма проста.

Шаг 1. Скачайте утилиту с официального сайта.

Шаг 2. Следуйте инструкциям установщика.

Шаг 3. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Шаг 4. Запустите командную строку и выполняйте команды прямо там.

Cygwin — запуск команд и Bash-скриптов

Ещё одна утилита, схожая с CoreUtils, но обладающая более широким функционалом — в том числе и возможностью запуска скриптов. Из минусов — немалый вес и более сложная установка. Разумеется, не идёт ни в какое сравнение с максимально удобным WSL, но для базовых команд вполне подойдёт.

Шаг 1. Загрузите Cygwin и запустите установку.

Шаг 2. Выберите Install from Internet, укажите директории для установки и загрузки пакетов, а также любой подходящий сайт из списка для скачивания файлов.

Шаг 3. В процессе установки можете выбрать необходимые пакеты, либо сразу нажать «Далее», оставив базовый набор.

Шаг 4. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:

Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.

Шаг 5. Команды можно выполнять как через командную строку, так и через специальный терминал.

Шаг 6. Для удаления Cygwin достаточно удалить папку, в которую программа была установлена, а также (по желанию) значение из переменной Path по методу, обратному тому, что был описан в 4 шаге (не удаляйте саму переменную).

Оцените статью