C ++错误读取寄存器值,无法调试

时间:2015-06-23 19:53:44

标签: c++ exception runtime-error cpu-registers

我使用Visual Studio 2012 C ++ Express解决了这段代码的问题:

double clearbuffer(double buffid)
{
  CBuffer*buff = (CBuffer*)buffers.item((int)buffid);
  if(buff == NULL)return 0;
  buff->clear();
  return 1;
}

基本上这个函数在我的C ++ Game Server上经常被调用。它用于在向其写入任何新数据之前清除缓冲区(缓冲区用于通过Internet发送数据)。问题是,这个错误是随机发生的。它发生的时间我无法看到它是异常还是什么,因为一旦它出现我必须停止使用键盘快捷键或其他东西进行调试。

但是,在本地人中,我注意到了buffid变量的值:

  

buffid -------错误读取寄存器值

它的值为“读取寄存器值错误”。是否有可能出现这种情况?我假设这是一次访问违规,但我不确定。

在我停止执行之前,我注意到调试器在此行停止了:

  

buff->清除();

我无法调试它,因为它很少发生,它导致我的服务器完全停止,因此必须重新启动它,这会中断与其连接的客户端的游戏玩法。

如果我需要提供更多代码,请告诉我,我会快速编辑我的第一篇文章。

0 个答案:

没有答案