2012-11-14 27 views
20

Tôi đã sử dụng lcov để tạo thông tin vùng phủ sóng trong dự án của mình. Nhưng tôi chỉ có thể nhận được thông tin về mức độ phù hợp và thông tin về mức độ phù hợp của chức năng.Lcov: không thể thu thập số liệu thống kê chi tiết về chi nhánh

lcov version:1.10, gcov version:4.4.5 

Các lệnh tôi sử dụng là:

lcov -d $OSPL_HOME/src -d $OSPL_OUTER_HOME/src -c -o /work/li/log/lcov-raw.info 

lcov -r /work/li/log/lcov-raw.info "*.ll" "*.yy" "*.yy.c" yaccpar "TAO161*" "/usr/include/*" "*/testsuite/*" -o /work/li/log/lcov.info 

Sau hai lệnh dưới đây, tôi nhận được kết quả là:

Deleted 23 files 

Writing data to /work/li/log/lcov.info 

Summary coverage rate: 

    lines......: 45.4% (65087 of 143496 lines) 

    functions..: 46.1% (5575 of 12102 functions) 

    **branches...: no data found** 

Vì vậy, không có kết quả bảo hiểm chi nhánh. Tại sao? Vậy chuyện gì đã xảy ra? Và làm thế nào điều này có thể xảy ra? Tôi bối rối ở đây.

Sau khi lệnh đầu tiên, tôi nhận được rất nhiều lời cảnh báo như thế này:

geninfo: WARNING: cannot find an entry for ..#..#code#accum.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#at.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#autodef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#copyof.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#debug.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#define.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#dump.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#error.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expand.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#expr.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#if.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#include.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#io.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#is.c.gcov in .gcno file, s kipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#line.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#pragma.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#preprocess.c.gcov in .gcnofile, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#set.c.gcov in .gcno file,skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#sharp.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#symtbl.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#undef.c.gcov in .gcno file, skipping file! 
geninfo: WARNING: cannot find an entry for ..#..#code#while.c.gcov in .gcno file , skipping file! 
+2

Vui lòng thêm câu trả lời làm câu trả lời cho câu hỏi của riêng bạn. Tôi tìm thấy nó rất hữu ích. – nwellnhof

+0

Tôi đã thêm câu trả lời cho cộng đồng wiki dưới đây. Nếu tác giả bao giờ quay trở lại câu hỏi này, anh/cô ấy có thể thêm câu trả lời của riêng mình và đắm mình trong phần thưởng. –

+0

Bản sao có thể có của [tạo dữ liệu chi nhánh cho lcov] (http://stackoverflow.com/questions/12360167/generating-branch-coverage-data-for-lcov) – Hcorg

Trả lời

25

tôi đã nhận được email từ Peter Oberparleiter, tác giả của geninfo. Tôi nhận được câu trả lời như sau.

LCOV 1.10 có bảo vệ chi nhánh bị vô hiệu hóa theo mặc định. Bạn có thể bật tính năng này bằng cách sửa đổi tệp lcovrc (xem man lcovrc) hoặc bằng cách chỉ định --rc lcov_branch_coverage=1 khi chạy lcov/genhtml.

Nếu bạn không sử dụng LCOV 1.10 và vẫn không nhận được bảo hiểm chi nhánh, có thể bạn là phiên bản của GCC không cung cấp thông tin này.

(Câu trả lời trên đã sai lầm thêm vào câu hỏi bằng cách the author.)

11

giải pháp đưa ra ở trên:

--rc lcov_branch_coverage=1 

sử dụng cho cả lcov và genhtml, làm việc cho tôi.

Các vấn đề liên quan