<html><head><meta content="text/html; charset=iso-8859-2" http-equiv="Content-Type"></head><body><div><div style="font-family: Calibri,sans-serif; font-size: 11pt;">Ha felső graf elcsúszna: a user a moka és jdt csúcsokba van behúzva!<br><br>Üdv,<br> Máté<br></div></div><hr><span style="font-family: Tahoma,sans-serif; font-size: 10pt; font-weight: bold;">Feladó: </span><span style="font-family: Tahoma,sans-serif; font-size: 10pt;">kmate@caesar.elte.hu</span><br><span style="font-family: Tahoma,sans-serif; font-size: 10pt; font-weight: bold;">Feladva: </span><span style="font-family: Tahoma,sans-serif; font-size: 10pt;">2015.04.30. 18:15</span><br><span style="font-family: Tahoma,sans-serif; font-size: 10pt; font-weight: bold;">Címzett: </span><span style="font-family: Tahoma,sans-serif; font-size: 10pt;">modelinterpreter@plc.inf.elte.hu</span><br><span style="font-family: Tahoma,sans-serif; font-size: 10pt; font-weight: bold;">Tárgy: </span><span style="font-family: Tahoma,sans-serif; font-size: 10pt;">[Modelinterpreter] jdt + moka launch</span><br><br>Sziasztok!<br><br>Az a helyzet, hogy minél tovább nézem, annál szerencsétlenebbnek tűnik  <br>ez a kettős debug launch. Ki is fejteném, hogy miért.<br><br>Itt ugye a következő objektumok játszanak szerepet az EDF miatt:<br><br>- debug model: mit lát a user<br>   - jdt: szokásos process/thread/stack az alap<br>   - moka: amit akarunk azt teszünk oda, a fenti felosztásra vetítve,  <br>mert az EDF azt a hierarchiát adja, a moka pedig egészíti ki; jelenleg  <br>semmit nem teszünk bele<br><br>- debug target: hogyan műklödik,  <br>pause/resume/step/terminate/disconnect stb. eventek<br>   - jdt: a belső VM-re alkalmazza és azzal szinkronban teszi a  <br>dolgokat, annak eseményeire reagál<br>   - moka: az execution engine játsza a VM szerepét, az kap a UI-tól  <br>eventeket és fordítva<br><br>- source lookup: ha egy stack frame-en, vagy a neki megfelelő EDF  <br>model objektumodon állsz, megmondja mit kell editorban elővenni<br>   - jdt: java class/forrás fájlok<br>   - moka: ha a saját debug modeled építésekor kitöltöd a  <br>MokaStackFrame-en a modelObject mezőt, elvileg magától arra ugrik<br><br>Na most mivel két launcher van, minden felsorolt dologból kettő van. Emiatt:<br><br>- ezeket szinkronban kéne tartani, ami az önmagukban is bonyolult  <br>event flow-juk miatt nem hiszem, hogy gyerekjáték<br>- a jdt modeljét el kéne rejteni, és a source lookupot is<br>- sőt, meg kéne gátolni, hogy a jdt targetjébe a user közvetlenül  <br>eventet küldjön (terminate, disconnect, suspend, resume, stb..)<br>- és el kéne érni, hogy csak a moka debug target vezérelje a jdt debug  <br>targetet az execution engine-en keresztül<br><br>A source lookupot majdnem sikerült egy kommittal megoldanom (r815), de  <br>nem stabil a dolog, a második vagy későbbi indításokra már megint  <br>dobálja fel az ablakokat és nem érdekli valahogy, mit állítottam be.<br><br>A többire nem nagyon van ötletem - egyelőre, de nem is biztos, hogy  <br>megoldható. Gyakorlatilag arról van szó, hogy a jdt debuggerét akarjuk  <br>visszabutítani, amit nem biztos, hogy egyáltalán meg lehet oldani  <br>ilyen mértékben. Amit mi a user számára mutatunk az neki nem egy java  <br>program, de a jdt szerint még az. Így most ez a helyzet:<br><br><br>user                       user<br>  |                          |<br>moka <--> exec.engine <--> jdt <--> jvm<br><br><br>Ha kihagyjuk a jdt-t a következő szükséges elemeket bukjuk (át kell  <br>másolni a kódot onnan kb. a legrosszabb esetben):<br><br>- processz paraméterezése és startolása<br>- VM eventek kezelése (ezt úgy is meg kell csinálnunk, csak most  <br>átrángatjuk a jdt-n az egészet...)<br><br>Én eredetileg úgy képzeltem, hogy ezt mi csináljuk, akkor csak moka-s  <br>debug target és model van, ahol azt mutatunk amit akarunk, a user  <br>eventjei meg az execution engine-be csapódnak be, ami a vm-nek  <br>közvetít. Tehát ez a helyzet állna fenn:<br><br>user <--> moka <--> exec.engine <--> jvm<br><br>Azt emelném ki, hogy itt a user 1 ponton ér a gráfhoz: csak azt látja  <br>amit mi mutatunk, és csak rajtunk keresztül tudja befolyásolni a  <br>jvm-et (amiről meg nem is tudja, hogy létezik).<br><br>Szóval várom az ötleteket, hogy mit tegyünk ezzel kedden/keddig.  <br>Szerintem nem lenne olyan irgalmatlan nagy meló kivenni a jdt-t, de  <br>Boldi és Robi jobban ismeri nálam az aktuális kódot, nekem csak ilyen  <br>architektúrális elképzeléseim meg korábbi tapasztalataim vannak a  <br>tavalyi kísérletekből.<br><br>Üdv,<br>  Máté<br><br>_______________________________________________<br>Modelinterpreter mailing list<br>Modelinterpreter@plc.inf.elte.hu<br>https://plc.inf.elte.hu/mailman/listinfo/modelinterpreter<br></body></html>