[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