2011-01-13 27 views
8

Tôi đang cố gắng cấu hình mã của mình bằng trình mô phỏng iPhone. Tôi đã bật Tệp Bảo hiểm Thử nghiệm TạoLuồng chương trình công cụ và thêm -lgcov vào cờ liên kết. Theo tất cả những gì tôi đã đọc, đó là tất cả những gì tôi cần làm trong quá trình thiết lập.iPhone: Không thể giả lập để tạo tệp dữ liệu lược tả .gcda

Cập nhật: Tạo Phạm vi kiểm tra tệp kích hoạt -ftest-bảo hiểm cờ và Instrument Chương trình luồng kích hoạt -fprofile-cung cờ. Tôi đã kiểm tra các bản ghi xây dựng và chúng đang được thiết lập khi biên dịch.

Thực thi chương trình tôi có thể thấy .gcno file xuất hiện cùng một bên .o mã biên dịch trong xây dựng/.build/Debug-iphonesimulator/.build/Đối tượng bình thường thư mục/i386.

Nhưng khi tôi chạy ứng dụng trong trình mô phỏng, tôi không nhận được bất kỳ tệp * .gcda nào xuất hiện.

Sự hiểu biết của tôi là các tệp này chứa dữ liệu từ thiết bị đo. Nhưng tôi không thể tìm thấy chúng ở bất cứ đâu trên máy tính.

Tôi biết chúng có thể được sản xuất và xuất hiện dọc theo các tệp * .gcno vì tôi có một thư mục buil cũ đã có trong đó. Tôi không thể tìm ra những gì tôi phải làm để khiến họ xuất hiện và ghi lại sự chạy.

Bất kỳ trợ giúp nào được đánh giá cao.

+0

Bạn có cơ hội tìm và loại bỏ "tắc nghẽn" không? Nếu có, [xem xét việc tạm dừng ngẫu nhiên] (http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773). –

+0

Không. Sự quan tâm chính của tôi là nhìn thấy bao nhiêu ứng dụng được bao phủ bởi các bài kiểm tra đơn vị và giúp tôi xác định các khu vực điểm mà tôi muốn thêm nhiều thử nghiệm hơn. Đến từ một nền java/nhanh nhẹn, kiểm tra đơn vị là điều tôi thích làm :) – drekka

Trả lời

1

Tôi hy vọng link này sẽ cung cấp cho bạn Một số ý tưởng. Khám phá các liên kết Tôi tìm thấy

File .gcno được tạo ra khi các tập tin nguồn được biên dịch với các tùy chọn -ftest-bảo hiểm GCC . Nó chứa thông tin để tái tạo lại các đồ thị khối cơ bản và gán dòng nguồn các số để chặn.

Tệp .gcda được tạo khi chương trình chứa tệp đối tượng được xây dựng với tùy chọn GCC -fprofile-arc được thực thi . Tệp .gcda riêng biệt là được tạo cho mỗi tệp đối tượng được biên dịch với tùy chọn này. Nó chứa arc số chuyển tiếp và một số thông tin tóm tắt .

Có thể bạn đang xây dựng một số cài đặt sai. Thông tin được đề cập trên http://gcc.gnu.org/onlinedocs/gcc/Gcov-Data-Files.html#Gcov-Data-Files

1

This link có thể có câu trả lời, về cơ bản các tệp gcda không được tạo cho đến khi ứng dụng của bạn thoát đúng cách. Nó cung cấp cho hai giải pháp khả thi:

  • hoàn toàn bỏ giả lập
  • thêm video này vào plist của bạn (nhưng không cho phát hành xây dựng):

    <key>UIApplicationExitsOnSuspend</key> 
    <true/> 
    
+0

Cảm ơn. Tôi đã thử cả hai giải pháp đó. Tắt hoàn toàn trình mô phỏng và sau đó thêm dòng đó vào plist. Không làm việc. – drekka

+0

Chỉ cần thử xóa tiêu đề tiền tố. Không khắc phục được sự cố. Ngay cả khi tôi đã thoát khỏi trình mô phỏng. – drekka

+0

Tôi nghĩ rằng vấn đề là xây dựng với cài đặt sai. Anh ta đang nhận các tệp gcno xuất hiện với tùy chọn 'GCC -ftest-coverage', anh ta cần xây dựng với tùy chọn' GCC -fprofile-arcs' để lấy các tệp gcda. –

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