我是靠谱客的博主 孝顺大船,最近开发中收集的这篇文章主要介绍muduo库Thread.cc中“...assert(n == 6); ...“报错,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

完整代码如下:

//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); ...“报错所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部