概述
完整代码如下:
//Thread.cc
void CurrentThread::cacheTid()
{
if (t_cachedTid == 0)
{
t_cachedTid = detail::gettid();
int n = snprintf(t_tidString, sizeof t_tidString, "%5d ", t_cachedTid);
assert(n == 6); (void) n;
}
}
刚学习muduo库源码的时候还不知道为什么要有这样的断言,认为这显然是正确的啊,直到真遇到了断言报错。一开始觉得莫名其妙的时候就把它注释了,再次运行的时候又在另一个地方断言错误:
//Logging.cc
class T
{
public:
T(const char* str, unsigned len)
:str_(str),
len_(len)
{
assert(strlen(str) == len_);
}
const char* str_;
const unsigned len_;
};
它们的共性都是字符串长度相关,以我的直觉,认为应该是系统资源不够了还是怎么样,毕竟我的虚拟机开了很多,也执行了很多操作,所以我就重启一遍,问题解决~。
这算是一个很奇怪的bug了,记录一下,不知有没有帮助。
最后
以上就是孝顺大船为你收集整理的muduo库Thread.cc中“...assert(n == 6); ...“报错的全部内容,希望文章能够帮你解决muduo库Thread.cc中“...assert(n == 6); ...“报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复