2020/02/08

2020/02/08

  • バグ直し
  • OSの課題効かれたのでといた

# バグ

  • なんか確保されてないアドレス領域を参照してるらしい
  • Gearef(cbc_context,vm)で死んでる

# 解決

  • 生成したDataGearをContextに書き戻してなかった
    • createでやってると思ってたのでコメントにしてた…
1
2
3
4
5
6
7
8
 __ncode cbc_switchuvm_dummy(struct Context* cbc_context, struct proc* proc){

     struct vm* vm = createvm_impl(cbc_context);
-    //Gearef(cbc_context, vm)->vm = (union Data*) vm;
+    Gearef(cbc_context, vm)->vm = (union Data*) vm;
     Gearef(cbc_context, vm)->p = proc;
     Gearef(cbc_context, vm)->next = C_vm_void_ret ;
     goto meta(cbc_context, vm->switchuvm);

# CbCの鉄則

  • createなんとかでDataGearは生成される
    • ただの構造体だから!!
  • Contextのスロットに保存するにはGearefで参照する必要がある
  • 複数実装を共存させるにはCotextのスロットを増やさないとだめそう
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy