Remote Debugger

Bitte berichtet uns über neu gefundene Bugs in diesem Forum und stellt sicher, dass ihr diesen Bug reproduzieren könnt.
Ihr könnt mehr Informationen im Thread "So meldet ihr einen Bug" finden.
User avatar
kevink98
Posts: 171
Joined: Thu Jul 23, 2015 3:29 pm
Contact:

Remote Debugger

Post by kevink98 »

Nachdem ich den Remote Debugger mal getestet habe, sind mir folgende Sachen aufgefallen:

1) Breakpoints funktionieren nicht. Ich setzte die, debugge das Spiel, aber es wird da nicht angehalten.

2) Live-Editierung geht nicht. Ich habe in einem einfachen Script in einer Funktion ein print hinzugefügt und das Script Reloaded, aber es passiert nichts, wenn die Funktion dann aufgerufen wird.
Meine Mods: LS-Modcompany - Mods

Facebook: LS-Modcompany
Website: LS-Modcompany
Stegei
GIANTS Software | CTO
Posts: 1788
Joined: Sat Jun 09, 2007 10:51 am

Re: Remote Debugger

Post by Stegei »

Wie ist dein Setup genau? Mod gezippt oder als lose Dateien? Projekt Verzeichnis beim Debugger der Ordner vom Mod?

Wenn du "Break All" drückst, wird das Spiel angehalten und du kannst die Sachen auslesen? Wird beim Debugger unten links "connected" angezeigt?
Wenn pausiert ist, wird was sinnvolles beim Callstack anzeigt und kann man da doppelkicken?

Live-Editierung geht nur bedingt. Insbesondere beim Spezialisierungen funktioniert das nicht einfach so, da beim Script Reload einfach das Script nochmals ausgeführt wird. Dadurch werden zwar alle Funktionen etc. neu erstellt, aber Bestehende Objekte die bereits auf die alten Funktionen zeigen, zeigen dann nicht plötzlich auf die neuen Funktionen.

Es funktioniert nur bei Funktionen, die bei den Objekten nicht lokal speichert sind. Du kannst das etwas umgehen in dem du z.B. zum testen in deiner Spezialisierung eine andere globale Funktion aufrufst die in einem anderen File liegen. Dann kannst du die niese Helper Funktionen neu laden. Z.B. Sowas:
Die Spezialisierung lua sieht so aus:

Code: Select all

function MySpec:myFunc(dt)
   MySpec_myFunc(self, dt)
end
Und es gibt die zweite Lua MySpecImpl.lua

Code: Select all

function MySpec_myFunc(self, dt)
    print("Running myFunc on self "..tostring(self))
end
Dann sollte man MySpecImpl.lua reloaden können und die Funktion wird auch geändert ausgeführt.

Wir sind uns allerdings auch intern noch am überlegen, was die besten Optionen sind, um Reload besser zuzulassen, und ob wir evtl die Reload Funktion selbst auch verbessern können so dass alte Funktionen automatisch von den neuen überschrieben werden können.
User avatar
kevink98
Posts: 171
Joined: Thu Jul 23, 2015 3:29 pm
Contact:

Re: Remote Debugger

Post by kevink98 »

Sind natürlich lose Dateien

Das sind meine Einstellungen:
Image

So siehts aus, wenn ich auf breakall klicke:
Image

auslesen kann ich da einiges. Und er hält bei Hud an, was richtig sein kann.
(Nur grad hat sich alles aufgehängt...)

Beim Doppelklick kommt man aber auch überall dahin, wo es hin soll.


Ich persönlich finde die Liveeditierung auch nicht unbedingt notwendig. Weil das funktioniert ja auch in Visual Studio ned richtig. Da übernimmt er es ja auch ned immer. Für mich wäre halt wichtig, dass die Breakpoints gehen. Dann wäre es schonmal ein großer Schritt in die richtige Richtung und man hat es einfacher, wenn man mal ein Problem hat.
Meine Mods: LS-Modcompany - Mods

Facebook: LS-Modcompany
Website: LS-Modcompany
Stegei
GIANTS Software | CTO
Posts: 1788
Joined: Sat Jun 09, 2007 10:51 am

Re: Remote Debugger

Post by Stegei »

Ohne Breakpoints ist natürlich der Debuggen in einem grösseren Projekt eher sinnfrei ;)

Das Problem liegt am Mod Name. Dieser muss mit dem Verzeichnisnamen des Mods übereinstimmen, in deinem Fall also "FS19_GlobalCompany".
Nur dann, wenn man ein übergeordnetes Verzeichnis als Mod Directory verwendet (also z.B. My Games/FarmingSimulator2019/mods/) um mehrere Mods gleichzeitig zu bearbeiten, spielt der Name keine Rolle.

Die aktuelle Game Version hat übrigens den Bug, dass sie beim Stoppen des Debuggings (Stop klicken im Debugger oder beenden des Debuggers) hängen bleibt und das über Windows gekillt werden muss.
User avatar
kevink98
Posts: 171
Joined: Thu Jul 23, 2015 3:29 pm
Contact:

Re: Remote Debugger

Post by kevink98 »

Stegei wrote: Mon Feb 03, 2020 3:36 pm Das Problem liegt am Mod Name. Dieser muss mit dem Verzeichnisnamen des Mods übereinstimmen, in deinem Fall also "FS19_GlobalCompany".
Nur dann, wenn man ein übergeordnetes Verzeichnis als Mod Directory verwendet (also z.B. My Games/FarmingSimulator2019/mods/) um mehrere Mods gleichzeitig zu bearbeiten, spielt der Name keine Rolle.
Und schon tut es... leider nur theoretisch. Weil wenn man am Breakpoint angelangt ist, friert das Game ein und man kommt auch nicht mehr raus... musst mit strg+alt+entf den taskmanager im Hintergrund öffnen und per Pfeiltaste und Entf den Thread (LS) schließen^^
Meine Mods: LS-Modcompany - Mods

Facebook: LS-Modcompany
Website: LS-Modcompany
Locked