首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gcov不使用p线程,WSL-2,Clion

gcov不使用p线程,WSL-2,Clion
EN

Stack Overflow用户
提问于 2020-10-29 17:47:58
回答 1查看 310关注 0票数 1

背景:如果我不使用任何线程或只生成1线程,这似乎很好,这使得这更令人困惑。

Clion项目这里

问题:我设置了一个基本的示例项目,它启动2个线程,并从主线程、线程2和线程3打印到控制台。

代码语言:javascript
运行
复制
#include <iostream>
#include <thread>

void thread1()
{
    for(int i = 0; i < 10000; i++)
    {
        std::cout << "thread1" << std::endl;
    }
}

void thread2()
{
    for(int i = 0; i < 10000; i++)
    {
        std::cout << "thread2" << std::endl;
    }
}

int main()
{
    std::cout << "Hello, World!" << std::endl;
    std::thread threadObj(thread1);
    std::thread threadObj2(thread2);
    for(int i = 0; i < 10000; i++)
    {
        std::cout<<"MainThread"<<std::endl;
    }
    threadObj.join();
    std::cout<<"Exit of Main function"<<std::endl;
    return 0;
}

汇编使用:

代码语言:javascript
运行
复制
--coverage -pthread -g -std=gnu++2a

当我在clion中使用"Run 'EvalTest‘with Coverage“运行时,我会得到以下错误:

找不到代码覆盖率数据

因此,它不会产生所需的gcov文件,但如果我注释掉以下代码行,它可以正常工作:

代码语言:javascript
运行
复制
int main()
{
    std::cout << "Hello, World!" << std::endl;
    std::thread threadObj(thread1);
//    std::thread threadObj2(thread2);
    for(int i = 0; i < 10000; i++)
    {
        std::cout<<"MainThread"<<std::endl;
    }
    threadObj.join();
    std::cout<<"Exit of Main function"<<std::endl;
    return 0;
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-29 21:09:08

需要执行threadObj.join()和线程Obj2.join()。所以代码看起来是:

代码语言:javascript
运行
复制
int main()
{
    std::cout << "Hello, World!" << std::endl;
    std::thread threadObj(thread1);
    std::thread threadObj2(thread2);
    for(int i = 0; i < 10000; i++)
    {
        std::cout<<"MainThread"<<std::endl;
    }
    threadObj.join();
    threadObj2.join();  // need to join both thread for gcov to work properly
    std::cout<<"Exit of Main function"<<std::endl;
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64596606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档