2021-05 [cvičenie] výnimky - otázky a odpovede
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Cvičenie prebieha formou otázok a odpovedí k predchádzajúcemu labu zameranému na výnimky, obsluhu prerušení (traps) a alarmu v RISC-V systéme. Rieši sa spôsob vypisovania hodnoty registra A0 pomocou GDB príkazov (print/$reg, info reg, layout regs) namiesto ručného ukladania do premennej. Diskutuje sa použitie GDB multiarch klienta a možnosť jeho prepojenia s grafickými nadstavbami ako Visual Studio Code. Vysvetľuje sa načítavanie symbolov a debug informácií jadra do pamäte cez linker skript kernel.ld, keďže aktuálne chýba sekcia s dwarf/debug dátami. Rozoberá sa test č. 3, ktorý overuje, či zostáva zachovaná hodnota registra A0 pri prechode cez systémové volanie a obsluhu alarmu (súvisiace so scratch registrom), a na záver sa vysvetľuje štruktúra a flow assembly kódu vo funkcii main vrátane skokov, volania printf a návratu cez inštrukciu ret.
- - Register A0 sa odporúča vypisovať priamo cez GDB (print $a0, info reg, layout regs), nie manuálnym ukladaním do premennej.
- - GDB funguje ako klient-server (KVM spúšťa GDB server, druhé okno je klient pripojený cez port), architektúra by mala byť pre klienta transparentná.
- - Načítanie jadra a jeho symbolov do pamäte určuje linker skript kernel.ld, ktorý momentálne neobsahuje debug (dwarf) sekcie.
- - Test 3 overuje, či zostáva zachovaná hodnota registra A0 po prechode cez obsluhu alarmu (sig return) – súvisí s dočasným uložením do sscratch pri systémovom volaní.
- - Úlohou študentov je nájsť pomocou GDB miesto v kóde, kde sa hodnota A0 nesprávne mení, a opraviť to.
- - Konzultácie k testu prebehnú v utorok naživo, otázky možno klásť aj priebežne na Discorde pri jednotlivých labových diskusiách.
- - Vysvetlený flow assembly kódu vo funkcii main: prológ, volanie printf cez jump, návrat cez inštrukciu ret s návratovou adresou na zásobníku, nastavenie argumentu pre exit.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky