当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-06-15 12:47 
头像

注册: 2009-05-30 19:19
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
make时的错误
proc_ctrl.cc:654: error: ‘CheckPDPTR’ was not declared in this scope
proc_ctrl.cc:668: error: ‘CheckPDPTR’ was not declared in this scope
make[1]: *** [proc_ctrl.o] Error 1

Google无果,还望哪位大哥指点一二
GCC版本gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3



自己解决:
代码:
650行开始
#if BX_SUPPORT_VMX
      VMexit_CR3_Write(i, val_32);
      if (BX_CPU_THIS_PTR cr0.get_PG() && BX_CPU_THIS_PTR cr4.get_PAE() &&
!long_mode()) {
        if (! CheckPDPTR(val_32)) {
          BX_ERROR(("SetCR3(): PDPTR check failed !"));
          exception(BX_GP_EXCEPTION, 0, 0);
        }
      }
      SetCR3(val_32);
      BX_INSTR_TLB_CNTRL(BX_CPU_ID, BX_INSTR_MOV_CR3, val_32);
      break;
#endif
#if BX_CPU_LEVEL > 3
    case 4: // CR4
#if BX_SUPPORT_VMX
      val_32 = VMexit_CR4_Write(i, val_32);
      if (BX_CPU_THIS_PTR cr0.get_PG() && (val_32 & (1<<5)) != 0 /* PAE */
&& !long_mode()) {
        if (! CheckPDPTR(BX_CPU_THIS_PTR cr3)) {
          BX_ERROR(("SetCR4(): PDPTR check failed !"));
          exception(BX_GP_EXCEPTION, 0, 0);
        }
      }
      // Protected mode: #GP(0) if attempt to write a 1 to
      // any reserved bit of CR4
      if (! SetCR4(val_32))
        exception(BX_GP_EXCEPTION, 0, 0);
      break;
#endif
#endif
    default:
      BX_ERROR(("MOV_CdRd: #UD - control register %d index out of range",
i->nnn()));
      exception(BX_UD_EXCEPTION, 0, 0);
  }
}

683结束


_________________
哇吓吓吓吓...


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-07-11 9:24 

注册: 2007-04-15 23:10
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
多谢,贴个 diff 格式的,看变更清楚些


最后由 moonese 编辑于 2009-07-11 9:50,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-07-11 9:48 

注册: 2007-04-15 23:10
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
代码:
@@ -649,7 +649,6 @@
     case 3: // CR3
 #if BX_SUPPORT_VMX
       VMexit_CR3_Write(i, val_32);
-#endif
       if (BX_CPU_THIS_PTR cr0.get_PG() && BX_CPU_THIS_PTR cr4.get_PAE() && !long_mode()) {
         if (! CheckPDPTR(val_32)) {
           BX_ERROR(("SetCR3(): PDPTR check failed !"));
@@ -659,11 +658,11 @@
       SetCR3(val_32);
       BX_INSTR_TLB_CNTRL(BX_CPU_ID, BX_INSTR_MOV_CR3, val_32);
       break;
+#endif
 #if BX_CPU_LEVEL > 3
     case 4: // CR4
 #if BX_SUPPORT_VMX
       val_32 = VMexit_CR4_Write(i, val_32);
-#endif
       if (BX_CPU_THIS_PTR cr0.get_PG() && (val_32 & (1<<5)) != 0 /* PAE */ && !long_mode()) {
         if (! CheckPDPTR(BX_CPU_THIS_PTR cr3)) {
           BX_ERROR(("SetCR4(): PDPTR check failed !"));
@@ -676,6 +675,7 @@
         exception(BX_GP_EXCEPTION, 0, 0);
       break;
 #endif
+#endif
     default:
       BX_ERROR(("MOV_CdRd: #UD - control register %d index out of range", i->nnn()));
       exception(BX_UD_EXCEPTION, 0, 0);


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-07-11 10:41 

注册: 2007-04-15 23:10
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
另外试了下最新的cvs snapshot,已经解决了,看代码略有不同
http://bochs.sourceforge.net/cvs-snapsh ... 704.tar.gz


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-07-16 10:58 
头像

注册: 2009-05-30 19:19
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
现在也明白了, 正式版有时候不如cvs/svn的版本...


_________________
哇吓吓吓吓...


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-07-21 15:57 

注册: 2008-07-26 14:13
帖子: 83
送出感谢: 0 次
接收感谢: 0 次
这个说啥子哦,看不懂


页首
 用户资料  
 
7 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-08-15 18:46 

注册: 2008-10-27 21:08
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
请问能不能解释一下这个是怎么搞的?上来就一堆代码我看不懂啊?


页首
 用户资料  
 
8 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-08-15 19:03 

注册: 2008-10-27 21:08
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
我又看明白了,问题已经解决了,谢谢啦


页首
 用户资料  
 
9 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-10-09 19:19 
头像

注册: 2008-07-17 10:55
帖子: 663
送出感谢: 0 次
接收感谢: 1
en,看一看


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [已解决] Make bochs2.4.1出错
帖子发表于 : 2009-10-10 10:15 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
mark :em11


_________________

My blog


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译