Tiếng AnhTiếng PhápTiếng ĐứcTiếng ÝBồ Đào NhaTiếng NgaTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

mips64-linux-gnuabi64-gcov - Trực tuyến trên đám mây

Chạy mips64-linux-gnuabi64-gcov trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh mips64-linux-gnuabi64-gcov có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


gcov - công cụ kiểm tra mức độ phù hợp

SYNOPSIS


gcov [-v|--phiên bản] [-h|--Cứu giúp]
[-a|- tất cả các khối]
[-b|- xác suất đồng bộ]
[-c|--bộ đếm]
[-d|- tiến trình hiển thị]
[-f|- tóm tắt chức năng]
[-i|- định dạng ngay lập tức]
[-l|--long-file-names]
[-m|--demangled-names]
[-n|- không có đầu ra]
[-o|--object-thư mục thư mục | tệp]
[-p|--preserve-path]
[-r|- chỉ tương đối]
[-s|- tiền tố nguồn thư mục]
[-u|- chi nhánh không điều kiện]
các tập tin

MÔ TẢ


gcov là một chương trình bao phủ thử nghiệm. Sử dụng nó cùng với GCC để phân tích các chương trình của bạn
giúp tạo mã hiệu quả hơn, chạy nhanh hơn và khám phá các phần chưa được kiểm tra của
chương trình. Bạn có thể dùng gcov như một công cụ lập hồ sơ để giúp khám phá vị trí tối ưu hóa của bạn
nỗ lực sẽ ảnh hưởng tốt nhất đến mã của bạn. Bạn cũng có thể dùng gcov cùng với hồ sơ khác
dụng cụ, gprof, để đánh giá phần nào trong mã của bạn sử dụng nhiều thời gian tính toán nhất.

Các công cụ lập hồ sơ giúp bạn phân tích hiệu suất mã của mình. Sử dụng một hồ sơ như gcov
or gprof, bạn có thể tìm hiểu một số thống kê hiệu suất cơ bản, chẳng hạn như:

* tần suất thực thi mỗi dòng mã

* dòng mã nào thực sự được thực thi

* mỗi phần mã sử dụng bao nhiêu thời gian tính toán

Khi bạn biết những điều này về cách mã của bạn hoạt động khi được biên dịch, bạn có thể xem từng
mô-đun để xem mô-đun nào nên được tối ưu hóa. gcov giúp bạn xác định nơi làm việc
về tối ưu hóa.

Các nhà phát triển phần mềm cũng sử dụng kiểm tra phạm vi kết hợp với testsuites, để đảm bảo
phần mềm thực sự đủ tốt để phát hành. Các trang web thử nghiệm có thể xác minh rằng một chương trình
hoạt động như mong đợi; một chương trình bảo hiểm kiểm tra để xem mức độ thực hiện của chương trình
testsuite. Sau đó, các nhà phát triển có thể xác định loại trường hợp thử nghiệm nào cần được thêm vào
testsuites để tạo ra cả thử nghiệm tốt hơn và sản phẩm cuối cùng tốt hơn.

Bạn nên biên dịch mã của mình mà không cần tối ưu hóa nếu bạn định sử dụng gcov bởi vì
tối ưu hóa, bằng cách kết hợp một số dòng mã vào một chức năng, có thể không mang lại cho bạn nhiều
thông tin khi bạn cần để tìm kiếm các `` điểm nóng '' nơi mã đang sử dụng rất nhiều
giờ máy tính. Tương tự như vậy, bởi vì gcov tích lũy số liệu thống kê theo dòng (ở mức thấp nhất
độ phân giải), nó hoạt động tốt nhất với phong cách lập trình chỉ đặt một câu lệnh trên mỗi
hàng. Nếu bạn sử dụng các macro phức tạp mở rộng đến các vòng lặp hoặc các cấu trúc điều khiển khác,
số liệu thống kê ít hữu ích hơn --- chúng chỉ báo cáo trên dòng nơi lệnh gọi macro
xuất hiện. Nếu các macro phức tạp của bạn hoạt động giống như các hàm, bạn có thể thay thế chúng bằng nội tuyến
chức năng để giải quyết vấn đề này.

gcov tạo một tệp nhật ký được gọi là sourcefile.gcov cho biết số lần mỗi dòng của
một tập tin nguồn sourcefile.c đã thực hiện. Bạn có thể sử dụng các tệp nhật ký này cùng với gprof đến
hỗ trợ tinh chỉnh hiệu suất của các chương trình của bạn. gprof cung cấp thông tin thời gian cho bạn
có thể sử dụng cùng với thông tin bạn nhận được từ gcov.

gcov chỉ hoạt động trên mã được biên dịch bằng GCC. Nó không tương thích với bất kỳ cấu hình nào khác
hoặc thử nghiệm cơ chế bao phủ.

LỰA CHỌN


-h
--Cứu giúp
Hiển thị trợ giúp về cách sử dụng gcov (trên đầu ra tiêu chuẩn) và thoát ra mà không cần thực hiện bất kỳ thao tác nào
tiếp tục xử lý.

-v
--phiên bản
Hiển thị gcov số phiên bản (trên đầu ra tiêu chuẩn) và thoát ra mà không cần thực hiện bất kỳ thao tác nào
tiếp tục xử lý.

-a
- tất cả các khối
Viết số lượng thực thi riêng lẻ cho mọi khối cơ bản. Thông thường đầu ra gcov
chỉ tính thực thi cho các khối chính của một dòng. Với tùy chọn này, bạn có thể
xác định xem các khối trong một dòng có đang không được thực thi hay không.

-b
- xác suất đồng bộ
Ghi tần số nhánh vào tệp đầu ra và ghi thông tin tóm tắt nhánh vào
đầu ra tiêu chuẩn. Tùy chọn này cho phép bạn xem tần suất từng nhánh trong chương trình của bạn
đã bị lấy đi. Các nhánh vô điều kiện sẽ không được hiển thị, trừ khi -u tùy chọn được đưa ra.

-c
--bộ đếm
Viết tần số nhánh dưới dạng số nhánh được lấy, thay vì phần trăm
của các nhánh đã lấy.

-n
- không có đầu ra
Không tạo gcov tập tin đầu ra.

-l
--long-file-names
Tạo tên tệp dài cho các tệp nguồn được bao gồm. Ví dụ: nếu tệp tiêu đề xh
chứa mã và đã được bao gồm trong tệp AC, sau đó chạy gcov trên hồ sơ AC
sẽ tạo ra một tệp đầu ra có tên là ac ## xhgcov thay vì xhgcov. Điều này có thể là
hữu ích nếu xh được bao gồm trong nhiều tệp nguồn và bạn muốn xem từng
đóng góp. Nếu bạn sử dụng -p tùy chọn, cả tên tệp bao gồm và được bao gồm
sẽ là tên đường dẫn hoàn chỉnh.

-p
--preserve-path
Lưu giữ thông tin đường dẫn đầy đủ dưới tên của .gcov các tập tin. Không có
tùy chọn này, chỉ thành phần tên tệp được sử dụng. Với tùy chọn này, tất cả các thư mục
được sử dụng, với / các ký tự được dịch sang # nhân vật, . các thành phần thư mục đã bị xóa
và không thể thay đổi .. các thành phần được đổi tên thành ^. Điều này rất hữu ích nếu các tập tin nguồn ở
một số thư mục khác nhau.

-r
- chỉ tương đối
Chỉ xuất thông tin về các tệp nguồn có tên đường dẫn tương đối (sau nguồn
tiền tố rửa giải). Các đường dẫn tuyệt đối thường là các tệp tiêu đề hệ thống và phạm vi của bất kỳ
Các chức năng nội tuyến trong đó thường không thú vị.

-f
- tóm tắt chức năng
Tóm tắt đầu ra cho từng chức năng ngoài tóm tắt cấp tệp.

-o thư mục | tệp
--object-thư mục thư mục
--object-file hồ sơ
Chỉ định thư mục chứa tệp dữ liệu gcov hoặc tên đường dẫn đối tượng.
Mô hình .gcno.gcda các tệp dữ liệu được tìm kiếm bằng cách sử dụng tùy chọn này. Nếu một thư mục là
được chỉ định, các tệp dữ liệu nằm trong thư mục đó và được đặt tên theo tên tệp đầu vào,
mà không có phần mở rộng của nó. Nếu một tệp được chỉ định ở đây, các tệp dữ liệu được đặt tên theo
tệp đó, không có phần mở rộng của nó.

-s thư mục
- tiền tố nguồn thư mục
Một tiền tố cho tên tệp nguồn để loại bỏ khi tạo tệp bao phủ đầu ra.
Tùy chọn này hữu ích khi xây dựng trong một thư mục riêng biệt và tên đường dẫn đến
thư mục nguồn không được mong muốn khi xác định tên tệp đầu ra. Lưu ý rằng điều này
phát hiện tiền tố được áp dụng trước khi xác định xem tệp nguồn có phải là tuyệt đối hay không.

-u
- chi nhánh không điều kiện
Khi xác suất nhánh được đưa ra, hãy bao gồm xác suất của các nhánh không điều kiện.
Các nhánh vô điều kiện thường không thú vị.

-d
- tiến trình hiển thị
Hiển thị tiến trình trên đầu ra tiêu chuẩn.

-i
- định dạng ngay lập tức
Xuất tệp gcov ở định dạng văn bản trung gian dễ phân tích cú pháp có thể được sử dụng bởi lcov
hoặc các công cụ khác. Đầu ra là một .gcov mỗi tập tin .gcda tập tin. Không có mã nguồn là
yêu cầu.

Định dạng của trung gian .gcov tệp là văn bản thuần túy với một mục nhập trên mỗi dòng

tập tin:
hàm số: , ,
số lượng: ,
chi nhánh: ,

Ở đâu Là
notexec (Nhánh không được thực thi)
đã thực hiện (Nhánh thực hiện và thực hiện)
nottaken (Nhánh được thực hiện, nhưng không được thực hiện)

Có thể có nhiều các mục nhập trong một gcov trung gian
tập tin. Tất cả các mục sau a liên quan đến tệp nguồn đó
cho đến khi tiếp theo lối vào.

Đây là một mẫu khi -i được sử dụng cùng với -b tùy chọn:

tệp: array.cc
hàm: 11,1, _Z3sumRKSt6vectorIPiSaIS0_EE
chức năng: 22,1, chính
lcount: 11,1
lcount: 12,1
lcount: 14,1
chi nhánh: 14, lấy
lcount: 26,1
chi nhánh: 28, nottaken

-m
--demangled-names
Hiển thị các tên chức năng được phân loại trong đầu ra. Mặc định là hiển thị chức năng bị xáo trộn
tên.

gcov sẽ được chạy với thư mục hiện tại giống như khi bạn gọi
trình biên dịch. Nếu không, nó sẽ không thể định vị các tệp nguồn. gcov sản xuất các tập tin
gọi là mangledname.gcov trong thư mục hiện tại. Chúng chứa thông tin về phạm vi bảo hiểm
của tệp nguồn mà chúng tương ứng với. Một .gcov tệp được tạo cho mỗi nguồn (hoặc
header) tệp chứa mã, được biên dịch để tạo tệp dữ liệu. Các
mangledname một phần của tên tệp đầu ra thường chỉ đơn giản là tên tệp nguồn, nhưng có thể
là một cái gì đó phức tạp hơn nếu -l or -p các tùy chọn được đưa ra. Tham khảo các tùy chọn đó
để biết thêm chi tiết.

Nếu bạn gọi gcov với nhiều tệp đầu vào, đóng góp từ mỗi tệp đầu vào là
tổng kết. Thông thường, bạn sẽ gọi nó với cùng một danh sách các tệp như liên kết cuối cùng của
thực thi của bạn.

Mô hình .gcov các tập tin chứa : các trường được phân tách cùng với mã nguồn chương trình. Định dạng
is

: :

Thông tin khối bổ sung có thể thành công mỗi dòng, khi tùy chọn dòng lệnh yêu cầu.
Mô hình số_thực_hiện is - cho các dòng không chứa mã. Các dòng chưa thực hiện được đánh dấu #####
or ====, tùy thuộc vào việc chúng có thể truy cập được bằng các đường dẫn không đặc biệt hay chỉ
các đường dẫn đặc biệt, chẳng hạn như trình xử lý ngoại lệ C ++, tương ứng.

Một số dòng thông tin ở đầu có số dòng của số không. Những dòng mở đầu này là
của hình thức

-: 0: :

Thứ tự và số lượng của các dòng mở đầu này sẽ được tăng lên như gcov phát triển
tiến độ --- không dựa vào chúng không thay đổi. Sử dụng tag để xác định vị trí cụ thể
lời mở đầu.

Thông tin khối bổ sung có dạng



Mô hình thông tin con người có thể đọc được, nhưng được thiết kế đủ đơn giản để máy phân tích cú pháp
quá.

Khi in phần trăm, 0% và 100% chỉ được in khi các giá trị là chính xác 0% và
100% tương ứng. Các giá trị khác thường được làm tròn thành 0% hoặc 100% là
thay vào đó được in dưới dạng giá trị không biên giới gần nhất.

Khi đang sử dụng gcov, trước tiên bạn phải biên dịch chương trình của mình với hai tùy chọn GCC đặc biệt:
-fprofile-arcs -phải bảo hiểm tốt nhất. Điều này yêu cầu trình biên dịch tạo thêm
thông tin cần thiết của gcov (về cơ bản là biểu đồ luồng của chương trình) và cũng bao gồm
mã bổ sung trong các tệp đối tượng để tạo thông tin cấu hình bổ sung cần thiết
bởi gcov. Các tệp bổ sung này được đặt trong thư mục chứa tệp đối tượng
nằm.

Chạy chương trình sẽ tạo ra đầu ra hồ sơ. Đối với mỗi tệp nguồn
biên dịch với -fprofile-arcs, một người đi kèm .gcda tệp sẽ được đặt trong tệp đối tượng
thư mục.

Chạy gcov với tên tệp nguồn của chương trình của bạn làm đối số bây giờ sẽ tạo ra một danh sách
của mã cùng với tần suất thực thi cho mỗi dòng. Ví dụ: nếu chương trình của bạn
được gọi là tmp.c, đây là những gì bạn thấy khi sử dụng gcov cơ sở:

$ gcc -fprofile-arcs -ftest-cover tmp.c
$ a.out
$ gcov tmp.c
90.00% trong số 10 dòng nguồn được thực thi trong tệp tmp.c
Tạo tmp.c.gcov.

Tập tin tmp.c.gcov chứa đầu ra từ gcov. Đây là một mẫu:

-: 0: Nguồn: tmp.c
-: 0: Đồ thị: tmp.gcno
-: 0: Dữ liệu: tmp.gcda
-: 0: Chạy: 1
-: 0: Chương trình: 1
-: 1: #include
-: 2:
-: 3: int main (void)
1: 4: {
1: 5: int i, tổng số;
-: 6:
1: 7: tổng = 0;
-: 8:
11: 9: cho (i = 0; i <10; i ++)
10: 10: tổng + = i;
-: 11:
1: 12: nếu (tổng cộng! = 45)
#####: 13: printf ("Không thành công \ n");
-: 14: khác
1: 15: printf ("Thành công \ n");
1: 16: trả về 0;
-: 17:}

Khi bạn sử dụng -a tùy chọn, bạn sẽ nhận được số lượng khối riêng lẻ và kết quả đầu ra
như thế này:

-: 0: Nguồn: tmp.c
-: 0: Đồ thị: tmp.gcno
-: 0: Dữ liệu: tmp.gcda
-: 0: Chạy: 1
-: 0: Chương trình: 1
-: 1: #include
-: 2:
-: 3: int main (void)
1: 4: {
1: 4 khối 0
1: 5: int i, tổng số;
-: 6:
1: 7: tổng = 0;
-: 8:
11: 9: cho (i = 0; i <10; i ++)
11: 9 khối 0
10: 10: tổng + = i;
10: 10 khối 0
-: 11:
1: 12: nếu (tổng cộng! = 45)
1: 12 khối 0
#####: 13: printf ("Không thành công \ n");
$$$$$: 13 khối 0
-: 14: khác
1: 15: printf ("Thành công \ n");
1: 15 khối 0
1: 16: trả về 0;
1: 16 khối 0
-: 17:}

Trong chế độ này, mỗi khối cơ bản chỉ được hiển thị trên một dòng - dòng cuối cùng của khối. MỘT
khối nhiều dòng sẽ chỉ đóng góp vào số lượng thực thi của dòng cuối cùng đó và
các dòng sẽ không được hiển thị để chứa mã, trừ khi các khối trước đó kết thúc trên các dòng đó. Các
tổng số thực thi của một dòng được hiển thị và các dòng tiếp theo hiển thị số lượng thực thi
cho các khối riêng lẻ kết thúc trên dòng đó. Sau mỗi khối, nhánh và cuộc gọi được tính
của khối sẽ được hiển thị, nếu -b tùy chọn được đưa ra.

Do cách gọi của các công cụ GCC, số lượng cuộc gọi có thể được hiển thị sau một dòng không có
các khối riêng lẻ. Như bạn có thể thấy, dòng 13 chứa một khối cơ bản không được thực thi.

Khi bạn sử dụng -b tùy chọn, đầu ra của bạn trông giống như sau:

$ gcov -b tmp.c
90.00% trong số 10 dòng nguồn được thực thi trong tệp tmp.c
80.00% trong số 5 nhánh được thực thi trong tệp tmp.c
80.00% trong số 5 nhánh được lấy ít nhất một lần trong tệp tmp.c
50.00% của 2 cuộc gọi được thực hiện trong tệp tmp.c
Tạo tmp.c.gcov.

Đây là một mẫu của một kết quả tmp.c.gcov tập tin:

-: 0: Nguồn: tmp.c
-: 0: Đồ thị: tmp.gcno
-: 0: Dữ liệu: tmp.gcda
-: 0: Chạy: 1
-: 0: Chương trình: 1
-: 1: #include
-: 2:
-: 3: int main (void)
hàm main được gọi là 1 trả về 1 khối được thực thi 75%
1: 4: {
1: 5: int i, tổng số;
-: 6:
1: 7: tổng = 0;
-: 8:
11: 9: cho (i = 0; i <10; i ++)
nhánh 0 chiếm 91% (dự phòng)
nhánh 1 chiếm 9%
10: 10: tổng + = i;
-: 11:
1: 12: nếu (tổng cộng! = 45)
nhánh 0 chiếm 0% (dự phòng)
nhánh 1 chiếm 100%
#####: 13: printf ("Không thành công \ n");
cuộc gọi 0 không bao giờ được thực hiện
-: 14: khác
1: 15: printf ("Thành công \ n");
cuộc gọi 0 đã gọi 1 được trả lại 100%
1: 16: trả về 0;
-: 17:}

Đối với mỗi hàm, một dòng được in cho biết hàm được gọi bao nhiêu lần, như thế nào
nó trả về bao nhiêu lần và bao nhiêu phần trăm khối của hàm đã được thực thi.

Đối với mỗi khối cơ bản, một dòng được in sau dòng cuối cùng của khối cơ bản mô tả
nhánh hoặc lệnh gọi kết thúc khối cơ bản. Có thể có nhiều nhánh và cuộc gọi
được liệt kê cho một dòng nguồn nếu có nhiều khối cơ bản kết thúc trên dòng đó.
Trong trường hợp này, mỗi nhánh và cuộc gọi là một số cho sẵn. Không có cách nào đơn giản để
ánh xạ các nhánh này và gọi lại các cấu trúc nguồn. Nói chung, mặc dù, thấp nhất
nhánh hoặc cuộc gọi được đánh số sẽ tương ứng với cấu trúc ngoài cùng bên trái trên đường nguồn.

Đối với một nhánh, nếu nó được thực thi ít nhất một lần, thì một tỷ lệ phần trăm cho biết số lượng
số lần nhánh được thực hiện chia cho số lần nhánh được thực hiện sẽ là
đã in. Nếu không, thông báo "không bao giờ được thực thi" được in.

Đối với một cuộc gọi, nếu nó được thực hiện ít nhất một lần, thì một tỷ lệ phần trăm cho biết số
số lần cuộc gọi được trả về chia cho số lần cuộc gọi được thực hiện sẽ là
đã in. Điều này thường sẽ là 100%, nhưng có thể ít hơn đối với các hàm gọi "thoát" hoặc
"longjmp", và do đó có thể không quay lại mỗi khi chúng được gọi.

Số lần thực thi là tích lũy. Nếu chương trình ví dụ được thực thi lại mà không có
di chuyển cái .gcda tệp, số lần mỗi dòng trong nguồn là
được thực thi sẽ được thêm vào kết quả của (các) lần chạy trước đó. Điều này có thể hữu ích
theo một số cách. Ví dụ, nó có thể được sử dụng để tích lũy dữ liệu qua một số
chương trình chạy như một phần của bộ xác minh thử nghiệm hoặc để cung cấp chính xác hơn về lâu dài
thông tin về một số lượng lớn các chương trình đang chạy.

Dữ liệu trong .gcda tập tin được lưu ngay lập tức trước khi chương trình thoát. Cho mỗi
tập tin nguồn được biên dịch với -fprofile-arcs, mã cấu hình đầu tiên cố gắng đọc trong một
hiện tại .gcda tập tin; nếu tệp không khớp với tệp thực thi (số lượng cơ bản khác nhau
số khối) nó sẽ bỏ qua nội dung của tệp. Sau đó, nó sẽ thêm vào trong quá trình thực thi mới
đếm và cuối cùng ghi dữ liệu vào tệp.

Sử dụng gcov với GCC Tối ưu hóa

Nếu bạn định sử dụng gcov để giúp tối ưu hóa mã của bạn, trước tiên bạn phải biên dịch chương trình của mình
với hai tùy chọn GCC đặc biệt: -fprofile-arcs -phải bảo hiểm tốt nhất. Ngoài ra, bạn có thể
sử dụng bất kỳ tùy chọn GCC nào khác; nhưng nếu bạn muốn chứng minh rằng mọi dòng trong chương trình của bạn
đã được thực thi, bạn không nên biên dịch cùng lúc với tính năng tối ưu hóa. Trên một số máy
trình tối ưu hóa có thể loại bỏ một số dòng mã đơn giản bằng cách kết hợp chúng với các dòng khác.
Ví dụ, mã như thế này:

nếu (a! = b)
c = 1;
khác
c = 0;

có thể được biên dịch thành một lệnh trên một số máy. Trong trường hợp này, không có cách nào để
gcov để tính toán số lượng thực thi riêng biệt cho mỗi dòng vì không có
mã cho mỗi dòng. Vì thế gcov đầu ra trông giống như thế này nếu bạn đã biên dịch chương trình
với tối ưu hóa:

100: 12: nếu (a! = B)
100: 13: c = 1;
100: 14: khác
100: 15: c = 0;

Kết quả cho thấy rằng khối mã này, được kết hợp bằng cách tối ưu hóa, được thực thi 100 lần.
Theo một nghĩa nào đó, kết quả này đúng, vì chỉ có một lệnh đại diện cho
cả bốn dòng này. Tuy nhiên, đầu ra không cho biết kết quả bao nhiêu lần
là 0 và bao nhiêu lần kết quả là 1.

Các hàm nội dòng có thể tạo ra số lượng dòng không mong muốn. Số lượng dòng được hiển thị cho
mã nguồn của hàm inlineable, nhưng những gì được hiển thị phụ thuộc vào vị trí của hàm
nội tuyến, hoặc nếu nó hoàn toàn không được nội tuyến.

Nếu hàm không có trong dòng, trình biên dịch phải tạo ra một bản sao nằm ngoài dòng của
, trong bất kỳ tệp đối tượng nào cần nó. Nếu như fileA.ofileB.o cả hai đều chứa trong số
các nội dung dòng của một hàm nội dòng cụ thể, chúng cũng sẽ bao gồm cả
số lượng cho chức năng đó. Khi nào fileA.ofileB.o được liên kết với nhau, trình liên kết sẽ,
trên nhiều hệ thống, hãy chọn một trong những phần thân ngoài dòng cho tất cả các lệnh gọi đến hàm đó,
và loại bỏ hoặc bỏ qua cái khác. Thật không may, nó sẽ không xóa các bộ đếm phạm vi bảo hiểm
cho cơ quan chức năng không sử dụng. Do đó, khi thiết bị, tất cả ngoại trừ một công dụng của chức năng đó
sẽ hiển thị số lượng không.

Nếu hàm được nội tuyến ở một số vị trí, cấu trúc khối ở mỗi vị trí có thể
không giống nhau. Ví dụ: một điều kiện bây giờ có thể được tính toán tại thời điểm biên dịch trong
Một số trường hợp. Bởi vì phạm vi của tất cả các công dụng của hàm nội tuyến sẽ được hiển thị
đối với các dòng nguồn giống nhau, bản thân số lượng dòng có thể có vẻ không nhất quán.

Các ứng dụng chạy lâu có thể sử dụng cơ sở "_gcov_reset" và "_gcov_dump" để
hạn chế thu thập hồ sơ cho khu vực chương trình quan tâm. Đang gọi "_gcov_reset (void)"
sẽ xóa tất cả các bộ đếm hồ sơ về XNUMX và việc gọi "_gcov_dump (void)" sẽ khiến
thông tin hồ sơ được thu thập tại thời điểm đó sẽ được chuyển đến .gcda các tập tin đầu ra.

Sử dụng mips64-linux-gnuabi64-gcov trực tuyến bằng các dịch vụ onworks.net


Ad


Ad

Các chương trình trực tuyến Linux & Windows mới nhất