Ich möchte eine C # -Konsolenanwendung, die unter Linux ausgeführt wird, von Visual Studio aus remote debuggen. Folgendes habe ich bisher gefunden:
http://www.mono-project.com/Debugger
Die Mono-Laufzeitumgebung implementiert eine Debugging-Schnittstelle, die es ermöglicht Debugger und IDEs zum Debuggen von verwaltetem Code. Dies wird als Soft .__ bezeichnet. Debugger und wird von MonoDevelop, Xamarin Studio und .__ unterstützt. Visual Studio (wenn die entsprechenden Plugins installiert sind) sowie der Befehlszeilen-SDB-Client.
Mono bietet eine API zur Kommunikation mit dem Debugger und zum Erstellen Ihres eigene Debugging-Benutzeroberflächen über die Mono.Debugger.Soft.dll-Assembly.
Auf der folgenden Seite werden einige Probleme der aktuellen MonoVS-Debugger-Implementierung besprochen, die jedoch alle gut für mich sind.
http://mono-project.com/Visual_Studio_Integration
Die Seite enthält auch einen Link zum Handbuch "Erste Schritte" für MonoVS:
http://mono-project.com/GettingStartedWithMonoVS
Enthält einen Download-Link für MonoTools:
http://mono-tools.com/download/
Der Download-Link leitet jedoch jetzt weiter zu:
Wo kann ich die Xamarin Studio Starter Edition herunterladen? Wenn Sie auf den Preislink klicken, sehe ich, dass ich mindestens die Business Edition für Visual Studio Support benötige (999 USD pro Jahr). Nein, nein, danke.
Hier stecke ich fest. Einige Besonderheiten meiner Umgebung:
Entwicklungsumgebung:
Zielumgebung:
Ich weiß, es ist ein alter Thread, aber für den Fall, dass jemand (wie ich) noch keine Lösung dafür gefunden hat, habe ich beim Suchen heute diese Erweiterung für Visual Studio 2015 gefunden, die wie ein Zauber wirkt: MonoRemoteDebugger für Visual Studio 2015
Siehe MonoRemoteDebugger v1.0.4 , um einen Konflikt mit der Xamarin VS-Erweiterung in VS2015 Update2 zu beheben.
Ich hoffe, es hilft.
Viel Spaß beim Debuggen und danke an den Entwickler! :)
Ich habe this guide gefunden, in dem erklärt wird, wie Remote-Debugging unter Linux von Windows aus mit Xamarin Studio durchgeführt wird, das jetzt außer für iOS- und Android-Entwicklung kostenlos ist. Ich habe es mit Korrekturen für die Probleme erweitert, die ich beim Testen auf einem Raspberry Pi Zero W mit Raspbian Jessie Lite (2017-04-10) hatte.
MONODEVELOP_SDB_TEST = 1
(Arbeitsplatz -> Eigenschaften -> Erweiterte Systemeinstellungen -> Umgebungsvariablen).%localappdata%\XamarinStudio-6.0\Logs
, um festzustellen, was fehlgeschlagen ist.PdbDebugException: Unknown custom metadata item kind: 6
) erstellt wurden.pdb2mdb MyProgram.exe
Sudo apt-get install mono-complete
installiert.mono --debug --debugger-agent=transport=dt_socket,address=0.0.0.0:12345,server=y /path/to/MyProgram.exe
. Dadurch wird das Programm gestartet, aber die Ausführung wird angehalten, bis der Xamarin Studio-Debugger eine Verbindung hergestellt hat.Run -> Run with -> Custom Configuration...
und dann Run Action = Debug - Custom Command Mono Soft Debugger
. Klicken Sie auf Debug
.IP
und Port
mit der IP-Adresse Ihres Linux-Systems und Port 12345, wie in der Mono-Befehlszeile angegeben. Klicken Sie auf Connect
. Die Ausführung beginnt am Haltepunktsatz.Es ist möglich, bedingte Haltepunkte festzulegen, in/aus/über Code zu springen, Grundelemente und Objekte usw. zu beobachten, und es ist auch ziemlich schnell. Ich würde lieber direkt in Visual Studio debuggen, aber dies scheint eine voll funktionsfähige Lösung zu sein.
Aufbauend auf der Antwort von Gutemberg Ribeiro ist es mir gelungen, MonoRemoteDebugger mit VS2015 an einem Raspberry Pi Zero W zu arbeiten, auf dem Raspbian Jessie Lite (2017-04-10) läuft. Der Trick bestand darin, eine Mono-Version nach 3.2.8 zu installieren:
Sudo apt-get purge mono-complete
Sudo apt-get automatisch entfernen
Sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://plugwash.raspbian.org/mono4 jessie-mono4 main" | Sudo tee -a /etc/apt/sources.list
Sudo apt-get Update
Sudo apt-get installiert mono-complete
wget https://github.com/techl/MonoRemoteDebugger/releases/download/v1.2.0/MonoRemoteDebugger.Server.Zip
unzip -d MonoRemoteDebugger.Server MonoRemoteDebugger.Server.Zip
mono MonoRemoteDebugger.Server/MonoRemoteDebugger.Server.exe
MonoRemoteDebugger -> Debug with Mono (remote)
aus.Um ehrlich zu sein, sind die Debugging-Funktionen ziemlich begrenzt. Einfache Haltepunkte und das Ein- und Ausschalten von Code scheinen etwas in Ordnung zu sein. Das Festlegen eines Haltepunkts in einer Funktion und das anschließende Überschreiten des Funktionsaufrufs wird nicht am Haltepunkt angehalten.
Primitive Typen können beobachtet werden, aber die Objekte, die ich zu sehen versucht habe, können nicht angezeigt werden. Die Call Stack-Ansicht ist ziemlich eingeschränkt und die Threads-Ansicht ist leer. Ausnahmen werden nicht abgefangen, sondern führen zu einer Meldung "[ERROR] FATAL UNHANDLED EXCEPTION" vom MonoRemoteDebuggerServer. Wenn Sie jedoch mit diesen Einschränkungen leben können, ist die Einrichtung einfacher als die Xamarin Studio-Route .
Es gibt ein Plugin für Xamarin Studio/MonoDevelop
Die Lösung, die Sie benötigen, wird dieses Jahr mit MonoDebugger.NET veröffentlicht. Die Entwickler "versprechen", dass wir sie auf jedem Mono-Gerät bereitstellen und in Visual Studio (2010 bis 2015) debuggen können.