[OSy] Par pripominek a dotazu

M. Ficek m.ficek at volny.cz
Wed Nov 1 16:37:33 CET 2006


Ahoj kolegove,

rad bych se zeptal na par malickosti:

1) podarilo se nekomu vyvolat break tak, aby v branch delay slotu byla 
instrukce a doslo tak k panice? Testy toto netestuji, ale osobne by me 
to docela zajimalo, jak to vyvolat. Zkousel jsem nekolik breaku za 
sebou, nop a podobne, ale nic.

2) jak ignorovat vyjimku Break pointu asi kazdy nasel v manualu (str 
138). Na cvikach nas varovali, ze nemame na stack hrabat pomoci offsetu 
(coz se tady primo nabizi). Zkousel jsem delat strukturu se vsemi 
registry, co se ukladaji, ale naprosto se mi nedari pak pristoupit na 
nejakou jeji polozku zpusobem napr. context->epc+=4
   Nejsem zadny C guru a moje predstava implementace struct je takova, 
ze v poradi jak pisu jednotlive polozky, tak se ukladaji do souvisleho 
bloku v pameti a stejne je tam i najdu. Takze pokud predavam int* jako 
ukazatel na vrchol zasobniku, kde jsou nastouchane jednotlive registry a 
ja k teto pameti zkusim pristoupit tou strukturou, cekal bych, ze by se 
mohlo povest.
   Vzhledem k tomu, ze sem tak sahodlouze pisu, tak se mi to samozrejme 
nepovedlo. Nebyla by nejaka rada? Nebo to mam nechat pres ten offset??

3) v souboru sys.h na radce 324 je instrukce
    	sw     $v1, OFFSET_BADVADDR($sp)

   uvadim i sirsi kontext:
         lw     $v1, OFFSET_SAFE_EPC($v0)
         sw     $v1, OFFSET_EPC($sp)
         lw     $v1, OFFSET_SAFE_CAUSE($v0)
         sw     $v1, OFFSET_BADVADDR($sp)
         lw     $v1, OFFSET_SAFE_BADVADDR($v0)
         sw     $v1, OFFSET_BADVADDR($sp)
         lw     $v1, OFFSET_SAFE_STATUS($v0)
         sw     $v1, OFFSET_STATUS($sp)

   nemelo by tam na byt
    	sw     $v1, OFFSET_CAUSE($sp)
   ?
   Nebo je to nejaky trik a neco mi uchazi ?

4)je treba v panic funkci dumpovat registry
   a) vsechny
   b) pomoci printk apod.
   c) staci pomoci __reg_view
   Mam tam zatim __reg_view, ale to je debugovaci nastroj MSIMu... 
nejaky jiny zpusob??


Dekuji za kazdou radu a podnetne odpovedi.
Michal



More information about the NSWI004 mailing list