На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: maxim84_, juice
  
> Возможность отладки приложения .net core linux через командную строку
Добрый день!
Кто-нибудь задавался вопросом отладки приложения через командный интерфейс? Нашёл утилиту https://github.com/Samsung/netcoredbg. Пробую отладиться:
в тестовом проекте dotnet new web
dotnet run
нахожу id процесса проекта (у меня называется testweb) 7024
netcoredbg --attach 7024 --server=5000 --interpreter=vscode

Вывод идёт, но похоже, что символов отладки нет, и это ему не нравится:
Цитата
<- (E) {"seq":105,"body":{"module":{"id":"73d50060-007e-45f7-8815-79284317eb94","name":"Microsoft.AspNetCore.WebUtilities.dll","path":"/home/username/dotnet/shared/Microsoft.AspNetCore.App/3.1.2/Microsoft.AspNetCore.WebUtilities.dll","symbolStatus":"Symbols not found."},"reason":"new"},"event":"module","type":"event"}

Кто-нибудь, подскажите, как это дальше отлаживать, точнее, как создать символы вручную?
Цитата Sunless @
Кто-нибудь, подскажите, как это дальше отлаживать, точнее, как создать символы вручную?

По идее они в процессе компиляции должны появится. попробуй сделать dotnet publish, тогда он все бинари, вместе с отладочными символами поместит в отдельную папку.
Дальше можешь прям из этой папки запустить приложение командой: dotnet myapp.dll
Ну либо символы можно еще поискать в папке, вместе с бинарниками, они там лежат с расширением *.pdb по идее.
Еще можно попробовать поотлаживаться удаленно через ssh протокол из винды, тогда достаточно будет иметь отладочные символы на виндовз машине.

Еще нашел какие то статьи по теме, может быть поможет:
https://codeblog.dotsandbrackets.com/comman...ing-core-linux/
https://github.com/Microsoft/MIEngine/wiki/...m-Visual-Studio
https://habr.com/ru/post/422141/

Добавлено
Еще возможно понадобиться указать папку с отладочными символами дебагеру, но это надо смотреть доку по дебагеру, который ты используешь.

Ну и собирать нужно дебажную конфигурацию.
Что то типа:
ExpandedWrap disabled
    dotnet publish .\source\mysrc\MyProject.csproj -o:.\output\publish\mybindir -c:Debug >.\output\MyProject.log

Эта команда выполнит восстановление проектов, компиляцию и задеплоит приложение в указанный каталог, все логи компиляции поместит в лог файл.
Дальше заходишь в эту папку, и там уже будут и твои бинарники и отладочные символы и используемые nuget пакеты и необходимые библиотеки для запуска твоего приложения на любой машине.
Сообщение отредактировано: Wound -
Благодарю. Похоже, что, помимо перечисленных инструментов, для продолжения работы с netcoredbg нужно изучить GDB MI, команды которой пока не распознаются при подключенном процессе.
Сообщение отредактировано: Sunless -
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,0849 ]   [ 20 queries used ]   [ Generated: 7.04.20, 13:26 GMT ]