[C#] Makkelijker Server Debuggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 22:08

diondokter

Dum spiro, spero

Topicstarter
Hallo allemaal,

ik ben (nog steeds) bezig met het maken van een multiplayer FPS in unity.
Hiervoor heb ik een Windows Forms applicatie als server.

Om te kunnen debuggen in visual studio kun je bijvoorbeeld breaking points instellen om goed naar alle variables te kunnen kijken. Er onstaat alleen een probleem dat wanneer je dit doet, dat de server dan stil staat en de game zijn connectie verliest.

Wat ik dan ook wil is een mogelijkheid om alle waarden van de variables te zijn terwijl de server blijft lopen.
Hiervoor heb ik een aparte form gemaakt met een treeview waarin je die waarden kan zien. Het ziet er zo uit:
Afbeeldingslocatie: https://v9tida-sn3302.files.1drv.com/y2pAIhA_LsUPM8umDSIfXjJoPrWyL41LLRCAqW5u7PtDZfOIrYZwWd3eJOVFvsUTkofaRaXDaHLFvfYYYnBM6zhKe7G-Bz2gcuH0WT4PD_EheQ4EBYuzJNx6vaAeO6NCWS5/OverviewForm%20Treeview.png?psid=1

En dit is de code om de treeview te updaten:
http://pastebin.com/snKCghrQ

Een probleem hierbij is dat alles collapsed wanneer ik hem update op manier dat ik het doe.
Dit is erg onhandig als ik hem elke seconde wil updaten...

Het zal me wel lukken om het werkende te krijgen dat bij een update niet alles collapsed, maar dat zal me erg veel werk kosten.
Twee vragen dus:
  • Is er een makkelijkere manier om alle waarden te displayen op een georganiseerde manier?
  • Is er een goede en makkelijke manier om een treeview dynamisch te updaten?
Als er nog vragen zijn, dan hoor ik die graag.
Bedankt voor het lezen!

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja, eigenlijk maar 1 vraag : Geef eens wat meer info...

Waarom clear je eerst je treeview voordat je hem update (want dat clearen veroorzaakt je collapsen, je mietert er namelijk alles uit). Add/update/deete je nodes in je treeview gewoon en blijf van je treeview zelf af.

Maar sowieso zou ik niet alles in een treeview stouwen (=traag). Wellicht dat ik een paar hoofdobjecten in de treeview zou gaan stoppen en dan die uitklapbaar maken en dan in je code met reflection (=traag in het kwadraat) kijken of er iets in je treeview uitgeklapt is en dus bijgewerkt moet worden.

Maar bovenal, vergeet het maar dat je alles kan bijhouden. Zeker in een fps omgeving, dat is zo ongeveer juist de reden dat er breakpoints zijn, dan kan de code breaken, daarna kan de benodigde info verzameld worden en dan hoeft die pas getoond te worden, dat is zomaar een lag van 1 seconde die daar tussen zit.

Persoonlijk zou ik het in 2'en hakken : Je hebt je logging en je hebt een logviewer dat zijn 2 losse dingen.

Acties:
  • 0 Henk 'm!

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 22:08

diondokter

Dum spiro, spero

Topicstarter
Ik snap dat wat ik doe erg langzaam is, maar het loopt opo de GUI thread waar letterlijk, behalve de GUI, niks anders op loopt. Het staat geen functionaliteit van de server in de weg.

Daarnaast clear ik de tree elke keer, omdat dit simpelweg het makkelijkste is om te doen. Voordat ik het ga omzetten dat het niet meer nodig is om te clearen, wil ik hier dus vragen of er betere manieren zijn om te bereiken wat ik wil.
En om even samen te vatten wat ik wil:

Ik wil alle informatie, die ik wil zien, kunnen zien zonder de applicatie te breaken.

Als dit echt een raar idee is, zeg het me dan... Ik heb hier nog niet veel ervaring mee.

Acties:
  • 0 Henk 'm!

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 10-09 11:15
Heb je Visual Studio 2012/2013 Ultimate? Hiervoor hebben ze namelijk IntelliTrace uitgevonden. Je kunt de stand alone collector uitrollen op je server om data te verzamelen en deze offline in op je developer station in te laden. Dan kan je daarna door je code steppen alsof je live aan het debuggen bent.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Acties:
  • 0 Henk 'm!

  • Baminge
  • Registratie: Februari 2012
  • Laatst online: 05-05 20:30
Ik zou voor het weergeven van de variabelen een listview gebruiken.

http://msdn.microsoft.com...stview%28v=vs.110%29.aspx