Tôi đang cố gắng sử dụng gcov trên Linux (Ubuntu) để xem tần suất thực thi cho từng dòng nguồn.gcov không hiển thị bất kỳ dữ liệu bảo hiểm nào
Tôi đã thêm cờ sau đây để trình biên dịch gcc của tôi và cờ mối liên kết,
CCFLAGS = -fprofile-arcs -ftest-coverage
LDFLAGS = -fprofile-arcs -lgcov
nhưng sau khi biên dịch và chạy chương trình, tôi thấy không có * .gcda tập tin được tạo ra. Kết quả là trong số đó khi tôi chạy
gcov --object-directory <path to the *.gcno/*.gcda files> myfile.cpp
Hiển thị lỗi:
myfile.gcda:cannot open data file, assuming not executed
File '../../../../../code/myfile.cpp'
Lines executed:0.00% of 2625
tôi thiếu cái gì đó. Làm thế nào để sửa lỗi này?
Có phải chương trình chạy thành công để hoàn thành? –
Ngoài ra, bạn sẽ nhận được gì khi chạy 'strings compiled_prog | grep gcda'? –
@Shawn - Dịch vụ/daemon không trả về. Vì vậy, về cơ bản tôi phải CTRL-C thực thi trong thiết bị đầu cuối để ngăn chặn nó. Điều này có ảnh hưởng đến hành vi của gcov không. Tôi biết gprof không tạo ra dữ liệu lược tả cho các quy trình như vậy mà không thoát(). Liệu gcov có giới hạn đó quá. – goldenmean