[Modelinterpreter] jdt + moka launch

Máté Karácsony kmate at elte.hu
Thu Apr 30 18:26:05 CEST 2015


Ha felső graf elcsúszna: a user a moka és jdt csúcsokba van behúzva!

Üdv,
 Máté

----- Eredeti üzenet -----
Feladó: kmate at caesar.elte.hu
Feladva: 2015.04.30. 18:15
Címzett: modelinterpreter at plc.inf.elte.hu
Tárgy: [Modelinterpreter] jdt + moka launch

Sziasztok!

Az a helyzet, hogy minél tovább nézem, annál szerencsétlenebbnek tűnik  
ez a kettős debug launch. Ki is fejteném, hogy miért.

Itt ugye a következő objektumok játszanak szerepet az EDF miatt:

- debug model: mit lát a user
   - jdt: szokásos process/thread/stack az alap
   - moka: amit akarunk azt teszünk oda, a fenti felosztásra vetítve,  
mert az EDF azt a hierarchiát adja, a moka pedig egészíti ki; jelenleg  
semmit nem teszünk bele

- debug target: hogyan műklödik,  
pause/resume/step/terminate/disconnect stb. eventek
   - jdt: a belső VM-re alkalmazza és azzal szinkronban teszi a  
dolgokat, annak eseményeire reagál
   - moka: az execution engine játsza a VM szerepét, az kap a UI-tól  
eventeket és fordítva

- source lookup: ha egy stack frame-en, vagy a neki megfelelő EDF  
model objektumodon állsz, megmondja mit kell editorban elővenni
   - jdt: java class/forrás fájlok
   - moka: ha a saját debug modeled építésekor kitöltöd a  
MokaStackFrame-en a modelObject mezőt, elvileg magától arra ugrik

Na most mivel két launcher van, minden felsorolt dologból kettő van. Emiatt:

- ezeket szinkronban kéne tartani, ami az önmagukban is bonyolult  
event flow-juk miatt nem hiszem, hogy gyerekjáték
- a jdt modeljét el kéne rejteni, és a source lookupot is
- sőt, meg kéne gátolni, hogy a jdt targetjébe a user közvetlenül  
eventet küldjön (terminate, disconnect, suspend, resume, stb..)
- és el kéne érni, hogy csak a moka debug target vezérelje a jdt debug  
targetet az execution engine-en keresztül

A source lookupot majdnem sikerült egy kommittal megoldanom (r815), de  
nem stabil a dolog, a második vagy későbbi indításokra már megint  
dobálja fel az ablakokat és nem érdekli valahogy, mit állítottam be.

A többire nem nagyon van ötletem - egyelőre, de nem is biztos, hogy  
megoldható. Gyakorlatilag arról van szó, hogy a jdt debuggerét akarjuk  
visszabutítani, amit nem biztos, hogy egyáltalán meg lehet oldani  
ilyen mértékben. Amit mi a user számára mutatunk az neki nem egy java  
program, de a jdt szerint még az. Így most ez a helyzet:


user                       user
  |                          |
moka <--> exec.engine <--> jdt <--> jvm


Ha kihagyjuk a jdt-t a következő szükséges elemeket bukjuk (át kell  
másolni a kódot onnan kb. a legrosszabb esetben):

- processz paraméterezése és startolása
- VM eventek kezelése (ezt úgy is meg kell csinálnunk, csak most  
átrángatjuk a jdt-n az egészet...)

Én eredetileg úgy képzeltem, hogy ezt mi csináljuk, akkor csak moka-s  
debug target és model van, ahol azt mutatunk amit akarunk, a user  
eventjei meg az execution engine-be csapódnak be, ami a vm-nek  
közvetít. Tehát ez a helyzet állna fenn:

user <--> moka <--> exec.engine <--> jvm

Azt emelném ki, hogy itt a user 1 ponton ér a gráfhoz: csak azt látja  
amit mi mutatunk, és csak rajtunk keresztül tudja befolyásolni a  
jvm-et (amiről meg nem is tudja, hogy létezik).

Szóval várom az ötleteket, hogy mit tegyünk ezzel kedden/keddig.  
Szerintem nem lenne olyan irgalmatlan nagy meló kivenni a jdt-t, de  
Boldi és Robi jobban ismeri nálam az aktuális kódot, nekem csak ilyen  
architektúrális elképzeléseim meg korábbi tapasztalataim vannak a  
tavalyi kísérletekből.

Üdv,
  Máté

_______________________________________________
Modelinterpreter mailing list
Modelinterpreter at plc.inf.elte.hu
https://plc.inf.elte.hu/mailman/listinfo/modelinterpreter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://plc.inf.elte.hu/pipermail/modelinterpreter/attachments/20150430/00d0c61c/attachment.html>


More information about the Modelinterpreter mailing list