如何使用SiPESC平台错误管理系统中的断言宏

SiPESC平台使用自己的断言宏来替代系统和Qt提供的断言宏,除了基本的判断指定条件是否成立外,SiPESC断言还在条件判断失败时显示当时的运行环境,包括开发人员制定的环境描述信息以及运行堆栈信息等。

SiPESC平台的断言系统包括以下几个宏:

这三个宏中,M_ASSERT可以任意使用,可以取代assert和Q_ASSERT。而M_ASSERT_PUSH和M_ASSERT_POP必须在一个函数中成对使用。下面是一个简单的例子:
void anotherFunc()
  {
  M_ASSERT(1, "This will succeed");
  M_ASSERT(0, "This will fail and return directly to M_ASSERT_POP");
  printf("This line will never be reached!\n");
  }

bool testFunc()
  {
  M_ASSERT_PUSH(success, "testFunc");
  anotherFunc();
  M_ASSERT_POP(success);
  return success;
  }