gpt4 book ai didi

c++ - 解释类对象的 Gcov 报告

转载 作者:太空宇宙 更新时间:2023-11-04 16:17:26 25 4
gpt4 key购买 nike

我正在对 cashier 类(class)进行代码覆盖,我的老师对报告的含义进行了非常简短的教学,我认为这对我的软件工程技能的发展非常重要,因此我会在解释以下 gcov 报告时需要您的建议。如果有任何有助于我理解 gcov 的链接或文章,我将不胜感激

谢谢

头文件

#ifndef CASHIER_H
#define CASHIER_H
#include <string>
using namespace std;


class cashier
{
public:

void setID(string);
string getID();

void setPassword(string);
string getPassword();

void settries(int);
int gettries();
void increase_tries();

private:
string ID;
string Password;
int tries;



};

#endif /* CASHIER_H */

执行文件

#include "cashier.h"




void cashier::setID(string value)
{
this->ID = value;
}

void cashier::setPassword(string value)
{

this->Password = value;

}

string cashier::getID()
{
return this->ID;
}

string cashier::getPassword()
{
return this->Password;
}

void cashier::settries(int value)
{
this->tries=value;
}
int cashier::gettries()
{
return this->tries;
}
void cashier::increase_tries()
{
this->tries = this->tries + 1 ;

}

我在命令提示符中键入以下命令以在类上使用 gcov

gcov -b cashier.gnco

我得到了如下结果A

File 'cashier.cpp'
Lines executed:100.00% of 18 //what does the 18 mean
No branches //what does no branches mean
Calls executed:100.00% of 4 // what does 4 mean ??
cashier.cpp:creating 'cashier.cpp.gcov'

File '/usr/include/c++/4.4/bits/basic_string.h' // Where did this come from ??
Lines executed:0.00% of 2
No branches
Calls executed:0.00% of 1
/usr/include/c++/4.4/bits/basic_string.h:creating 'basic_string.h.gcov

我输入以下命令

gcov -f cashier.gnco

我得到了如下结果B

Function '_ZN7cashier8settriesEi' // does this refer to the function :settries
Lines executed:100.00% of 3 // my teacher doesnt think so but i feel it refer
//to it , who is correct??

Function '_ZN7cashier8gettriesEv'
Lines executed:100.00% of 2

Function '_ZN7cashier14increase_triesEv'
Lines executed:100.00% of 3

Function '_ZN7cashier11getPasswordEv'
Lines executed:100.00% of 2

Function '_ZN7cashier5getIDEv'
Lines executed:100.00% of 2

Function '_ZNSsaSERKSs'
Lines executed:0.00% of 2

Function '_ZN7cashier11setPasswordESs'
Lines executed:100.00% of 3

Function '_ZN7cashier5setIDESs'
Lines executed:100.00% of 3

File 'cashier.cpp'
Lines executed:100.00% of 18
cashier.cpp:creating 'cashier.cpp.gcov'

File '/usr/include/c++/4.4/bits/basic_string.h'
Lines executed:0.00% of 2
/usr/include/c++/4.4/bits/basic_string.h:creating 'basic_string.h.gcov'

我对结果 A 的问题

1) 18 是什么意思及其在 Lines executed:100.00% of 18

中的意义

2) no branches 是什么意思

3) 4 是什么意思及其在 Calls executed:100.00% of 4 中的意义

4)整段是什么意思

 File '/usr/include/c++/4.4/bits/basic_string.h'
Lines executed:0.00% of 2
No branches
Calls executed:0.00% of 1
/usr/include/c++/4.4/bits/basic_string.h:creating 'basic_string.h.gcov

我对结果 B 的问题

1) 所有的函数名称等:是正确的??

2) Lines executed:100.00% of 3 for the function:'_ZN7cashier8settriesEi'

中的 3 是什么意思

最佳答案

结果 A:

  1. 您的 18 行代码在启动程序后执行(与 cashier.cpp 相关)。
  2. 您的代码没有任何条件。
  3. 4 行是从 4 个仪器执行的(与 cashier.h 相关)
  4. std::string 的某些行成为覆盖范围的一部分。您应该从覆盖率报告中排除 std::string(gcov -e)

结果 B:

  1. 3 行是从 3 个检测中执行的。

附言 如果你对 gcov 感兴趣,你可以安装 lcov - 它是 gcov 报告上的 gui 表示。

关于c++ - 解释类对象的 Gcov 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com